vLLM에서 Nvidia 4090d 48G(Ada) 2대로 Deepseek V4 Flash ~105 t/s 달성
Deepseek V4 Flash ~105 t/s on two Nvidia 4090d 48G (ada) in vLLM
핵심 요약
vLLM에서 sm89 아키텍처용 커널을 직접 구현하여 4090d 2대로 DeepSeek V4 Flash 성능을 2~3배 향상함.
- 커널 최적화 — Blackwell 전용 커널을 Triton으로 sm89 환경에 맞게 재구현함.
- 성능 향상 — vLLM 환경에서 기존 대비 2~3배 빠른 토큰 생성 속도를 확보함.
- 하드웨어 구성 — 4090d 48GB 2대와 P2P 패치를 활용하여 대규모 모델을 구동함.
- 컨텍스트 처리 — 262k 컨텍스트 환경에서 llama.cpp보다 나은 동시성 성능을 보여줌.
세 줄 요약: sm89용 커널이 아예 없길래 (AI 도움받아서) Blackwell 전용 커널(DeepGEMM, FlashInfer sparse-MLA, block-scaled FP8) 전부 Triton으로 다시 짰다. 병렬 에이전트 워크플로우 돌려보니까 성능 2~3배는 더 나옴.
이 글 보고 영감받음: https://www.reddit.com/r/LocalLLM/comments/1utoh2r/deepseek_v4_flash_160_ts_on_rtx_6000_blackwell_96/
나도 VRAM 용량은 비슷한데, Dell R740에 4090d 48G 두 장 꽂아서 p2p 패치( https://github.com/Duanyll/open-gpu-kernel-modules/tree/595.71.05-p2p-48g ) 먹여서 쓰는 중임. Ada 아키텍처 지원이 안 돼서 vLLM 돌릴 방법을 찾아야 했음. llama.cpp는 속도가 영 성에 안 차더라고.
첫 실행 때 DeepSeek-V4-Flash를 96GB VRAM에 맞추려고 ~iq2로 압축하는데, 하드웨어 사양에 따라 60분까지 걸릴 수 있음.
GPU 한 장만 쓰는 놈들은 아래 4단계에서 TP=1이랑 GPUS='"device=0"'으로 환경변수 바꿔라.
모델 다운로드: hf download deepseek-ai/DeepSeek-V4-Flash --local-dir ~/models/DeepSeek-V4-Flash
- vLLM-Moet (~SM89 이미지) 빌드:
- git clone https://github.com/iSevenDays/vLLM-Moet && cd vLLM-Moet
- DOCKER_BUILDKIT=1 docker build -f Dockerfile.sm89-v0251 -t vllm-moet-sm89:v0251 .
- MTP_TOKENS=1 FORCE_RESIDENT=1 NETWORK=host MEM_GB=28 RESIDENCY=gpu TP=2 GPUS='"device=0,1"' ./docker/serve_sm89_ds4.sh
llama.cpp 쓸 때보다 vLLM 돌릴 때 컨텍스트 262k까지 나오고 동시성도 훨씬 잘 나옴.
llama.cpp(오늘자 메인 + https://github.com/ggml-org/llama.cpp/pull/21067/ ) 돌릴 때는 모델을 VRAM에 꽉 채우려고 아래 명령어 썼음.


