Tesla V100 SXM2의 HBM2 대역폭과 200파운드의 비용 효율
RTX 4080의 16GB VRAM은 대규모 언어 모델(LLM)을 로컬에서 구동하기에 부족하여, 모델 크기를 제한하거나 양자화 수준을 높여 성능을 희생해야 한다. 이를 해결하기 위해 2017년 출시된 Tesla V100 SXM2 16GB 모델을 전용 어댑터로 연결해 RTX 4080과 함께 총 32GB VRAM 환경을 구성했다. V100 SXM2는 서버 랙 전용 설계로 PCIe 슬롯, 전원 커넥터, 디스플레이 출력이 없으므로 SXM2-to-PCIe 어댑터를 사용했다. eBay에서 구매한 GPU 가격 약 150파운드와 어댑터 비용 50파운드를 합쳐 총 200파운드로 시스템을 확장했다.
V100은 4096-bit 메모리 버스를 통해 900 GB/s의 HBM2 대역폭을 구현한다. 이는 RTX 4080의 GDDR6X 대역폭(736 GB/s)보다 약 22% 높고, Apple M5 Max(614 GB/s)를 상회한다. AMD RX 7900 XTX가 960 GB/s로 수치상으로는 앞서지만, 700파운드가 넘는 가격과 ROCm의 불안정한 LLM 추론 지원을 고려하면 CUDA 생태계에서 즉시 작동하는 V100의 효율이 더 높다. V100은 RX 7900 XTX 대역폭의 94%를 확보하면서 비용은 4분의 1 수준이다.
LLM 추론의 토큰 생성 속도는 연산 능력보다 메모리 대역폭에서 병목이 발생한다. RTX 5090은 32GB VRAM과 1,792 GB/s의 대역폭을 제공하지만, 도입 비용은 2,000파운드를 상회한다. 반면 RTX 4080과 V100을 조합하면 200파운드의 추가 투자만으로 동일한 32GB VRAM 용량을 확보할 수 있다. 이는 RTX 5090 구매 비용의 약 10%만으로 물리적 제약을 해결해 27B 파라미터급 모델의 추론 속도를 확보하는 실질적인 대안이 된다.
PWM 팬 개조와 NixOS 기반의 드라이버 최적화 구현
Tesla V100 SXM2의 어댑터 팬은 제어 기능 없이 100% 속도로 회전하여 82dB의 소음을 낸다. JST PH2.0 to 2.54mm 점퍼 케이블을 사용해 팬의 타코미터와 PWM 핀을 메인보드 PWM 헤더에 직접 연결했다. 설정값을 10%로 유지해도 풀로드 시 온도가 50도 이하로 유지되며 소음은 실사용 가능한 수준으로 줄어든다.
드라이버 호환성은 NixOS를 통해 해결했다. Volta 아키텍처인 V100과 Ada 아키텍처인 RTX 4080을 동시에 구동하기 위해 두 세대를 모두 지원하는 드라이버 브랜치 550.x가 필요하다. NixOS의 `nvidiaPackages.legacy_535` 설정과 커널 6.6, CUDA 12.2를 조합해 환경을 구축했다. 특히 헤드리스 서버임에도 `services.xserver.enable = true` 설정을 적용해야 NVIDIA 커널 모듈이 정상적으로 로드된다.
nix
Driver and Kernel config
boot.kernelPackages = pkgs.linuxPackages_6_6;
hardware.nvidia.package = config.boot.kernelPackages.nvidiaPackages.legacy_535;
services.xserver.enable = true;
nix
CUDA 12.2 from older nixpkgs
cuda = pkgs.nixpkgs.legacyPackages.x86_64-linux.nixpkgs24_05.cuda;
추론 모델로는 Q5_K_M 양자화 버전의 Qwen3.6-27B-MTP(약 19GB)를 사용했다. 기본 추론 속도는 32 tok/s이며, MTP(Multi-Token Prediction) 기능을 통해 생성 속도를 1.5~2배 높여 최대 60 tok/s까지 확보했다. 시각 기능 구현을 위해 약 928MB 크기의 mmproj 파일을 추가하고 `llama.cpp` 실행 시 `--mmproj-offload` 옵션을 부여해 비전 인코더를 GPU에 할당했다. 비전 인코더는 이미지 픽셀을 LLM의 토큰 임베딩 공간으로 변환해 텍스트와 동일한 수학적 공간에서 처리한다.
인프라 관리는 외부 저장소와 부팅 디스크의 분리로 처리했다. 모델 파일은 TrueNAS 서버에 저장하고 NFS 마운트로 연결했으며, `llama.cpp` 서비스가 `mnt-nas.mount`에 의존하도록 설정했다. OS는 Corsair MP600 MINI USB-C NVMe 외장 드라이브에 설치했다. 게임 시에는 외장 드라이브를 제거해 Windows로 부팅하고, LLM 작업 시에는 드라이브를 연결해 NixOS로 진입하는 물리적 스위칭 방식을 택해 부트로더 충돌을 방지했다.
중고 서버 GPU와 어댑터 조합은 고가의 최신 장비 없이도 VRAM 용량과 대역폭이라는 물리적 제약을 해결하는 효율적인 방법이다. 로컬 LLM의 구동 효율은 최신 칩셋의 브랜드가 아닌 가용 VRAM과 대역폭의 물리적 합계가 결정한다.




