CPU만으로 실행하기
CPU 온리 추론은 실현 가능하고, 그 숫자는 소문보다 덜 우울합니다 — 단, 파이프가 10분의 1인 것을 제외하면 GPU 디코드와 같은 대역폭 게임이라는 점을 이해해야 합니다. 듀얼 채널 DDR5의 현대 데스크톱은 ~80–100 GB/s의 메모리 대역폭을 가집니다. 그것이 예산의 전부입니다. CPU 코어 자체에 관한 무엇도 이걸 크게 바꾸지 못합니다.
공식, 계산해보기
decode tok/s ≈ effective bandwidth (GB/s) ÷ model size (GB)
듀얼 채널 DDR5-5600은 표면상 ~90 GB/s를 옮깁니다. 코어와 프리페처가 몫을 챙기고 나면 유효 60–80 GB/s로 치자. 8B Q4 모델은 ~5 GB이므로:
90 GB/s ÷ 5 GB ≈ 18 tok/s 이론 천장 → 실제로는 8–14 tok/s.
버그가 아닙니다. 큰 디스크리트 GPU가 쓰는 것과 같은 산수를 대역폭 10분의 1로 쓰는 것입니다.
하드웨어별 기대치
| 플랫폼 | 대략적 대역폭 | 8B Q4 디코드 | 느낌 |
|---|---|---|---|
| 노트북, DDR4 듀얼 채널 | 40–50 GB/s | 5–8 tok/s | 읽힐 만함, 느린 시작 |
| 노트북, DDR5 듀얼 채널 | 60–80 GB/s | 8–12 tok/s | 쓸 만한 챗 |
| 데스크톱, DDR5 듀얼 채널 | 80–100 GB/s | 10–16 tok/s | ≤8B에는 쾌적 |
| Threadripper/EPYC, 쿼드+ 채널 | 200–460 GB/s | 30–80 tok/s | 진짜로 좋음 |
| 듀얼 소켓 서버 | 400+ GB/s | 60–100 tok/s | 거의 RAM-GPU |
듀얼 채널 데스크톱의 편안함 티어:
- 쾌적: 10+ tok/s의 7–8B Q4 챗과 코드 도움.
- 사용 가능: ~5–8 tok/s의 13–14B Q4. 기다리되 영원히는 아님.
- 인내: ~2–4 tok/s의 24–32B Q4. 챗이 아니라 밤샘 배치.
- 권장하지 않음: 듀얼 채널에서 1 tok/s 미만의 70B Q4. 쿼드 채널 워크스테이션 전용이고, 거기서도 두 번 생각하세요.
탈출구: 부분 오프로드
작은 GPU가 있다면 llama.cpp는 레이어를 CPU와 GPU 사이에 나눕니다 — 예를 들어 8 GB 카드에 32개 중 20개 레이어. GPU 상주 분량은 VRAM 대역폭으로, 나머지는 RAM 대역폭으로 돌아가서 속도는 두 극단 사이에 착륙합니다. 가중치가 어디에도 온전히 들어가지 않을 때 양쪽 순수 모드보다 낫고, "풀 GPU 오프로드"가 공유 메모리로 발버동하는 것을 지켜보는 것보다 낫습니다.
프리필이 진짜 고통
디코드가 관심을 다 받지만, CPU가 아픈 곳은 프리필입니다. 연산 병목이고, 데스크톱 CPU는 GPU FLOP의 아주 일부만 가집니다. 8B 모델에 4,000 토큰 프롬프트는 첫 토큰 전에 수십 초가 걸릴 수 있습니다. 큰 컨텍스트를 주입하는 RAG 스타일 파이프라인은 모든 요청마다 이 비용을 냅니다. 완화책: 프롬프트를 짧게, 배치 프리필에 디코드보다 많은 스레드, 인덱싱은 일회성 비용으로 취급(RAG 참고).
실용 플래그
# 디코드 스레드 = 물리 코어; 배치 프리필은 논리 코어도 사용 가능
llama-server -m qwen2.5-7b-instruct-q4_k_m.gguf -c 8192 -t 8 --threads-batch 16
# 멀티 소켓 박스: NUMA 노드에 걸쳐 메모리 인터리브
numactl --interleave=all ./llama-server -m model.gguf -t 32
# 이 CPU에는 어떤 SIMD가 있나? AVX2가 바닥; AVX-512는 프리필에 도움
lscpu | grep -o 'avx[0-9a-z_]*' | sort -u
- 디코드에는
-t를 물리 코어 수로 하는 것이 보통 논리/SMT 수보다 낫습니다. 두 설정 다 당신 기계에서 벤치마크하세요. 교차점은 워크로드마다 다릅니다. - AVX2는 모든 곳의 바닥입니다. AVX-512(Zen 4/5, 최신 Xeon)는 실질적인 프리필 이득을 줍니다. llama.cpp는 빌드 시점에 지원을 탐지합니다.
- 멀티 소켓 기계에서 NUMA 핀닝은 20%+의 가치가 있을 수 있습니다 — 먼 소켓의 메모리는 느린 메모리입니다.
- 노트북 DDR4는 데스크톱 DDR5 대역폭의 대략 절반입니다. 같은 공식, 더 나쁜 상수: 데스크톱이 12를 내는 곳에서 5–8 tok/s를 예상하세요.
CPU 온리가 실제로 정답인 순간
- 임베딩과 RAG 인덱싱 — 처리량이 중요하고 레이턴시는 아닙니다. 밤샘 청크 임베딩 몇 시간은 공짜입니다.
- 스크립트 속의 초소형 모델 — 0.5–3B 분류기, 추출기, 리랭커는 CPU에서도 수십 밀리초에 답합니다.
- 배치 백그라운드 작업 — 당신이 자는 동안 3 tok/s로 밀린 것들을 요약; 스트림을 지켜볼 사람은 없습니다.
- 구매 전 체험 — GPU 구매를 확정하기 전에 모델 패밀리가 과제를 해내는지부터 검증.
목적이 대화형 챗이고 GPU가 하나라도 있다면 모델을 그쪽에 두세요. 오늘 움직이려면 첫 실행, 보는 숫자의 의미는 속도를 보세요.