DeepSeek v4 Flash 0731 로컬 CPU 구동기
DeepSeek v4 Flash 0731 locally on CPU
핵심 요약
RTX 4090과 Tesla P40을 조합해 DeepSeek v4 Flash 모델을 로컬에서 구동한 경험 공유.
- 하드웨어 구성 — 128GB RAM과 RTX 4090, Tesla P40을 조합하여 총 176GB 메모리 확보함
- 구동 방식 — llama.cpp를 활용해 레이어별 수동 할당 방식으로 모델을 분산 구동함
- 성능 결과 — IQ4_XS 양자화 모델 사용 시 초당 약 3토큰 생성 속도를 기록함
- 기술적 한계 — 현재 llama.cpp의 텐서 분할 미지원으로 인해 KV 캐시가 레이어와 같은 장치에 배치됨
DS v4 Flash 0731 정식 버전 벤치마크 결과 보고 나서, GLM 5.2급 모델인 DS v4 Flash 0731을 로컬에서 돌려보려고 기존 2 x 16GB DDR4 램을 2 x 32GB로 바꿔서 총 128GB까지 맞췄다.
RTX 4090이랑 Tesla P40도 있어서 램+VRAM 합치면 총 176GB거든. 윈도우 11이 먹는 거 20GB 빼면 가용 메모리가 156GB 정도 남는데, 이 정도면 Unsloth 4bit K_XL(약 144GB) 돌리기에 충분함. 리눅스로 넘어가면 윈도우보다 메모리도 더 남고 성능도 훨씬 잘 나올 듯.
윈도우 11에서 llama.cpp(CUDA 12.4)로 RTX 4090이랑 Tesla P40 둘 다 잡느라 드라이버랑 한바탕 씨름 좀 했다. 결국 Unsloth 4bit K_XL 양자화 모델을 12k 컨텍스트로 돌리는 데 성공했는데, 시스템이랑 GPU 메모리가 몇 GB밖에 안 남더라. DSpark MTP 안 썼을 때 토큰 생성 속도가 초당 2개 정도 나왔음. Unsloth 말로는 K_XL 양자화가 정확도 97% 정도라 진짜 기대했는데, MTP가 10GB 넘게 먹어서 메모리가 모자라더라.
그래서 어쩔 수 없이 IQ4_XS 양자화 모델로 타협함. 이건 디스크 용량이 127GB 정도라 MTP 합쳐도 137GB고, KV 캐시 쓸 메모리도 좀 남으니까.
MTP 켜니까 IQ4_XS 양자화 모델에서 초당 3토큰 정도 나오고, 5k+ 컨텍스트 사이즈에서 프롬프트 처리 속도는 초당 30토큰 정도 찍히더라.
llama.cpp에서 -dev 플래그가 프롬프트 처리 속도에 영향 주는 거 확인해서 이렇게 써봤음.
-dev CUDA0,CUDA1 (CUDA0은 RTX 4090, CUDA1은 Tesla P40) 이렇게 CUDA0을 앞에 두니까 프롬프트 처리 속도가 초당 40토큰, 잘 나올 땐 80토큰까지도 찍히는데, CUDA1을 앞에 두면 초당 17토큰으로 기어감.
그리고 Gated Delta Net에서 지원 안 하는 연산 때문에 .output 레이어는 Tesla P40에 올릴 수가 없더라.
그래서 스크립트 수정해서 레이어별로 수동 할당했음. 임베딩이랑 출력은 RTX 4090에, 0~6번 레이어는 Tesla P40에, 나머지는 CPU로 돌리는 식으로.
지금 llama.cpp가 DeepSeek v4 Flash 텐서 스플릿을 지원 안 해서 레이어별로 일일이 쪼개서 분산시켜야 함. 즉, 해당 레이어의 KV 캐시도 그 레이어가 할당된 장치에 같이 올라간다는 소리임.
llama.cpp에서 DSpark 지원도 더 활발해질 것 같고, 앞으로 버전 업데이트되면서 전체적인 지원이나 속도도 더 좋아질 거라 본다.
혹시 비슷한 환경 구성하려는 사람 있을까 싶어서 내 경험 공유해 봄.


