eugr/spark-vllm-docker
Docker configuration for running VLLM on dual DGX Sparks
해결하는 문제
이 프로젝트는 NVIDIA DGX Spark 하드웨어에서 vLLM을 실행하기 위해 특별히 최적화된 Docker 환경과 오케스트레이션 스크립트를 제공합니다. 단일 노드 또는 멀티노드 클러스터 설정을 복잡한 과정에서 간소화하며, InfiniBand/RDMA/NCCL과 같은 네트워크 요구 사항과 고성능 LLM 추론을 위한 의존성 관리를 이 특정 하드웨어 아키텍처에서 처리합니다.
작동 방식
이 리포지토리는 vLLM 배포의 라이프사이클을 자동화하는 스크립트 세트를 제공합니다:
- 이미지 관리:
build-and-copy.sh는 Docker 이미지를 생성하거나 사전 빌드된 나잇리 이미지를 다운로드하여 클러스터 전체에 일관성 있게 배포합니다. - 클러스터 오케스트레이션:
launch-cluster.sh는 여러 노드에 걸쳐 컨테이너를 시작하고, 분산 백엔드(Ray 또는 네이티브 PyTorch)를 자동으로 구성하며, 각 노드의 멀티프로세싱 인수를 처리합니다. - 모델 배포:
hf-download.sh는 Hugging Face에서 모델을 다운로드하고 ConnectX 인터커넥트를 통해 클러스터 전체에 배포하여 중복된 인터넷 다운로드를 방지합니다. - 성능 최적화: FlashInfer, DeepGEMM(NVIDIA의 sm12x용 브랜치), 그리고
fastsafetensors및InstantTensor와 같은 고성능 로딩 포맷을 지원하는 전용 구성 요소를 통합합니다.
대상 사용자
NVIDIA DGX Spark 시스템을 사용하여 vLLM으로 대규모 언어 모델을 배포하고 싶은 AI 엔지니어 및 연구자에게 적합합니다. 분산 네트워킹 및 GPU 커널의 수동 설정을 최소화할 수 있습니다.
주요 특징
- 멀티노드 지원: 2노드, 3노드 메시, 그리고 더 큰 DGX Spark 클러스터를 네이티브로 지원합니다.
- 하드웨어 특화 튜닝: sm12x 아키텍처에 최적화되어 B12X 커널을 지원합니다.
- 자동 배포: 고속 인터커넥트를 사용하여 Docker 이미지와 모델 가중치를 노드 간에 동기화하는 도구를 제공합니다.
- 유연한 빌드 경로: 사전 빌드된 나잇리 이미지 다운로드, 웨일에서 빌드, 또는 특정 소스 커밋/PR에서 vLLM을 컴파일하는 것을 지원합니다.
- 메모리 관리: 중량 추론 부하 시 호스트 메모리를 모니터링하고 시스템 충돌을 방지하기 위해
earlyoom을 통합합니다.
관련
- 프로젝트
- Dispatch
- 프로젝트
- 프로젝트
- 프로젝트