8~16개의 MI50으로 구동하는 Minimax M3 @ 19 tps TG (최대)
8-16 MI50s Minimax M3 @19 tps TG (peak)
핵심 요약
2018년형 하드웨어인 MI50 GPU 8~16개를 활용해 Minimax M3 모델을 구동한 벤치마크 결과입니다.
- 하드웨어 성능 — 2018년형 MI50 GPU로 초당 19토큰의 속도를 달성함
- 추론 엔진 — vllm v0.23.1의 rocm7.2.1 포크 버전을 사용함
- 성능 한계 — 추론 출력 길이가 길어 에이전트형 코딩 작업에는 부적합함
- 최적화 가능성 — 소프트웨어 및 하드웨어 스택 업데이트로 추가 속도 향상 여지가 있음
TL;DR 2018년산 구형 하드웨어치고 속도가 아주 개판은 아닌데, 내 생각엔 에이전트 코딩용으론 좀 무리임 (8개 MI50으로 TG 50 tps, PP 800 tps 뽑아주는 qwen3.6 27B랑 비교하면 말 다 했지). 더 골 때리는 건 추론 결과물이 너무 길게 뽑히는데, 정작 코드 퀄리티는 제대로 확인도 안 해봤다는 거임…
앞서 말했듯이, 소프트웨어랑 하드웨어 스택 좀 손보면 속도 더 뽑을 여지는 있음 (예를 들어 레이턴시 낮은 PCIe 스위치 쓰거나, rocm/gfx906 오버헤드 없는 최적화된 mtp, fp16 디퀀타이즈 같은 거).
사용된 추론 엔진 (vllm fork v0.23.1 with rocm7.2.1): https://github.com/ai-infos/vllm-gfx906-mobydick/tree/main
사용한 허깅페이스 양자화 모델:
cyankiwi/MiniMax-M3-AWQ-INT4
bullerwins/MiniMax-M3-4bit-W4A16-v0
실행용 메인 명령어:
sudo docker run -it --name vllm-gfx906-mobydick -v /home:/home --network host --device=/dev/kfd --device=/dev/dri \
--group-add video --group-add $(getent group render | cut -d: -f3) \
--cap-add=SYS_ADMIN --volume /sys:/sys:ro --pid=host --privileged \
--ipc=host aiinfos/vllm-gfx906-mobydick:v0.23.1rc0.x-rocm7.2.1-pytorch2.11.0
8개 MI50 bullerwins/MiniMax-M3-4bit-W4A16-v0 실행 명령어:
FLASH_ATTENTION_TRITON_AMD_ENABLE="TRUE" OMP_NUM_THREADS=4 VLLM_LOGGING_LEVEL=DEBUG vllm serve \
/home/llm/models/MiniMax-M3-4bit-W4A16-v0 \
--served-model-name MiniMax-M3-4bit-W4A16-v0 \
--enable-auto-tool-choice \
--tool-call-parser minimax_m3 \
--reasoning-parser minimax_m3 \
--max-model-len auto \
--max-num-seqs 8 \
--gpu-memory-utilization 0.975 \
--enable-log-requests \
--enable-log-outputs \
--log-error-stack \
--speculative-config '{"method": "eagle3", "model": "/home/rig9/llm/models/MiniMax-M3-EAGLE3", "num_speculative_tokens": 3, "attention_backend": "TRITON_ATTN"}' \
--dtype float32 \
--kv-cache-dtype float16 \
--attention-config.indexer_kv_dtype float16 \
--block-size 128 \
--skip-mm-profiling \
--limit-mm-per-prompt '{"image":1,"video":{"count":1,"num_frames":32}}' \
--tensor-parallel-size 8 --port 8000 2>&1 | tee log.txt


