Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 20 additions & 15 deletions .buildkite/scripts/check-ray-compatibility.sh
Original file line number Diff line number Diff line change
Expand Up @@ -16,22 +16,27 @@ RAY_BASE_URL="https://raw.githubusercontent.com/ray-project/ray/master/python"
WORK_DIR=$(mktemp -d)
trap 'rm -rf "$WORK_DIR"' EXIT

# ── Detect PyTorch index URL ─────────────────────────────────────────────

# ── Detect PyTorch index URLs ────────────────────────────────────────────
#
# Offer the resolver every channel that could serve the installed torch and
# let uv (run below with --index-strategy unsafe-best-match) pick whichever one
# actually has the pinned version. For CUDA we pass both the stable and the
# test channels: release candidates live on the test channel until they are
# promoted to stable, so a stable-only index breaks RC validation (e.g. a
# torch==X.Y.Z pin from nixl-cuNN that is only published to /whl/test). We add
# both channels unconditionally rather than probing the directory listing,
# since those listings are not reliably reachable from CI egress.
TORCH_INDEX_URLS=()
if python3 -c "import torch; assert torch.version.hip" 2>/dev/null; then
ROCM_VER=$(python3 -c "import torch; print(torch.version.hip.rsplit('.', 1)[0])")
CANDIDATE_URL="https://download.pytorch.org/whl/rocm${ROCM_VER}"
if curl -fsSL --head "${CANDIDATE_URL}/" >/dev/null 2>&1; then
TORCH_INDEX_URL="${CANDIDATE_URL}"
else
echo ">>> WARNING: ROCm ${ROCM_VER} wheel index not found at ${CANDIDATE_URL}"
echo ">>> Falling back to default PyPI (resolution may be incomplete)"
TORCH_INDEX_URL=""
fi
TORCH_INDEX_URLS+=("https://download.pytorch.org/whl/rocm${ROCM_VER}")
TORCH_INDEX_URLS+=("https://download.pytorch.org/whl/test/rocm${ROCM_VER}")
else
TORCH_INDEX_URL="https://download.pytorch.org/whl/cu130"
CUDA_TAG="cu$(python3 -c "import torch; print((torch.version.cuda or '').replace('.', ''))")"
TORCH_INDEX_URLS+=("https://download.pytorch.org/whl/${CUDA_TAG}")
TORCH_INDEX_URLS+=("https://download.pytorch.org/whl/test/${CUDA_TAG}")
fi
echo ">>> Using PyTorch index: ${TORCH_INDEX_URL:-PyPI default}"
echo ">>> Using PyTorch indexes: ${TORCH_INDEX_URLS[*]:-PyPI default}"

# Fetch all Ray requirement files used in the LLM depset pipeline
echo ">>> Fetching Ray requirement files"
Expand Down Expand Up @@ -134,9 +139,9 @@ echo ">>> Resolving: Can Ray generate compatible lock files?"
echo "============================================================"

EXTRA_INDEX_ARGS=()
if [[ -n "${TORCH_INDEX_URL}" ]]; then
EXTRA_INDEX_ARGS+=(--extra-index-url "${TORCH_INDEX_URL}")
fi
for INDEX_URL in "${TORCH_INDEX_URLS[@]}"; do
EXTRA_INDEX_ARGS+=(--extra-index-url "${INDEX_URL}")
done

set +e
uv pip compile \
Expand Down
13 changes: 7 additions & 6 deletions .buildkite/scripts/hardware_ci/run-cpu-compatibility-test.sh
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
#!/bin/bash
set -euox pipefail

export VLLM_CPU_KVCACHE_SPACE=1
export VLLM_CPU_KVCACHE_SPACE=1
export VLLM_CPU_CI_ENV=1
# Reduce sub-processes for acceleration
export TORCH_COMPILE_DISABLE=1
# Skip torch.compile via vLLM's --enforce-eager flag (passed below) instead of
# TORCH_COMPILE_DISABLE=1, which torch 2.12 no longer treats as a silent no-op
# when callers specify fullgraph=True.
export VLLM_ENABLE_V1_MULTIPROCESSING=0

SDE_ARCHIVE="sde-external-10.7.0-2026-02-18-lin.tar.xz"
Expand Down Expand Up @@ -49,15 +50,15 @@ wait_for_pid_and_check_log() {
}

# Test Sky Lake (AVX512F)
./sde/sde64 -skl -- python3 examples/basic/offline_inference/generate.py --model facebook/opt-125m --dtype bfloat16 > test_0.log 2>&1 &
./sde/sde64 -skl -- python3 examples/basic/offline_inference/generate.py --model facebook/opt-125m --dtype bfloat16 --enforce-eager > test_0.log 2>&1 &
PID_TEST_0=$!

# Test Cascade Lake (AVX512F + VNNI)
./sde/sde64 -clx -- python3 examples/basic/offline_inference/generate.py --model facebook/opt-125m --dtype bfloat16 > test_1.log 2>&1 &
./sde/sde64 -clx -- python3 examples/basic/offline_inference/generate.py --model facebook/opt-125m --dtype bfloat16 --enforce-eager > test_1.log 2>&1 &
PID_TEST_1=$!

# Test Cooper Lake (AVX512F + VNNI + BF16)
./sde/sde64 -cpx -- python3 examples/basic/offline_inference/generate.py --model facebook/opt-125m --dtype bfloat16 > test_2.log 2>&1 &
./sde/sde64 -cpx -- python3 examples/basic/offline_inference/generate.py --model facebook/opt-125m --dtype bfloat16 --enforce-eager > test_2.log 2>&1 &
PID_TEST_2=$!

wait_for_pid_and_check_log $PID_TEST_0 test_0.log
Expand Down
2 changes: 1 addition & 1 deletion .buildkite/test_areas/quantization.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ steps:
# https://github.com/pytorch/ao/issues/2919, we'll have to skip new torchao tests for now
# we can only upgrade after this is resolved
# TODO(jerryzh168): resolve the above comment
- uv pip install --system torchao==0.17.0 --index-url https://download.pytorch.org/whl/cu130
- uv pip install --system torchao==0.17.0 --index-url https://download.pytorch.org/whl/test/cu130
- uv pip install --system conch-triton-kernels
- VLLM_TEST_FORCE_LOAD_FORMAT=auto pytest -v -s quantization/ --ignore quantization/test_blackwell_moe.py

Expand Down
4 changes: 2 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -68,8 +68,8 @@ endif()
# requirements.txt files and should be kept consistent. The ROCm torch
# versions are derived from docker/Dockerfile.rocm
#
set(TORCH_SUPPORTED_VERSION_CUDA "2.11.0")
set(TORCH_SUPPORTED_VERSION_ROCM "2.11.0")
set(TORCH_SUPPORTED_VERSION_CUDA "2.13.0")
set(TORCH_SUPPORTED_VERSION_ROCM "2.13.0")

#
# Try to find python package with an executable that exactly matches
Expand Down
34 changes: 24 additions & 10 deletions docker/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ ARG UV_INDEX_URL=${PIP_INDEX_URL}
ARG UV_EXTRA_INDEX_URL=${PIP_EXTRA_INDEX_URL}

# PyTorch provides its own indexes for standard and nightly builds
ARG PYTORCH_CUDA_INDEX_BASE_URL=https://download.pytorch.org/whl
ARG PYTORCH_CUDA_INDEX_BASE_URL=https://download.pytorch.org/whl/test

# PIP supports multiple authentication schemes, including keyring
# By parameterizing the PIP_KEYRING_PROVIDER variable and setting it to
Expand Down Expand Up @@ -126,6 +126,10 @@ ENV UV_INDEX_STRATEGY="unsafe-best-match"
ENV UV_PYTHON_INSTALL_DIR=/opt/uv/python
ENV UV_CACHE_DIR=/opt/uv/cache
ENV UV_INSTALL_DIR=/opt/uv/bin
# Torch test-channel / nightly wheels can be re-published under the same version
# (RC respins, CDN inconsistency), so the index-advertised hash may not match the
# served file. Skip uv's hash verification so torch installs don't break on it.
ENV UV_NO_VERIFY_HASHES=1
ENV PATH="/opt/venv/bin:/opt/uv/bin:$PATH"
ENV VIRTUAL_ENV="/opt/venv"

Expand Down Expand Up @@ -259,14 +263,14 @@ RUN --mount=type=cache,target=/opt/uv/cache \
fi \
&& if [ "${PYTORCH_NIGHTLY}" = "1" ]; then \
echo "Installing torch nightly..." \
&& uv pip install --python /opt/venv/bin/python3 torch torchaudio torchvision --pre \
&& uv pip install --refresh-package torch --refresh-package torchvision --refresh-package torchaudio --python /opt/venv/bin/python3 torch torchaudio torchvision --pre \
--index-url ${PYTORCH_CUDA_INDEX_BASE_URL}/nightly/cu$(echo $CUDA_VERSION | cut -d. -f1,2 | tr -d '.') \
&& echo "Installing other requirements..." \
&& /opt/venv/bin/python3 use_existing_torch.py --prefix \
&& uv pip install --python /opt/venv/bin/python3 -r requirements/cuda.txt \
&& uv pip install --refresh-package torch --refresh-package torchvision --refresh-package torchaudio --python /opt/venv/bin/python3 -r requirements/cuda.txt \
--extra-index-url ${PYTORCH_CUDA_INDEX_BASE_URL}/nightly/cu$(echo $CUDA_VERSION | cut -d. -f1,2 | tr -d '.'); \
else \
uv pip install --python /opt/venv/bin/python3 -r requirements/cuda.txt \
uv pip install --refresh-package torch --refresh-package torchvision --refresh-package torchaudio --python /opt/venv/bin/python3 -r requirements/cuda.txt \
--extra-index-url ${PYTORCH_CUDA_INDEX_BASE_URL}/cu$(echo $CUDA_VERSION | cut -d. -f1,2 | tr -d '.'); \
fi \
&& if [ "$(echo $CUDA_VERSION | cut -d. -f1)" = "13" ]; then \
Expand All @@ -280,10 +284,18 @@ RUN --mount=type=cache,target=/opt/uv/cache \
# Track PyTorch lib versions used during build and match in downstream instances.
# We do this for both nightly and release so we can strip dependencies/*.txt as needed.
# Otherwise library dependencies can upgrade/downgrade torch incorrectly.
COPY docker/verify_torch_wheel.py verify_torch_wheel.py
RUN --mount=type=cache,target=/opt/uv/cache \
uv pip freeze | grep -i "^torch=\|^torchvision=\|^torchaudio=" > torch_lib_versions.txt \
&& TORCH_LIB_VERSIONS=$(cat torch_lib_versions.txt | xargs) \
&& echo "Installed torch libs: ${TORCH_LIB_VERSIONS}"
&& echo "Installed torch libs: ${TORCH_LIB_VERSIONS}" \
&& CU_TAG=cu$(echo $CUDA_VERSION | cut -d. -f1,2 | tr -d '.') \
&& if [ "${PYTORCH_NIGHTLY}" = "1" ]; then \
TORCH_INDEX_URL="${PYTORCH_CUDA_INDEX_BASE_URL}/nightly/${CU_TAG}"; \
else \
TORCH_INDEX_URL="${PYTORCH_CUDA_INDEX_BASE_URL}/${CU_TAG}"; \
fi \
&& /opt/venv/bin/python3 verify_torch_wheel.py "${TORCH_INDEX_URL}"

# CUDA arch list used by torch
# Explicitly set the list to avoid issues with torch 2.2
Expand Down Expand Up @@ -387,7 +399,7 @@ RUN --mount=type=cache,target=/opt/uv/cache \
&& python3 use_existing_torch.py --prefix \
&& uv pip install --python /opt/venv/bin/python3 -r requirements/build/cuda.txt \
&& echo "Installing torch nightly..." \
&& uv pip install --python /opt/venv/bin/python3 $(cat torch_lib_versions.txt | grep -i "^torch=" | xargs) --pre \
&& uv pip install --refresh-package torch --refresh-package torchvision --refresh-package torchaudio --python /opt/venv/bin/python3 $(cat torch_lib_versions.txt | grep -i "^torch=" | xargs) --pre \
--index-url ${PYTORCH_CUDA_INDEX_BASE_URL}/nightly/cu$(echo $CUDA_VERSION | cut -d. -f1,2 | tr -d '.'); \
else \
echo "Installing build requirements..." \
Expand Down Expand Up @@ -530,7 +542,7 @@ RUN --mount=type=cache,target=/opt/uv/cache \
&& python3 use_existing_torch.py --prefix \
&& uv pip install --python /opt/venv/bin/python3 -r requirements/build/cuda.txt \
&& echo "Installing torch nightly..." \
&& uv pip install --python /opt/venv/bin/python3 $(cat torch_lib_versions.txt | grep -i "^torch=" | xargs) --pre \
&& uv pip install --refresh-package torch --refresh-package torchvision --refresh-package torchaudio --python /opt/venv/bin/python3 $(cat torch_lib_versions.txt | grep -i "^torch=" | xargs) --pre \
--index-url ${PYTORCH_CUDA_INDEX_BASE_URL}/nightly/cu$(echo $CUDA_VERSION | cut -d. -f1,2 | tr -d '.'); \
else \
echo "Installing build requirements..." \
Expand Down Expand Up @@ -639,7 +651,7 @@ RUN --mount=type=cache,target=/opt/uv/cache \
&& cat torch_lib_versions.txt >> requirements/test/cuda.in \
&& uv pip compile requirements/test/cuda.in -o requirements/test/cuda.txt --index-strategy unsafe-best-match \
--extra-index-url ${PYTORCH_CUDA_INDEX_BASE_URL}/nightly/cu$(echo $CUDA_VERSION | cut -d. -f1,2 | tr -d '.') \
&& uv pip install --python /opt/venv/bin/python3 $(cat torch_lib_versions.txt | xargs) --pre \
&& uv pip install --refresh-package torch --refresh-package torchvision --refresh-package torchaudio --python /opt/venv/bin/python3 $(cat torch_lib_versions.txt | xargs) --pre \
-r requirements/dev.txt \
--extra-index-url ${PYTORCH_CUDA_INDEX_BASE_URL}/nightly/cu$(echo $CUDA_VERSION | cut -d. -f1,2 | tr -d '.'); \
else \
Expand Down Expand Up @@ -741,6 +753,8 @@ ENV UV_INDEX_STRATEGY="unsafe-best-match"
ENV UV_LINK_MODE=copy
ENV UV_PYTHON_INSTALL_DIR=/opt/uv/python
ENV UV_CACHE_DIR=/opt/uv/cache
# See base stage: skip uv hash verification so re-published torch wheels install.
ENV UV_NO_VERIFY_HASHES=1
RUN mkdir -p "${UV_PYTHON_INSTALL_DIR}" "${UV_CACHE_DIR}" \
&& chgrp -R 0 /opt/uv \
&& chmod -R g+rwX,a+rX /opt/uv
Expand Down Expand Up @@ -881,7 +895,7 @@ RUN --mount=type=bind,from=build,src=/workspace/dist,target=/vllm-workspace/dist
--mount=type=cache,target=/opt/uv/cache \
if [ "${PYTORCH_NIGHTLY}" = "1" ]; then \
echo "Installing torch nightly..." \
&& uv pip install --system $(cat torch_lib_versions.txt | xargs) --pre \
&& uv pip install --refresh-package torch --refresh-package torchvision --refresh-package torchaudio --system $(cat torch_lib_versions.txt | xargs) --pre \
--index-url ${PYTORCH_CUDA_INDEX_BASE_URL}/nightly/cu$(echo $CUDA_VERSION | cut -d. -f1,2 | tr -d '.') \
&& echo "Installing vLLM..." \
&& uv pip install --system dist/*.whl --verbose \
Expand Down Expand Up @@ -975,7 +989,7 @@ RUN --mount=type=cache,target=/opt/uv/cache \
&& cat torch_lib_versions.txt >> requirements/test/cuda.in \
&& uv pip compile requirements/test/cuda.in -o requirements/test/cuda.txt --index-strategy unsafe-best-match \
--extra-index-url ${PYTORCH_CUDA_INDEX_BASE_URL}/nightly/cu$(echo $CUDA_VERSION | cut -d. -f1,2 | tr -d '.') \
&& uv pip install --system $(cat torch_lib_versions.txt | xargs) --pre \
&& uv pip install --refresh-package torch --refresh-package torchvision --refresh-package torchaudio --system $(cat torch_lib_versions.txt | xargs) --pre \
-r requirements/dev.txt \
--extra-index-url ${PYTORCH_CUDA_INDEX_BASE_URL}/nightly/cu$(echo $CUDA_VERSION | cut -d. -f1,2 | tr -d '.'); \
else \
Expand Down
39 changes: 28 additions & 11 deletions docker/Dockerfile.cpu
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ FROM ubuntu:22.04 AS base-common
WORKDIR /workspace

ARG PYTHON_VERSION=3.12
ARG PIP_EXTRA_INDEX_URL="https://download.pytorch.org/whl/cpu"
ARG PIP_EXTRA_INDEX_URL="https://download.pytorch.org/whl/test/cpu"

ARG max_jobs=32
ENV MAX_JOBS=${max_jobs}
Expand Down Expand Up @@ -193,16 +193,33 @@ FROM base AS vllm-test-deps

WORKDIR /vllm-workspace

# Test requirements are compiled from requirements/test/cuda.in into
# requirements/test/cpu.txt by the pip-compile-cpu pre-commit hook, which
# resolves CPU wheels via uv's --torch-backend cpu.
COPY requirements/test/cpu.txt requirements/test/cpu.txt

# cpu.txt is compiled for x86_64, so platform markers are resolved away. Drop
# packages unavailable on aarch64 (decord, terratorch) for arm builds.
RUN case "$(uname -m)" in \
aarch64|arm64) sed -i '/^decord==/d; /^terratorch==/d' requirements/test/cpu.txt ;; \
esac
# cpu.txt is compiled at build time from cuda.in (seeded as cpu.in) so the torch
# 2.13 CPU test-channel wheels resolve; upstream's pre-committed cpu.txt still
# pins torch 2.11 and cannot carry the test-channel pins.
# cpu.in starts with `-r ../common.txt`, so common.txt must be present at the
# same relative location for `uv pip compile` to resolve the include.
COPY requirements/common.txt requirements/common.txt
COPY requirements/test/cuda.in requirements/test/cpu.in

RUN \
sed -i '/mamba_ssm/d' requirements/test/cpu.in && \
remove_packages_not_supported_on_aarch64() { \
case "$(uname -m)" in \
aarch64|arm64) \
sed -i '/decord/d' requirements/test/cpu.in; \
sed -i '/terratorch/d' requirements/test/cpu.in; \
;; \
esac; \
}; \
remove_packages_not_supported_on_aarch64 && \
# cpu.in is seeded from cuda.in which points at whl/test/cu130; redirect to CPU test channel
sed -i 's|https://download.pytorch.org/whl/test/cu130|https://download.pytorch.org/whl/test/cpu|g' requirements/test/cpu.in && \
sed -i 's/^torch==.*/torch==2.13.0/g' requirements/test/cpu.in && \
sed -i 's/torchaudio.*/torchaudio/g' requirements/test/cpu.in && \
sed -i 's/torchvision.*/torchvision/g' requirements/test/cpu.in && \
# Related issue: https://github.com/vllm-project/vllm/pull/38800#issuecomment-4228314305
sed -i 's/^sentence-transformers.*/sentence-transformers==5.3.0/g' requirements/test/cpu.in && \
uv pip compile requirements/test/cpu.in -o requirements/test/cpu.txt --index-strategy unsafe-best-match

RUN --mount=type=cache,target=/root/.cache/uv \
uv pip install -r requirements/test/cpu.txt
Expand Down
35 changes: 35 additions & 0 deletions docker/Dockerfile.rocm
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,28 @@ ENV SCCACHE_IDLE_TIMEOUT=${USE_SCCACHE:+0}
ARG COMMON_WORKDIR
WORKDIR ${COMMON_WORKDIR}

# Override the base image's source-built torch (Dockerfile.rocm_base compiles
# ROCm/pytorch release/2.11) with the published torch 2.13.0 ROCm test-channel
# wheels. ROCm/pytorch has no release/2.13 source branch yet, so install the
# prebuilt +rocm7.1 wheels from the test index. Every FROM-base stage inherits
# this, so vLLM is compiled and run against torch 2.13.
# The torch +rocm7.1 wheel is ~5.5 GiB (ZIP64). Letting uv stream-download and
# extract a wheel this large fails behind the CI proxy ("Invalid zip file
# structure" from a truncated transfer), so fetch each wheel fully to disk with
# retries and install the local files instead.
RUN --mount=type=cache,target=/root/.cache/uv \
set -eux; \
pytag="cp$(echo "${PYTHON_VERSION}" | tr -d .)"; \
index="https://download.pytorch.org/whl/test/rocm7.1"; \
mkdir -p /tmp/rocm_wheels; \
for spec in torch-2.13.0 torchvision-0.28.0 torchaudio-2.11.0; do \
whl="${spec}+rocm7.1-${pytag}-${pytag}-manylinux_2_28_x86_64.whl"; \
curl -fSL --retry 5 --retry-all-errors --retry-delay 5 \
-o "/tmp/rocm_wheels/${whl}" "${index}/${spec}%2Brocm7.1-${pytag}-${pytag}-manylinux_2_28_x86_64.whl"; \
done; \
uv pip install --system --reinstall --extra-index-url "${index}" /tmp/rocm_wheels/*.whl; \
rm -rf /tmp/rocm_wheels


# -----------------------
# vLLM fetch stages
Expand Down Expand Up @@ -589,6 +611,19 @@ RUN --mount=type=cache,target=/root/.cache/uv \
&& rm /tmp/install_torchcodec.sh \
&& apt-get clean && rm -rf /var/lib/apt/lists/*

# Rebuild flash-attn from source for ROCm/torch ABI compatibility. The base
# image's flash-attn is built against its pinned torch (release/2.11); after
# reinstalling the torch test-channel wheels above, its prebuilt
# flash_attn_2_cuda.so fails to import (undefined c10 COW symbol). Recompile it
# against the installed torch. No-op once the wheel imports cleanly.
COPY tools/install_flash_attn_rocm.sh /tmp/install_flash_attn_rocm.sh
RUN --mount=type=cache,target=/root/.cache/uv \
--mount=type=cache,target=/root/.cache/pip \
--mount=type=cache,target=/root/.cache/ccache \
--mount=type=cache,target=/root/.cache/flash-attn-wheels \
bash /tmp/install_flash_attn_rocm.sh \
&& rm /tmp/install_flash_attn_rocm.sh

# Pre-install shared ROCm runtime dependencies.
COPY requirements/common.txt requirements/rocm.txt /tmp/ci-base-requirements/
RUN --mount=type=cache,target=/root/.cache/uv \
Expand Down
6 changes: 3 additions & 3 deletions docker/Dockerfile.s390x
Original file line number Diff line number Diff line change
Expand Up @@ -92,13 +92,13 @@ ENV C_INCLUDE_PATH="/usr/local/include:$C_INCLUDE_PATH"

FROM python-install AS torch-vision
# Install torchvision
ARG TORCH_VISION_VERSION=v0.26.0
ARG TORCH_VISION_VERSION=v0.28.0
WORKDIR /tmp
RUN --mount=type=cache,target=/root/.cache/uv \
git clone https://github.com/pytorch/vision.git && \
cd vision && \
git checkout $TORCH_VISION_VERSION && \
uv pip install torch==2.11.0 --index-url https://download.pytorch.org/whl/cpu && \
uv pip install torch==2.13.0 --index-url https://download.pytorch.org/whl/test/cpu && \
python setup.py bdist_wheel

FROM python-install AS hf-xet-builder
Expand Down Expand Up @@ -210,7 +210,7 @@ RUN --mount=type=cache,target=/root/.cache/uv \
# # Final build stage
FROM python-install AS vllm-cpu
ARG PYTHON_VERSION
ARG PIP_EXTRA_INDEX_URL="https://download.pytorch.org/whl/cpu"
ARG PIP_EXTRA_INDEX_URL="https://download.pytorch.org/whl/test/cpu"
# Set correct library path for torch and numactl
ENV LD_LIBRARY_PATH="/opt/vllm/lib64/python${PYTHON_VERSION}/site-packages/torch/lib:/usr/local/lib:/opt/rh/gcc-toolset-14/root/usr/lib64:$LD_LIBRARY_PATH"
ENV C_INCLUDE_PATH="/usr/local/include:$C_INCLUDE_PATH"
Expand Down
Loading
Loading