1. 개요
AMD W6800 GPU에서 vLLM을 실행하기 위한 설치 및 테스트를 진행했습니다.
공식 사이트 문서에서는 MI200/MI300 및 RX7900 시리즈만 지원하지만, W6800 (gfx1030)에서도 실행 가능한지 확인했습니다.
2. 설치 방법
(1) Docker를 이용한 설치 (공식 방법)
지원 GPU: MI200, MI300, RX7900 (W6800 미지원)
# 1. Docker 빌드 (RX7900 기준)
DOCKER_BUILDKIT=1 docker build --build-arg BUILD_FA="0" -f Dockerfile.rocm -t vllm-rocm .
# 2. Docker 실행
docker run -it \
--network=host \
--group-add=video \
--ipc=host \
--cap-add=SYS_PTRACE \
--security-opt seccomp=unconfined \
--device /dev/kfd \
--device /dev/dri \
-v <모델 경로>:/app/model \
vllm-rocm \
bash
문제점: W6800은 공식 지원 목록에 없어 실행 불가능했습니다.
(2) 소스 코드 직접 설치 (W6800 테스트)
사용한 Docker 이미지 : rocm/pytorch:rocm6.2_ubuntu20.04_py3.9_pytorch_2.3.0
**설치 과정**
# 1. PyTorch 재설치 (ROCm 6.2.4)
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/rocm6.2.4
# 2. 필수 패키지 설치
pip install /opt/rocm/share/amd_smi
pip install --upgrade numba scipy huggingface-hub[cli]
pip install "numpy<2"
# 3. vLLM 설치
git clone https://github.com/vllm-project/vllm.git
cd vllm/requirements/
pip install -r rocm-build.txt
pip install -r rocm.txt
cd ../
export PYTORCH_ROCM_ARCH="gfx1030" # W6800 아키텍처
python3 setup.py develop
**실행 명령어**
# DeepSeek-R1-Distill-Qwen-7B (단일 GPU)
python3 -m vllm.entrypoints.openai.api_server \
--model deepseek-ai/DeepSeek-R1-Distill-Qwen-7B \
--dtype=half \
--enable-reasoning \
--reasoning-parser deepseek_r1 \
--api-key YOUR_KEY \
--max-model-len 32767 # 기본값(131072)은 메모리 부족 발생
3. 성능 테스트 결과
(1) 일반 모델 (FP16/Half)
모델 | 1 GPU(W6800) | 2 GPU | 4 GPU | 8 GPU |
DeepSeek-R1-Distill-Qwen-7B | 15.2~15.6 tokens/s | ❌ 불가능 | ❌ 불가능 | ❌ 불가능 |
DeepSeek-R1-Distill-Qwen-1.5B | 23.9~24.6 tokens/s | ❌ 불가능 | ❌ 불가능 | ❌ 불가능 |
DeepSeek-R1-671B, Llama-70B, Qwen-32B/14B | ❌ 메모리 부족 | ❌ 불가능 | ❌ 불가능 | ❌ 불가능 |
(2) GGUF 모델 (양자화 적용)
# GGUF 모델 실행 예시 (Ollama 다운로드 모델 사용)
vllm serve /usr/share/ollama/.ollama/models/blobs/sha256-96c415656d377afbff962f6cdb2394ab092ccbcbaab4b82525bc4ca800fe8a49 \
--tokenizer deepseek-ai/DeepSeek-R1-Distill-Qwen-7B \
--api-key YOUR_KEY \
--max-model-len 32767 \
--enable-reasoning \
--reasoning-parser deepseek_r1 \
--served_model_name gguf-deepseek-r1/7b
모델 | 1 GPU(W6800) | 2 GPU | 4 GPU | 8 GPU |
DeepSeek-R1-Distill-Qwen-7B (GGUF) | 45.8~46.3 tokens/s | ❌ 불가능 | ❌ 불가능 | ❌ 불가능 |
DeepSeek-R1-Distill-Qwen-1.5B (GGUF) | 105.2~107.3 tokens/s | ❌ 불가능 | ❌ 불가능 | ❌ 불가능 |
4. 문제점 및 한계
1. 다중 GPU 미지원
– W6800에서 vLLM을 멀티 GPU로 실행할 수 없었습니다.
2. 메모리 제약
– --max-model-len
을 기본값(131072)으로 설정하면 메모리 부족으로 실행 불가능했습니다.
– 7B 모델은 32767로 줄여야 실행 가능했습니다.
3. 대형 모델 실행 불가
– 14B 이상 모델은 단일 W6800에서도 메모리 부족으로 실행할 수 없었습니다.
5. 결론
– W6800에서 vLLM 실행 가능하지만, 7B/1.5B 모델만 단일 GPU로 제한적 실행 가능합니다.
– GGUF 양자화를 적용하면 성능이 2~4배 향상되지만, 여전히 멀티 GPU는 지원되지 않습니다.
– 대규모 모델(14B 이상)을 실행하려면 MI200/MI300 또는 NVIDIA GPU가 필요합니다.
추천 사항 :
– W6800에서는 7B 이하 모델 + GGUF 양자화로 사용하는 것이 가장 안정적입니다.
– 향후 ROCm 및 vLLM 업데이트에서 멀티 GPU 지원이 개선될 수 있으므로 추적이 필요합니다.