집에서 돌리는 내 DeepSeek V4 Pro가 또 빨라짐
My DeepSeek V4 Pro at home got faster again
핵심 요약
작성자가 커스텀 llama.cpp 브랜치를 통해 DeepSeek V4 Pro의 성능을 최적화하고 벤치마크 결과를 공유함.
- 성능 최적화 — 커스텀 llama.cpp 브랜치로 DeepSeek V4 Pro 추론 속도 개선
- 하드웨어 사양 — Epyc 9374F CPU와 1152GB RAM, RTX PRO 6000 GPU 사용
- 기술적 과제 — 메모리 효율성 문제와 양자화된 KV 캐시 버그 등 해결 중
- 개인적 배경 — 워크스테이션 구축을 위해 모든 것을 처분한 작성자의 열정
집에서 DeepSeek V4 Pro 돌린다고 썼던 내 이전 글들 기억하는 사람 있을 거다. 오늘 메인라인에는 아직 안 들어간 온갖 수정이랑 최적화 때려 박은 내 llama.cpp 브랜치에서 성능 체크 좀 해봤다. 벤치마크는 아직 돌아가는 중인데, 오늘 안에 끝나면 나중에 전체 결과 업데이트할게:
$ ./bin/llama-batched-bench -m ~/ggufs/DeepSeek-V4-Pro.gguf -b 8192 -ub 8192 -npl 1 -npp 8192,16384,32768,65536,131072,262144,524288,1048064 -ntg 128 -fa 1 -cmoe --no-repack
0.00.516.833 W llama_model_loader: tensor overrides to CPU are used with mmap enabled - consider using --no-mmap for better performance
llama_batched_bench: n_kv_max = 1048576, n_batch = 8192, n_ubatch = 8192, flash_attn = 1, is_pp_shared = 0, is_tg_separate = 0, n_gpu_layers = -1, n_threads = 32, n_threads_batch = 32
| PP | TG | B | N_KV | T_PP s | S_PP t/s | T_TG s | S_TG t/s | T s | S t/s |
|-------|--------|------|--------|----------|----------|----------|----------|----------|----------|
| 8192 | 128 | 1 | 8320 | 42.660 | 192.03 | 10.908 | 11.73 | 53.568 | 155.32 |
| 16384 | 128 | 1 | 16512 | 85.935 | 190.66 | 11.019 | 11.62 | 96.954 | 170.31 |
| 32768 | 128 | 1 | 32896 | 177.407 | 184.70 | 11.267 | 11.36 | 188.675 | 174.35 |
| 65536 | 128 | 1 | 65664 | 374.335 | 175.07 | 11.625 | 11.01 | 385.960 | 170.13 |
|131072 | 128 | 1 | 131200 | 827.209 | 158.45 | 12.289 | 10.42 | 839.499 | 156.28 |
|262144 | 128 | 1 | 262272 | 1972.450 | 132.90 | 13.693 | 9.35 | 1986.143 | 132.05 |
|524288 | 128 | 1 | 524416 | 5251.683 | 99.83 | 16.478 | 7.77 | 5268.161 | 99.54 |
...
Epyc 9374F에 4800 MT/s DDR5 RDIMM 96GB짜리 12개 꽂아서 익스퍼트 오프로딩 돌리는 중이고, GPU는 RTX PRO 6000 Max-Q 썼다. 램 사용량은 69.3%(1152GB 중), VRAM은 78986MiB(96GB 중) 먹더라. PP 돌릴 때 전력은 500W 정도 먹음. GGUF 사이즈는 메인라인 llama.cpp로 변환해서 794GB 나온다.
그리고 지금 메인라인 llama.cpp의 DeepSeek V4 구현 상태에 대해 좀 공유할 게 있는데:
- 메모리를 말도 안 되게 처먹음(라이트닝 인덱서 연산 버퍼랑 CUDA top-k 임시 버퍼에서 다 낭비됨). 수정 PR들은 올라와 있는데 대기열에 박혀서 안 나가는 중임(ubatch나 컨텍스트 사이즈 줄이면 좀 나을 거다) - 이건 내 브랜치에서 고쳐놨음.


