Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix docker build issue #3070

Merged
merged 15 commits into from
Aug 16, 2024
14 changes: 11 additions & 3 deletions docker/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -67,9 +67,13 @@ RUN apt-get update &&\

FROM torch-tensorrt-builder-base as torch-tensorrt-builder

RUN curl -L https://github.com/a8m/envsubst/releases/download/v1.2.0/envsubst-`uname -s`-`uname -m` -o envsubst &&\
chmod +x envsubst && mv envsubst /usr/local/bin

COPY . /workspace/torch_tensorrt/src
WORKDIR /workspace/torch_tensorrt/src
RUN cp ./docker/WORKSPACE.docker WORKSPACE

RUN cat ./docker/MODULE.bazel.docker | envsubst > MODULE.bazel

# Symlink the path pyenv is using for python with the /opt directory for package sourcing
RUN mkdir -p "/opt/python3/" &&\
Expand Down Expand Up @@ -99,8 +103,12 @@ RUN mkdir -p "/opt/python3/" &&\

COPY --from=torch-tensorrt-builder /workspace/torch_tensorrt/src/dist/ .

RUN cp /opt/torch_tensorrt/docker/WORKSPACE.docker /opt/torch_tensorrt/WORKSPACE &&\
pip install -r /opt/torch_tensorrt/py/requirements.txt &&\
RUN curl -L https://github.com/a8m/envsubst/releases/download/v1.2.0/envsubst-`uname -s`-`uname -m` -o envsubst &&\
chmod +x envsubst && mv envsubst /usr/local/bin

RUN cat ./docker/MODULE.bazel.docker | envsubst > MODULE.bazel

RUN pip install -r /opt/torch_tensorrt/py/requirements.txt &&\
# Install all dependency wheel files and user-specified TensorRT
pip install *.whl &&\
pip install tensorrt==${TENSORRT_VERSION}.* &&\
Expand Down
77 changes: 77 additions & 0 deletions docker/MODULE.bazel.docker
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
module(
name = "torch_tensorrt",
repo_name = "org_pytorch_tensorrt",
version = "${BUILD_VERSION}"
)

bazel_dep(name = "googletest", version = "1.14.0")
bazel_dep(name = "platforms", version = "0.0.10")
bazel_dep(name = "rules_cc", version = "0.0.9")
bazel_dep(name = "rules_python", version = "0.34.0")

python = use_extension("@rules_python//python/extensions:python.bzl", "python")
python.toolchain(
ignore_root_user_error = True,
python_version = "3.11",
)

bazel_dep(name = "rules_pkg", version = "1.0.1")
git_override(
module_name = "rules_pkg",
commit = "17c57f4",
remote = "https://github.com/narendasan/rules_pkg",
)

local_repository = use_repo_rule("@bazel_tools//tools/build_defs/repo:local.bzl", "local_repository")


new_local_repository = use_repo_rule("@bazel_tools//tools/build_defs/repo:local.bzl", "new_local_repository")

# CUDA should be installed on the system locally
new_local_repository(
name = "cuda",
build_file = "@//third_party/cuda:BUILD",
path = "/usr/local/cuda",
)

http_archive = use_repo_rule("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")

####################################################################################
# Locally installed dependencies (use in cases of custom dependencies or aarch64)
####################################################################################

# NOTE: In the case you are using just the pre-cxx11-abi path or just the cxx11 abi path
# with your local libtorch, just point deps at the same path to satisfy bazel.

# NOTE: NVIDIA's aarch64 PyTorch (python) wheel file uses the CXX11 ABI unlike PyTorch's standard
# x86_64 python distribution. If using NVIDIA's version just point to the root of the package
# for both versions here and do not use --config=pre-cxx11-abi

new_local_repository(
name = "libtorch",
path = "/opt/python3/site-packages/torch/",
lanluo-nvidia marked this conversation as resolved.
Show resolved Hide resolved
build_file = "third_party/libtorch/BUILD"
)

new_local_repository(
name = "libtorch_pre_cxx11_abi",
path = "/opt/python3/site-packages/torch/",
build_file = "third_party/libtorch/BUILD"
)

new_local_repository(
name = "tensorrt",
path = "/usr/",
build_file = "@//third_party/tensorrt/local:BUILD"
)

pip = use_extension("@rules_python//python/extensions:pip.bzl", "pip")

pip.parse(
download_only = True,
hub_name = "pypi",
python_version = ${PYTHON_VERSION},
requirements_lock = "//:requirements_dev.txt",
)

use_repo(pip, "pypi")
89 changes: 0 additions & 89 deletions docker/WORKSPACE.docker

This file was deleted.

2 changes: 2 additions & 0 deletions docker/dist-build.sh
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
#!/bin/bash

set -x

TOP_DIR=$(cd $(dirname $0); pwd)/..

if [[ -z "${USE_CXX11}" ]]; then
Expand Down
3 changes: 2 additions & 1 deletion py/requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@ numpy
packaging
pybind11==2.6.2
--extra-index-url https://download.pytorch.org/whl/nightly/cu124
torch>=2.5.0.dev,<2.6.0
# it is trying to download all the torch versions from 0808 back to 0617 to find the matching torchvision 0.19.0 which cause disk space to be full
torch>=2.5.0.dev20240617,<2.5.0.dev20240618
lanluo-nvidia marked this conversation as resolved.
Show resolved Hide resolved
torchvision>=0.19.0.dev,<0.20.0
lanluo-nvidia marked this conversation as resolved.
Show resolved Hide resolved
--extra-index-url https://pypi.ngc.nvidia.com
pyyaml
Expand Down
Loading