4x 7900XTX에서 구동하는 DiffusionGemma 4
DifussionGemma 4 on 4x7900xtx
핵심 요약
4개의 7900XTX GPU를 사용하여 DiffusionGemma 26B 모델을 vLLM으로 구동한 성능 테스트 결과입니다.
- 성능 측정 — 생성 시 100 tps, 프롬프트 처리 대기 시간 포함 시 45-60 t/s 기록함
- 하드웨어 구성 — 4x 7900XTX 환경에서 vLLM 도커 컨테이너를 통해 모델 실행함
- 기술적 제약 — 모델 구동을 위한 도커 이미지 준비에 상당한 양의 토큰 비용이 발생함
- 커뮤니티 논의 — vLLM과 llama.cpp 간의 성능 비교 및 모델 최적화 가능성에 대해 토론함
생성 속도 100 tps 찍긴 했는데, 프롬프트 처리 대기 시간까지 다 합치면 전체적으로는 45-60 t/s 정도 나오네.
사용 가능한 메모리 상태는 이럼:
GPU KV cache size: 152,671 tokens
요청당 131,072 토큰 기준 최대 동시 처리량: 1.16x
이 GPU에 대한 amd-smi 모니터 결과:
GPU XCP POWER GPU_T MEM_T GFX_CLK GFX% MEM% ENC% DEC% VRAM_USAGE
3 0 183 W 82 °C 84 °C 3036 MHz 100 % 5 % N/A 0 % 23.6/ 24.0 GB
5 0 161 W 81 °C 88 °C 3101 MHz 100 % 0 % N/A 0 % 23.7/ 24.0 GB
7 0 165 W 78 °C 86 °C 3095 MHz 100 % 1 % N/A 0 % 23.7/ 24.0 GB
8 0 154 W 80 °C 88 °C 3090 MHz 100 % 0 % N/A 0 % 23.6/ 24.0 GB
# DiffusionGemma 26B on vllm dgemma branch (4x 7900 XTX)
set -uo pipefail
docker run --name "$1" \
--rm --tty --ipc=host --shm-size=32g \
--device /dev/kfd:/dev/kfd \
--device /dev/dri/renderD131:/dev/dri/renderD131 \
--device /dev/dri/renderD133:/dev/dri/renderD133 \
--device /dev/dri/renderD136:/dev/dri/renderD136 \
--device /dev/dri/renderD135:/dev/dri/renderD135 \
--device /dev/mem:/dev/mem \
--security-opt seccomp=unconfined \
--group-add video \
-e HIP_VISIBLE_DEVICES=0,1,2,3 \
-e ROCR_VISIBLE_DEVICES=0,1,2,3 \
-v /mnt/tb_disk/llm:/app/models:ro \
-v /mnt/tb_disk/llm/torch_compile_cache:/root/.cache/vllm/torch_compile_cache \
-v /opt/services/llama-swap/moe_configs/E=128,N=176,device_name=AMD_Radeon_RX7900XTX.json:/usr/local/lib/python3.12/dist-packages/vllm/model_executor/layers/fused_moe/configs/E=128,N=176,device_name=AMD_Radeon_RX7900XTX.json:ro \
-e TRUST_REMOTE_CODE=1 \
-e OMP_NUM_THREADS=8 \
-e PYTORCH_TUNABLEOP_ENABLED=1 \
-e GPU_MAX_HW_QUEUES=1 \
-e VLLM_ROCM_USE_AITER=0 \
-e VLLM_ROCM_USE_AITER_MOE=0 \
-e VLLM_USE_V2_MODEL_RUNNER=1 \
-e PYTORCH_CUDA_ALLOC_CONF=max_split_size_mb:256 \
-p "$2":8000 \
--entrypoint vllm \
vllm-dgemma:nocompile \
serve \
/app/models/models/vllm/diffusiongemma-26B-A4B-it \
--served-model-name "$1" --host 0.0.0.0 --port 8000 --trust-remote-code \
--gpu-memory-utilization 0.65 --tensor-parallel-size 4 \
--tool-call-parser gemma4 --enable-auto-tool-choice \
--reasoning-parser gemma4 \
--attention-backend TRITON_ATTN \
--max-num-seqs 2 --max-model-len 131072 \
--generation-config vllm \
--hf-overrides '{"diffusion_sampler": "entropy_bound", "diffusion_entropy_bound": 0.1}'

