---
title: "중고 데이터센터 GPU로 27B 로컬 LLM을 돌린 미친 가성비 실험"
published: 2026-05-31T13:53:16.000Z
canonical: https://jeff.news/article/3593
---
# 중고 데이터센터 GPU로 27B 로컬 LLM을 돌린 미친 가성비 실험

작성자는 RTX 4080이 들어간 게이밍 PC에 중고 Tesla V100 SXM2를 어댑터로 꽂아 총 32GB VRAM 환경을 만들었다. 약 200파운드로 Qwen3.6 27B 모델을 128k 컨텍스트와 비전 입력까지 포함해 로컬에서 돌렸고, 추론 속도는 약 32토큰/초까지 나왔다.

## 200파운드짜리 32GB VRAM 실험

- 작성자는 RTX 4080이 이미 있는 게이밍 PC에 중고 데이터센터 GPU를 추가해서 로컬 LLM 머신을 만듦
  - RTX 4080은 VRAM 16GB라 게임에는 충분하지만, 돌리고 싶은 로컬 모델에는 부족했다고 함
  - 선택한 카드는 Tesla V100 SXM2 16GB로, 원래 엔비디아 DGX 서버나 하이퍼스케일러 랙에 들어가던 물건임
  - GPU와 어댑터까지 합쳐 비용은 약 200파운드. 단일 32GB GPU가 2,000파운드 넘는 것과 비교하면 가격 차이가 좀 심함

- V100 SXM2는 그냥 메인보드에 꽂을 수 있는 카드가 아님 — 여기서부터 진짜 하드웨어 삽질 시작임
  - SXM2 폼팩터라 일반 PCIe 커넥터도 없고, 디스플레이 출력도 없고, 평범한 전원 커넥터도 없음
  - 작성자는 비공식 SXM2-to-PCIe 어댑터를 약 50파운드에 구해서 메인보드에 꽂음
  - 결과적으로 RTX 4080 16GB와 V100 16GB를 합쳐 총 32GB VRAM 구성이 됨

- 이 구성이 흥미로운 이유는 V100이 낡았는데도 메모리 대역폭은 여전히 세다는 점임
  - V100은 2017년 Volta GPU지만 HBM2 16GB, CUDA 코어 5120개, 4096비트 메모리 버스를 가짐
  - 메모리 대역폭은 900GB/s로, RTX 4080의 736GB/s보다 22% 높음
  - 애플 M3 Max는 400GB/s, M4 Max는 546GB/s, M5 Max는 614GB/s라서, 순수 대역폭만 보면 2017년 V100이 최신 맥보다 앞섬
  - LLM 추론은 토큰 생성 중 메모리 대역폭이 병목이 되는 경우가 많아서 이 숫자가 꽤 중요함

> [!IMPORTANT]
> 작성자가 얻은 결과는 약 200파운드로 32GB VRAM, Qwen3.6 27B 모델, 128k 컨텍스트, 약 32토큰/초 추론임. 새 플래그십 GPU를 사지 않아도 로컬 LLM이 꽤 실용적인 수준까지 올라온다는 게 핵심임.

## 문제는 팬과 드라이버

- 첫 번째 현실 문제는 소음이었음 — 서버용 냉각은 사람 방을 배려하지 않음
  - 어댑터 팬은 2U 서버 안에서 100%로 도는 용도라, 작성자가 애플 워치로 잰 소음이 82dB였음
  - 이 정도면 '시끄러운 PC'가 아니라 쓰레기 분쇄기와 잔디깎이 사이 어딘가에 가까운 수준이라고 묘사함
  - nvidia-smi, 리눅스 감지, 윈도우 Afterburner로도 제어가 안 됐고, 기본 설계가 그냥 계속 풀스피드로 도는 쪽이었음

- 해결은 의외로 물리적이었음 — 팬 핀을 찾아 메인보드 PWM 헤더에 연결함
  - 9V 배터리 테스트로 VCC와 그라운드를 확인했고, 팬이 낮은 전압에서 훨씬 조용하게 돈다는 걸 확인함
  - 이후 tachometer와 PWM 핀을 메인보드 팬 헤더에 연결하니 RPM 읽기와 PWM 제어가 동작함
  - 최종적으로 2.54mm male to PH2.0 female 점퍼 케이블로 연결했고, 팬을 10%로 둬도 풀로드에서 50도 이상 올라가지 않았다고 함

- 소프트웨어 쪽도 최신 버전만 깔면 되는 구조가 아니었음
  - V100은 Volta 칩이라 엔비디아 드라이버 560 계열부터 지원이 빠짐
  - RTX 4080과 V100을 함께 지원하는 마지막 드라이버는 550.x 계열이고, NixOS에서는 nvidiaPackages.legacy_535에 매핑됨
  - 이 드라이버는 CUDA 12.2까지만 지원하는데 현재 nixpkgs는 CUDA 12.6 이상이라, CUDA 12.2를 nixpkgs 24.05에서 가져와야 했음
  - 커널도 6.6이 필요했고, headless 서버인데도 NVIDIA 커널 모듈 로딩 때문에 services.xserver.enable = true가 필요했다는 묘한 포인트가 있음

> [!WARNING]
> 이건 '중고 GPU 꽂으면 끝'이 아님. Volta 지원 드라이버, CUDA 12.2, 커널 6.6, 팬 제어, 콜드부팅 이슈까지 감당할 수 있어야 재현 가능한 구성임.

## 실제로 돌린 모델과 성능

- 작성자는 Qwen3.6-27B-MTP를 Q5_K_M으로 양자화한 약 19GB 모델을 실행함
  - 컨텍스트 크기는 128k 토큰
  - GPU 레이어는 99개로 전체 오프로딩
  - 텐서 분할은 `-ts 1.0,1.0`으로 두 GPU에 균등 배치
  - 추론 속도는 약 32토큰/초, 프롬프트 처리 속도는 약 133~160토큰/초였음

- llama.cpp가 두 GPU에 모델을 나눠 올린 게 핵심임
  - RTX 4080 일부 레이어, V100 나머지 레이어를 처리하는 식으로 PCIe 버스 위에서 파이프라인을 구성함
  - 단일 32GB GPU만큼 깔끔하거나 빠르진 않지만, 비용은 대략 10% 수준이라고 작성자는 봄
  - V100의 전력 소모는 최대 약 150W 정도로 관찰됐고, 로컬 LLM 추론용 GPU로는 아주 말도 안 되는 수준은 아님

- 모델 품질도 '로컬치고 괜찮다'가 아니라 꽤 진지한 수준이라고 주장함
  - Qwen3.6-27B는 Artificial Analysis의 Agentic Index에서 Claude Sonnet 4.6과 동률이라고 언급함
  - MMMU-Pro와 Terminal-Bench 2.0에서는 Sonnet 4.6을 앞선다고 함
  - GPQA와 SWE-Bench Verified에서는 Sonnet 4.6이 앞서지만, 침실에서 돌리는 27B 모델이 최신 클라우드 모델과 비교 테이블에 같이 오른다는 점 자체가 포인트임

## MTP, 비전 입력, 로컬 코딩 환경까지

- 모델명에 붙은 MTP는 Multi-Token Prediction임 — 한 번에 여러 미래 토큰을 예측해서 생성 속도를 끌어올리는 방식임
  - 일반 LLM은 다음 토큰 하나를 예측하고, 그걸 받아들인 뒤 다시 다음 토큰을 예측함
  - MTP는 여러 토큰을 미리 예측한 뒤 맞는 토큰은 거의 공짜로 받아들이고, 틀리면 일반 경로로 돌아감
  - 작성자는 정확도 손실 없이 대략 1.5~2배 빠른 생성을 기대할 수 있고, 코드처럼 예측 가능한 출력에서 50~60토큰/초까지 갈 수 있다고 봄

- 다만 llama.cpp의 MTP 지원은 새 기능이라 특정 커밋에서 직접 빌드해야 했음
  - nixpkgs에 있는 버전은 Qwen3.6 MTP 아키텍처를 지원하지 않았다고 함
  - 작성자는 해당 지원이 들어간 커밋을 NixOS 커스텀 derivation으로 고정해서 재현 가능하게 만들었음
  - 버전 변경도 설정 한 줄 바꾸고 nixos-rebuild switch를 돌리는 식이라 의존성 지옥을 피했다고 함

- Qwen3.6-27B는 이미지 입력도 지원함 — 별도 multimodal projector 파일이 약 928MB 추가됨
  - vision encoder가 이미지 픽셀을 LLM의 토큰 임베딩 공간으로 변환함
  - 모델이 이미지를 사람처럼 보는 게 아니라, 이미지가 텍스트 토큰과 같은 수학적 벡터 시퀀스로 압축돼 들어가는 구조임
  - llama.cpp에서는 `--mmproj`와 `--mmproj-offload` 플래그로 비전 인코더를 GPU에 같이 올릴 수 있음

- 작성자는 이 서버를 OpenCode와 연결해 로컬 AI 코딩 어시스턴트처럼 씀
  - LLM 서버는 데스크톱에서 돌지만, 집 안 다른 머신이나 Tailscale을 통해 외부에서도 접근한다고 함
  - 모델 파일은 TrueNAS에 저장하고 NFS로 마운트함
  - OS는 USB-C NVMe 인클로저에 담긴 NixOS로 부팅해서, 게임할 때는 윈도우로 돌아가고 LLM 쓸 때는 NixOS로 부팅하는 물리 스위치 방식을 씀

## 마지막으로 남은 귀찮음

- V100이 warm reboot 뒤 가끔 lspci와 nvidia-smi에서 사라지는 문제가 있음
  - OS만 재시작하고 메인보드 전원이 유지되는 상황에서 PCIe 슬롯 ACPI enumeration 이슈가 나는 것으로 추정함
  - 완전히 전원을 끄고 몇 초 기다렸다 켜는 cold reboot를 하면 항상 돌아온다고 함
  - V100이 빠지면 16GB GPU 하나로는 모델이 안 올라가서 llama.cpp 서비스가 crash-loop에 빠짐

- 결론은 가격 대비 꽤 어이없는 성공임
  - 약 200파운드로 데이터센터 GPU 16GB를 추가했고, 총 32GB VRAM을 확보함
  - 27B 모델을 32토큰/초로 돌리고, 128k 컨텍스트와 비전 입력까지 확보함
  - 클라우드 호출 없이 네트워크 안에서 완전히 로컬로 돌아가고, 토큰당 비용도 없음
  - 단점은 소음, 드라이버 제약, 부팅 이슈, 서로 다른 GPU 간 텐서 분할의 비효율 정도임

---

## 기술 맥락

- 이 글의 핵심 선택은 새 소비자용 플래그십 GPU를 사는 대신 중고 데이터센터 GPU를 추가한 거예요. 로컬 LLM 추론에서는 모델 전체를 VRAM에 올리는 게 중요하고, 토큰 생성 중에는 메모리 대역폭이 체감 성능을 많이 좌우하거든요.

- V100이 오래됐는데도 선택된 이유는 HBM2 대역폭 때문이에요. 900GB/s라는 숫자는 RTX 4080보다 높고, 27B급 양자화 모델을 돌릴 때 '최신 아키텍처냐'보다 '얼마나 빨리 메모리를 읽느냐'가 더 크게 작용할 수 있어요.

- 다만 두 GPU를 합친다고 VRAM이 마법처럼 하나가 되는 건 아니에요. llama.cpp의 텐서 분할이 레이어를 나눠 처리해주기 때문에 가능한 구성이고, 서로 다른 GPU 아키텍처와 PCIe 통신 비용 때문에 단일 32GB 카드보다 깔끔하진 않아요.

- 소프트웨어 제약도 중요한 트레이드오프예요. Volta 지원 때문에 드라이버 550 계열에 묶이고, CUDA 12.2와 커널 6.6까지 맞춰야 해서 일반 리눅스 데스크톱에서는 꽤 피곤할 수 있어요. 작성자가 NixOS를 고른 이유는 이런 버전 조합을 선언적으로 고정할 수 있기 때문이에요.

- 한국 개발자에게 실전 포인트는 '로컬 LLM은 장비값이 무조건 수백만 원'이라는 생각을 다시 보게 만든다는 거예요. 대신 중고 서버 GPU, 냉각, 전력, 드라이버, 재부팅 이슈까지 직접 책임져야 하니, 회사 업무 장비보다는 개인 실험실 감성에 더 가까워요.

## 핵심 포인트

- Tesla V100 SXM2 16GB와 어댑터 조합으로 약 200파운드에 VRAM 16GB를 추가함
- V100은 2017년 GPU지만 HBM2 대역폭이 900GB/s로 RTX 4080의 736GB/s보다 높음
- llama.cpp 텐서 분할로 RTX 4080과 V100에 Qwen3.6 27B 모델을 나눠 올림
- Q5_K_M 양자화 모델 19GB, 128k 컨텍스트, 전체 GPU 오프로딩에서 약 32토큰/초를 기록함
- 드라이버는 Volta 지원 때문에 550 계열, CUDA는 12.2, 커널은 6.6으로 맞춰야 했음

## 인사이트

로컬 LLM에서 병목이 연산 성능보다 VRAM 용량과 메모리 대역폭인 경우가 많다는 걸 아주 현실적인 삽질기로 보여줌. 새 플래그십 GPU만 답이 아니라 중고 서버 GPU, 드라이버 핀ning, 냉각 개조까지 조합하면 꽤 말도 안 되는 구성이 가능함.
