# syntax=docker/dockerfile:1.3-labs ARG BASE_IMAGE FROM "$BASE_IMAGE" COPY python/deplocks/llm/rayllm_*.lock ./ COPY python/requirements/llm/patches/vllm-device-aware-compile-cache.patch ./ # vLLM version tag to use for EP kernel and DeepGEMM install scripts # Keep in sync with vllm version in python/requirements/llm/llm-requirements.txt ARG VLLM_SCRIPTS_REF="v0.24.0" # Pin DeepEP to the V1 (NVSHMEM) commit that vLLM's own release image uses. The # install script's default drifted to DeepEP V2 ("NCCL Gin"), which needs # NCCL >= 2.30.4, but our image has nvidia-nccl-cu13==2.28.9 (via torch) so V2 # fails to build. Keep in sync with DEEPEP_COMMIT_HASH in vllm's docker/Dockerfile. ARG DEEPEP_COMMIT_HASH="73b6ea4" RUN < /home/ray/pip-freeze.txt sudo rm -rf /var/lib/apt/lists/* sudo apt-get clean EOF # vLLM 0.21.0 selects the FlashInfer top-k/top-p sampler during engine initialization # instead of the previous PyTorch-native/Triton sampling path. The FlashInfer sampler # introduces longer adds a large one-time engine initialization cost. To avoid performance # surprises, we disable the FlashInfer sampler by default. ENV VLLM_USE_FLASHINFER_SAMPLER=0