-
RTX 5090 환경에서 vLLM 설치카테고리 없음 2025. 12. 1. 15:24
RTX 5090은 엔비디아 Blackwell아키텍쳐를 기반으로 sm_120(스트리밍 멀티프로세서 120)버전을 활용합니다. 엔비디아 CUDA 프로그래밍에서 sm_xxx는 해당 GPU가 지원하는 명령어 세트와 하드웨어 기능을 정의하는 컴퓨트 능력을 나타냅니다. sm_120은 최신 아키텍처이며, 높은 컴퓨트 성능의 AI 및 고성능 컴퓨팅 워크로드를 위한 새로운 기능을 포함하지만 역시나 아직 지원이 원활하지 않습니다. 현재는 대다수의 PyTorch, vLLM, FlashAttention 패키지가 빌드되는 시점보다 새로운 아키텍처기에 pre-built패키지를 사용하는 대신 소스에서 빌드해야 하며 설정을 해야하는 과정이 필요합니다.
먼저 가상환경을 만들고 활성화합니다. 요즘에 UV도 많이들 쓰시던데..
python -m venv vllm_env
source vllm_env/bin/activate
PyTorch nightly (cu128) 설치
pip install --pre torch --index-url https://download.pytorch.org/whl/nightly/cu128https://download.pytorch.org/whl/nightly/cu128
download.pytorch.org
vLLM 레포 복제와 소스 빌드
git clone https://github.com/vllm-project/vllm.git
GitHub - vllm-project/vllm: A high-throughput and memory-efficient inference and serving engine for LLMs
A high-throughput and memory-efficient inference and serving engine for LLMs - vllm-project/vllm
github.com
복제 후 아래 명령을 꼭 실행하는 것이 정신건강에 좋습니다! vLLM을 소스에서 빌드할 때, 현재 설치된 PyTorch 버전을 정확히 읽어와서 그 환경에 맞게 컴파일하게 하는 설정입니다.
python use_existing_torch.py

requirements/build.txt 안에 설치에 관련된 빌드요소들이 설치됩니다.
pip install -r requirements/build.txt

FlashAttn v3는 블랙웰을 위해 만들어진 것이 아니라서 vLLM 내부에서 CUDA kernel 컴파일할 때, FlashAttention v2의 헤더 및 구현을 포함하도록 설정합니다.
export VLLM_FLASH_ATTN_VERSION=2
PyTorch에서 사용하는 GPU 아키텍처(Compute Capability)를 블랙웨로 지정합니다.
export TORCH_CUDA_ARCH_LIST="12.0"
빌드는 리소스를 엄청 먹으면서 시간도 꽤 걸려서 병렬 스레드 값을 적절히 설정해야합니다.
MAX_JOBS=6 pip install --no-build-isolation -e .
추천은 6이고 CPU코어와 메모리가 충분하다면 12에서 24로 올려보세요.
