최종 병기: 32개의 AMD MI50 32GB로 Kimi K2.6 구동 시 9.7 t/s (TG) 및 264 t/s (PP) 달성
Final Monster: 32x AMD MI50 32GB at 9.7 t/s (TG) & 264 t/s (PP) with Kimi K2.6
핵심 요약
32개의 MI50 GPU를 연결한 괴물 같은 시스템을 구축했으나, 엄청난 전력 소모와 낮은 성능 효율로 인해 실용성은 낮다는 평가를 받음.
- 하드웨어 구성 — 32개의 AMD MI50 32GB GPU를 2개 노드로 연결하여 구축함.
- 성능 지표 — Kimi K2.6 모델 구동 시 9.7 t/s(TG) 및 264 t/s(PP)의 속도를 기록함.
- 전력 소모 — 유휴 상태에서 약 640W, 최대 부하 시 4800W에 달하는 엄청난 전력을 소비함.
- 실용성 논란 — 엄청난 규모에도 불구하고 낮은 성능 효율과 높은 전력 소모로 인해 실사용보다는 실험적 성격이 강함.
moonshotai/Kimi-K2.6 int4 @ 9.7 tok/s (136 토큰 출력) 및 263 tok/s (14564 토큰 입력), vllm-gfx906-mobydick 환경에서 구동.
vllm 포크 깃허브 링크: https://github.com/ai-infos/vllm-gfx906-mobydick
전력 소모: ~640W (유휴) / ~4800W (최대 부하)
가치가 있을까? 태양광 패널이 있거나 공짜 전기를 쓸 수 있는 게 아니라면, 아니.
셋업 상세:
16개 GPU 노드 2개를 10G 이더넷 케이블로 연결한 것임. 16개 GPU 노드 1개에 대한 상세 정보는 여기서 확인 가능:
https://github.com/ai-infos/guidances-setup-16-mi50-deepseek-v32
실행 명령어:
NCCL_SOCKET_IFNAME=eno1 GLOO_SOCKET_IFNAME=eno1 PYTHONUNBUFFERED=1 VLLM_EXECUTE_MODEL_TIMEOUT_SECONDS=1200 OMP_NUM_THREADS=4 \
FLASH_ATTENTION_TRITON_AMD_REF="TRUE" FLASH_ATTENTION_TRITON_AMD_ENABLE="TRUE" VLLM_LOGGING_LEVEL=DEBUG \
python3 -m torch.distributed.run --nnodes=2 --node_rank=0 --nproc_per_node=16 --master_addr=10.0.0.8 --master_port=29500 /llm/models/shared/openai_server_kimi.py 2>&1 | tee log.txt
NCCL_SOCKET_IFNAME=eno1 GLOO_SOCKET_IFNAME=eno1 PYTHONUNBUFFERED=1 VLLM_EXECUTE_MODEL_TIMEOUT_SECONDS=1200 OMP_NUM_THREADS=4 \
FLASH_ATTENTION_TRITON_AMD_REF="TRUE" FLASH_ATTENTION_TRITON_AMD_ENABLE="TRUE" VLLM_LOGGING_LEVEL=DEBUG \
python3 -m torch.distributed.run --nnodes=2 --node_rank=1 --nproc_per_node=16 --master_addr=10.0.0.8 --master_port=29500 /llm/models/shared/openai_server_kimi.py 2>&1 | tee log.txt
"openai_server_kimi.py" 스크립트는 torchrun을 사용하는 공식 vllm 예제를 기반으로 작성됨(OpenAI API를 지원하도록 수정함... 최적화는 제대로 안 됨... torchrun이 포함된 기본 vllm 명령어는 나한테 작동하지 않아서 디버깅이 더 필요함). 관심 있는 사람이 있다면 깃허브에 공유할 수 있음(하지만 더 최적화가 필요함).
ps: 성능이 만족스럽지 않아서 아직 완벽한 가이던스 셋업은 안 함... 우선 이 셋업은 PCIe gen3 x8과 gen4 x4로 돌아가는데, 전부 7GB/s가 나와야 하지만 라이저 카드 불안정 때문에 하나는 3.5GB/s가 나옴. 이론적으로 PCIe 대역폭을 최대로 활용(x16일 때 28GB/s, x8일 때 14GB/s)하고 TP8 PP4(또는 TP4 PP8)로 구성하며 vllm 소프트웨어 스택을 최적화한다면, 600-1000 PP와 9-12 TG까지 점프할 수 있을 거라 생각함(mtp 없이)... 지금 이 셋업은 하이브리드 셋업(DDR5-RTX 6000 Pro 등)과 비교하면 흥미로울 수 있지만, 이제 이 짓은 그만하고 작은 셋업에서 더 빠르게 돌아가는 작은 모델들을 즐길까 함.


