fix: git lfs support is erratic with uv so set env var to force it (#3671)

Signed-off-by: Harrison Saturley-Hall <hsaturleyhal@nvidia.com>
This commit is contained in:
Harrison Saturley-Hall 2025-10-16 18:49:42 -04:00 committed by GitHub
parent e41fa1a012
commit 34fc9693f8
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
9 changed files with 32 additions and 13 deletions

View File

@ -159,7 +159,7 @@ dynamo-base-docker:
ENV VIRTUAL_ENV=/opt/dynamo/venv
ENV PATH="${VIRTUAL_ENV}/bin:${PATH}"
RUN uv pip install -r /tmp/requirements.txt
RUN UV_GIT_LFS=1 uv pip install -r /tmp/requirements.txt
# Copy and install wheels -- ai-dynamo-runtime first, then ai-dynamo
COPY +dynamo-build/ai_dynamo_runtime*.whl /tmp/wheels/

View File

@ -66,7 +66,9 @@ class AIConfiguratorPerfEstimator:
# NOTE: MOE models error out unless moe_tp_size and moe_ep_size are provided.
model_config = aiconfigurator.sdk.config.ModelConfig(**model_config_kwargs)
model = aiconfigurator.sdk.models.get_model(self.model_name, model_config)
model = aiconfigurator.sdk.models.get_model(
self.model_name, model_config, self.backend
)
return model
def estimate_perf(

View File

@ -40,7 +40,7 @@ classifiers = [
]
dependencies = [
"aiconfigurator==0.2.0",
"aiconfigurator @ git+https://github.com/ai-dynamo/aiconfigurator.git@e46d9089ffe4f5dd62c46914489c55b6dfdbc903",
"networkx",
"pandas",
"pydantic>=2",

View File

@ -116,6 +116,7 @@ RUN apt-get update -y \
automake \
cmake \
git \
git-lfs \
libtool \
meson \
net-tools \
@ -261,7 +262,10 @@ ENV VIRTUAL_ENV=/opt/dynamo/venv \
# Install common and test dependencies
RUN --mount=type=bind,source=./container/deps/requirements.txt,target=/tmp/requirements.txt \
--mount=type=bind,source=./container/deps/requirements.test.txt,target=/tmp/requirements.test.txt \
uv pip install --requirement /tmp/requirements.txt --requirement /tmp/requirements.test.txt
UV_GIT_LFS=1 uv pip install \
--no-cache \
--requirement /tmp/requirements.txt \
--requirement /tmp/requirements.test.txt
##################################
##### Wheel Build Image ##########
@ -382,7 +386,7 @@ RUN uv pip install \
/opt/dynamo/wheelhouse/ai_dynamo*any.whl \
/opt/dynamo/wheelhouse/nixl/nixl*.whl \
&& cd /opt/dynamo/benchmarks \
&& uv pip install . \
&& UV_GIT_LFS=1 uv pip install --no-cache . \
&& cd - \
&& rm -rf /opt/dynamo/benchmarks

View File

@ -65,6 +65,7 @@ RUN apt-get update -y \
python${PYTHON_VERSION}-dev \
build-essential \
git \
git-lfs \
# SGLang build dependencies
cmake \
ibverbs-providers \
@ -149,6 +150,7 @@ RUN apt-get update && \
# jq and curl for polling various endpoints and health checks
jq \
git \
git-lfs \
curl \
# Libraries required by UCX to find RDMA devices
libibverbs1 rdma-core ibverbs-utils libibumad3 \
@ -206,14 +208,17 @@ RUN uv pip install \
/opt/dynamo/wheelhouse/ai_dynamo*any.whl \
/opt/dynamo/wheelhouse/nixl/nixl*.whl \
&& cd /opt/dynamo/benchmarks \
&& uv pip install . \
&& UV_GIT_LFS=1 uv pip install --no-cache . \
&& cd - \
&& rm -rf /opt/dynamo/benchmarks
# Install common and test dependencies
RUN --mount=type=bind,source=./container/deps/requirements.txt,target=/tmp/requirements.txt \
--mount=type=bind,source=./container/deps/requirements.test.txt,target=/tmp/requirements.test.txt \
uv pip install --requirement /tmp/requirements.txt --requirement /tmp/requirements.test.txt
UV_GIT_LFS=1 uv pip install \
--no-cache \
--requirement /tmp/requirements.txt \
--requirement /tmp/requirements.test.txt
# Copy launch banner
RUN --mount=type=bind,source=./container/launch_message.txt,target=/workspace/launch_message.txt \

View File

@ -77,6 +77,7 @@ RUN apt-get update && \
g++ \
ninja-build \
git \
git-lfs \
# Python runtime - CRITICAL for virtual environment to work
python${PYTHON_VERSION}-dev \
python3-pip \
@ -242,14 +243,17 @@ RUN uv pip install \
/opt/dynamo/wheelhouse/ai_dynamo*any.whl \
/opt/dynamo/wheelhouse/nixl/nixl*.whl \
&& cd /opt/dynamo/benchmarks \
&& uv pip install . \
&& UV_GIT_LFS=1 uv pip install --no-cache . \
&& cd - \
&& rm -rf /opt/dynamo/benchmarks
# Install common and test dependencies
RUN --mount=type=bind,source=./container/deps/requirements.txt,target=/tmp/requirements.txt \
--mount=type=bind,source=./container/deps/requirements.test.txt,target=/tmp/requirements.test.txt \
uv pip install --requirement /tmp/requirements.txt --requirement /tmp/requirements.test.txt
UV_GIT_LFS=1 uv pip install \
--no-cache \
--requirement /tmp/requirements.txt \
--requirement /tmp/requirements.test.txt
# Copy UCX libraries, libucc.so is needed by pytorch. May not need to copy whole hpcx dir but only /opt/hpcx/ucc/
COPY --from=framework /opt/hpcx /opt/hpcx

View File

@ -192,6 +192,7 @@ RUN apt-get update && \
# jq and curl for polling various endpoints and health checks
jq \
git \
git-lfs \
curl \
# Libraries required by UCX to find RDMA devices
libibverbs1 rdma-core ibverbs-utils libibumad3 \
@ -257,14 +258,17 @@ RUN uv pip install \
/opt/dynamo/wheelhouse/ai_dynamo*any.whl \
/opt/dynamo/wheelhouse/nixl/nixl*.whl \
&& cd /opt/dynamo/benchmarks \
&& uv pip install . \
&& UV_GIT_LFS=1 uv pip install --no-cache . \
&& cd - \
&& rm -rf /opt/dynamo/benchmarks
# Install common and test dependencies
RUN --mount=type=bind,source=./container/deps/requirements.txt,target=/tmp/requirements.txt \
--mount=type=bind,source=./container/deps/requirements.test.txt,target=/tmp/requirements.test.txt \
uv pip install --requirement /tmp/requirements.txt --requirement /tmp/requirements.test.txt
UV_GIT_LFS=1 uv pip install \
--no-cache \
--requirement /tmp/requirements.txt \
--requirement /tmp/requirements.test.txt
# Copy benchmarks, examples, and tests for CI
COPY . /workspace/

View File

@ -10,7 +10,7 @@ This directory contains comprehensive testing tools for validating the SLA plann
The SLA planner monitors metrics every 60 seconds (default adjustment interval) and scales
prefill/decode workers based on TTFT, ITL, and request patterns.
To setup the environment, simply use the released docker images for any backends, or build your own docker image following the READMEs in `./components/backends/<vllm/sglang/trtllm>/README.md`, or follow the `Developing Locally` section in [README.md](../../README.md) to setup the environment locally. If using the local environment, make sure to install dependencies by running `uv pip install -r container/deps/requirements.txt`
To setup the environment, simply use the released docker images for any backends, or build your own docker image following the READMEs in `./components/backends/<vllm/sglang/trtllm>/README.md`, or follow the `Developing Locally` section in [README.md](../../README.md) to setup the environment locally. If using the local environment, make sure to install dependencies by running `UV_GIT_LFS=1 uv pip install --no-cache -r container/deps/requirements.txt`
## Pre-Requisite: Pre-Deployment Profiling Data

View File

@ -97,7 +97,7 @@ class TestProfileSlaAiconfigurator:
("trtllm", "1.0.0rc3"),
],
)
@pytest.mark.parametrize("model_name", ["QWEN3_32B", "GPT_7B", "LLAMA3.1_405B"])
@pytest.mark.parametrize("model_name", ["QWEN3_32B", "LLAMA3.1_405B"])
async def test_trtllm_aiconfigurator_many(
self, trtllm_args, model_name, backend, aic_backend_version
):