오래된 PC에 GPU 업그레이드로 홈 서버 구축, Qwen3.8 27B 약 30토큰/초로 구동한다
원문 제목 — Built a home server from an old PC with GPU upgrade. Qwen3.8 27B runs at ~30 tokens per second.
📄 전문 번역
한 프로젝트 작업을 위해 비교적 단순하지만 수용 가능한 수준의 AI가 필요했고, 무거운 요구사항은 없었으며 프로젝트 파일에 접근해 버그 등을 찾도록 AI에게 파일을 열어주기만 하면 됐다. 버리지 않기로 한 오래된 컴퓨터에 git 서버(가끔은 마인크래프트 서버)로서 새 생명을 불어넣기로 했다. PC 사양은 오늘날 기준으로 아주 낡아 CPU는 i7-4790K 4.6GHz, 메인보드는 MSI Z97 Gaming 7, RAM은 32GB DDR3 2400, 파워서플라이는 750W다. 그런데 GPU인 GTX 1070이 과열되면서 유지 계획이 여기서 멈췄다. 쿨러를 완전히 재도포해야 했지만 쿨러 나사가 완전히 헤드 터져 있었고, 쿨러를 분리하려다 드라이버로 중요한 SMD 부품 몇 개를 떼어내고 말아 GPU는 사망했다.
GPU 없이는 추론이 전부 CPU에서 돌았고, MoE 모델만 겨우 쓸 만해 초당 10~20토큰 수준이었으며 dense 모델은 초당 3토큰을 넘지 못했다. GTX 1070은 서비스하겠다고 결정한 탓에 테스트도 해보지 못했다. 중고 시장에서 대체품을 찾기 시작했지만 AI 실험을 위한 최소 진입점으로는 비용이 너무 많이 든다는 것을 금방 깨달았고, 그러다 채굴 카드에 눈이 갔다. CMP40HX, CMP50HX, CMP70HX, CMP90 카드가 많이 팔리고 있었고 가격도 합리적이었다(한 달 전 기준). 본격적인 조립에 앞서 감당할 만한 속도의 수용 가능한 AI에 필요한 VRAM을 계산한 뒤, 이 커뮤니티에서 영감을 받아 한 단계 더 나아가 20GB 메모리에 PCIe가 16 레인으로 개조된 CMP50HX를 선택했고, 그 직후 개조되지 않은 두 번째 카드(10GB, PCIe 4 레인)를 추가로 사서 합계 30GB VRAM을 확보했다. 두 카드에 총 250달러를 썼는데(역시 한 달 전 기준) 지금은 가격이 갑자기 두 배가 됐다.
마침 같은 시기에 연산 성능 제한을 거의 완전히 없애고 PCIe 2.0 지원(이 카드들은 PCIe 1.1이다)까지 추가하는 새 드라이버 패치가 등장했다. 새로 나온 CMP50HX 드라이버 패치 중 하나를 처음 시도했지만 결과가 나빴고 드라이버를 작동시키려 많은 시간을 썼는데, 패치가 새 것이라 20GB 버전을 고려하지 않았던 것이다. 이후 작성자가 수정했지만 여전히 다른 문제로 드라이버가 작동하지 않았고, 드라이버의 GitHub 이슈를 뒤져 다른 사용자가 올린 가이드를 금방 찾았다. 이제 드라이버가 작동하고 카드도 인식되며 PCIe 2.0까지 작동하지만 문제가 없지는 않다. 가이드 작성자는 PCIe 2.0 지원이 X99 칩셋에서만 확인됐다고 했는데 Z97에서도 작동하나, 절전에서 깨어난 뒤에는 드라이버가 완전히 충돌한다. 조사 끝에 문제가 PCIe 패치에 있음을 확인했고, 절전을 완전히 비활성화하면 사용 중 유일한 문제가 해결된다.
특수 패치 드라이버 없이는 MTP 없이 Qwen 3.6 27B가 초당 15~20토큰을 냈고, MoE 모델은 더 빨라 초당 45~50토큰이었다. 새 드라이버로 성능이 두 배가 됐다. Qwen 3.8 27B(MTP 켬)는 지금 약 30~35토큰/초를 내며 프롬프트 처리는 약 300~400토큰(토큰 수가 늘수록 저하 포함)이다. Ornith 1.5 35BA3B(Heretic-MTP-APEX-I-Balanced)는 약 80~100토큰/초를 낸다. 파워서플라이 때문에 GPU를 180W 파워 리밋으로 제한했는데, 225W로 돌리면 확실히 속도가 올라가지만 한계까지 돌리고 싶지는 않았다. 품질과 KV 캐시 크기가 다른 여러 양자화용 프리셋을 많이 만들었고(아직 실제 작업에서 테스트가 필요하다), 더 나은 옵션 기준으로 K는 Q8_0, V는 Q5_1로 130k 컨텍스트의 Q6K 모델을 확보했다. 제한된 VRAM에서 대형 컨텍스트로 27B Qwen을 구동하는 가이드도 따랐고, 같은 방식으로 K와 V를 Q8_0으로 256k 컨텍스트를 달성했으나 속도는 약 10~14토큰/초, 프롬프트 처리는 약 40~50토큰으로 느리다. 밤새 생성을 맡겨둘 작업용 프리셋이 필요했던 것이고, 전반적으로 결과에 만족한다.
드라이버를 제외한 주요 문제는 VRAM 부족이다. 이상적인 선택은 동일 용량의 같은 카드 두 장이며, dense 모델을 텐서 모드로 돌려 가중치를 균등 분할하면 사실상 공짜로 생성 속도가 올라가고 전체 컨텍스트도 수용할 수 있다. Qwen 3.8 27B 양자화 변형을 많이 시도했지만 1,1 텐서 분할로 제대로 돌아간 것은 Unsloth의 Q4KM에 MTP를 더한 것뿐으로 약 40토큰/초였으나, 남는 공간이 결정적으로 부족했다.
💬 주요 댓글 번역 (5)
🔍 루키 분석
오래된 i7-4790K 기반 PC를 홈 서버로 개조한 사례로, GTX 1070이 재도포 작업 중 고장나자 채굴용 CMP50HX 두 장(개조 20GB와 기본 10GB)을 총 250달러에 구매해 30GB VRAM을 확보했다. 새 드라이버 패치로 연산 제한이 풀리고 PCIe 2.0 지원이 추가되며 성능이 두 배로 향상됐고, Qwen 3.8 27B는 MTP 활성화 시 약 30~35토큰/초, Ornith 1.5 35BA3B는 약 80~100토큰/초를 기록한다. 절전 복귀 시 PCIe 패치로 드라이버가 충돌하는 문제는 절전 비활성화로 해결했으며, VRAM 부족이 남은 과제로 지적됐다.
— 루키 · glm-5.3-flash:cloud
GPU는 20GB 메모리에 PCIe가 16 레인으로 개조된 CMP50HX다.
VRAM 총 30GB다. 나쁘지 않은 수준이다.
훌륭한 구축이다. 나도 같은 모델을 쓰고 있는데 정말 훌륭하다. 문제 (3)에 대해서는 RAM이 부족할 가능성도 있지만, 파일 캐시가 RAM에 그만큼 잡혀 있는 것은 나쁜 신호가 아니라 좋은 신호다. 이론상 캐시를 비우면 더 빨라지는 게 아니라 오히려 느려진다.
파일 캐시 전체를 비우는 게 아니라 로드된 모델 파일의 캐시만 비운다. 모델이 로드된 뒤 RAM에 계속 남아 있어서 전체 파일 캐시 대신 해당 캐시만 비우는 것이다.
나사 헤드 뜯긴 이야기에 움찔했지만, 250달러로 30GB VRAM과 80토큰/초를 얻었다니 대단한 극적인 반전이다.