MI50s Qwen 3.6 27B @52.8 tps TG @1569 tps PP (no MTP, no Quant)
요약
본 기사는 MI50s GPU 환경에서 Qwen 3.6 27B 모델을 vLLM과 ROCm 스택을 사용하여 구동한 성능 테스트 결과를 공유합니다. 이 테스트는 MTP, DFlash 미사용 및 전정밀도(full precision)로 진행되었음에도 불구하고 좋은 성능을 보여주었으며, 특히 총 토큰 처리량은 362.03 tok/s에 달했습니다. 작성자는 해당 모델이 Claude Code나 Hermes 같은 에이전트용 하네스와 충분히 사용 가능하다고 평가하며, PCIe 스위치 개선이나 최적화된 DFlash/MTP 구현 등을 통해 성능 향상 여지가 남아있다고 분석합니다.
핵심 포인트
- MI50s 환경에서 Qwen 3.6 27B 모델을 vLLM과 ROCm으로 구동하여 높은 토큰 처리량(총 362.03 tok/s)을 달성함.
- 테스트는 MTP, DFlash 미사용 및 전정밀도(full precision)로 진행되었음에도 불구하고 우수한 성능을 기록함.
- 해당 모델은 에이전트용 하네스 등 다양한 애플리케이션에 활용 가능성이 높다고 평가됨.
- PCIe 스위치 개선이나 ROCm 기반의 DFlash/MTP 최적화를 통해 추가적인 성능 향상이 기대됨.
요약 (TL;DR) 제목에 기재된 결과는 1k 및 15k 토큰의 2개 프롬프트(prompt)를 사용한 단일 추론(single inference) 결과입니다.
따라서 MTP(Multi-Token Prediction)는 사용하지 않았고 (큰 프롬프트에서는 더 느려지기 때문), DFlash도 사용하지 않았으며 (작동은 하지만 큰 프롬프트에서는 더 느려짐), 양자화(quant)도 사용하지 않았습니다 (전정밀도(full precision)를 원했음). 2018년형 카드라는 점을 고려하면 결과가 상당히 좋습니다.
(벤치마크는 TP8로 수행되었으나, 양자화되지 않은 모델은 TP2로도 구동 가능하며 약 34 tps TG 정도로 매우 빠르게 작동합니다.)
제 개인적인 의견으로는, Claude Code나 Hermes 또는 다른 어떤 에이전트용 하네스(agentic harness)와도 충분히 사용 가능합니다.
소프트웨어 및 하드웨어 스택을 업데이트함으로써(예: 더 낮은 지연 시간(latency)을 가진 PCIe 스위치 사용, ROCm/gfx906을 위한 오버헤드 없는 더 최적화된 DFlash/MTP 등) 성능을 더 높일 여지가 여전히 있다고 생각합니다.
사용된 추론 엔진 (vLLM fork v0.20.1 with ROCm 7.2.1): https://github.com/ai-infos/vllm-gfx906-mobydick/tree/main
사용된 Huggingface 양자화 모델: Qwen/Qwen3.6-27B
실행을 위한 주요 명령어:
docker run -it --name vllm-gfx906-mobydick -v /llm:/llm --network host --device=/dev/kfd --device=/dev/dri --group-add video --group-add $(getent group render | cut -d: -f3) --ipc=host aiinfos/ vllm-gfx906-mobydick:v0.20.1rc0.x-rocm7.2.1-pytorch2.11.0
FLASH_ATTENTION_TRITON_AMD_ENABLE="TRUE" VLLM_LOGGING_LEVEL=DEBUG vllm serve
/llm/models/Qwen3.6-27B
--served-model-name Qwen3.6-27B
--dtype float16
--max-model-len auto
--max-num-batched-tokens 8192
--block-size 64
--gpu-memory-utilization 0.98
--enable-auto-tool-choice
--tool-call-parser qwen3_coder
--reasoning-parser qwen3
--mm-processor-cache-gb 1
--limit-mm-per-prompt.image 1 --limit-mm-per-prompt.video 1 --skip-mm-profiling
--default-chat-template-kwargs '{"min_p": 0.0, "presence_penalty": 0.0, "repetition_penalty": 1.0}'
--tensor-parallel-size 8
--host 0.0.0.0
--port 8000 2>&1 | tee log.txt
FLASH_ATTENTION_TRITON_AMD_ENABLE="TRUE" VLLM_LOGGING_LEVEL=DEBUG vllm bench serve \
--dataset-name random \
--random-input-len 10000 \
--random-output-len 1000 \
--num-prompts 4 \
--request-rate 10000 \
--ignore-eos 2>&1 | tee logb.txt
결과:
============ Serving Benchmark Result ============
성공한 요청 수 (Successful requests): 4
실패한 요청 수 (Failed requests): 0
설정된 요청률 (Request rate configured (RPS)): 10000.00
벤치마크 지속 시간 (Benchmark duration (s)): 121.54
총 입력 토큰 수 (Total input tokens): 40000
총 생성 토큰 수 (Total generated tokens): 4000
요청 처리량 (Request throughput (req/s)): 0.03
출력 토큰 처리량 (Output token throughput (tok/s)): 32.91
최대 출력 토큰 처리량 (Peak output token throughput (tok/s)): 56.00
최대 동시 요청 수 (Peak concurrent requests): 4.00
총 토큰 처리량 (Total token throughput (tok/s)): 362.03
---------------첫 번째 토큰까지의 시간 (Time to First Token)----------------
평균 TTFT (Mean TTFT (ms)): 32874.56
중앙값 TTFT (Median TTFT (ms)): 35622.63
P99 TTFT (P99 TTFT (ms)): 47843.84
-----출력 토큰당 시간 (첫 번째 토큰 제외) (Time per Output Token (excl. 1st token))------
평균 TPOT (Mean TPOT (ms)): 88.66
중앙값 TPOT (Median TPOT (ms)): 85.94
P99 TPOT (P99 TPOT (ms)): 108.67
---------------토큰 간 지연 시간 (Inter-token Latency)----------------
평균 ITL (Mean ITL (ms)): 88.66
중앙값 ITL (Median ITL (ms)): 73.61
P99 ITL (P99 ITL (ms)): 74.26
==================================================
AI 자동 생성 콘텐츠
본 콘텐츠는 Reddit AI Engineering의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기