From c8ea9b77ac2a31d2406ee62d7a957b3d5c56ac8f Mon Sep 17 00:00:00 2001 From: Naren Dasan Date: Thu, 16 Jul 2020 00:03:23 -0700 Subject: [PATCH] fix(//notebooks): Fix WORKSPACE template file to reflect new build system layout Signed-off-by: Naren Dasan Signed-off-by: Naren Dasan --- notebooks/Dockerfile.notebook | 24 ++++++++++ notebooks/README.md | 10 ++-- notebooks/WORKSPACE.notebook | 86 +++++++++++++++++------------------ 3 files changed, 72 insertions(+), 48 deletions(-) create mode 100644 notebooks/Dockerfile.notebook diff --git a/notebooks/Dockerfile.notebook b/notebooks/Dockerfile.notebook new file mode 100644 index 0000000000..39f2a43c72 --- /dev/null +++ b/notebooks/Dockerfile.notebook @@ -0,0 +1,24 @@ +FROM nvcr.io/nvidia/pytorch:20.03-py3 + +RUN apt update && apt install curl gnupg +RUN curl https://bazel.build/bazel-release.pub.gpg | apt-key add - +RUN echo "deb [arch=amd64] https://storage.googleapis.com/bazel-apt stable jdk1.8" | tee /etc/apt/sources.list.d/bazel.list + +RUN apt update && apt install bazel-3.3.1 +RUN ln -s /usr/bin/bazel-3.3.1 /usr/bin/bazel + +RUN pip install pillow==4.3.0 +RUN pip install torch==1.5.1 +RUN pip install torchvision==0.6.1 + +COPY . /workspace/TRTorch +RUN rm /workspace/TRTorch/WORKSPACE +COPY ./notebooks/WORKSPACE.notebook /workspace/TRTorch/WORKSPACE + +WORKDIR /workspace/TRTorch +RUN bazel build //:libtrtorch --compilation_mode opt + +WORKDIR /workspace/TRTorch/py +RUN python3 setup.py install + +WORKDIR /workspace/TRTorch/notebooks \ No newline at end of file diff --git a/notebooks/README.md b/notebooks/README.md index 976193dd96..160518ea57 100644 --- a/notebooks/README.md +++ b/notebooks/README.md @@ -3,7 +3,7 @@ This folder contains demo notebooks for TRTorch. ## 1. Requirements -The most convenient way to run these notebooks is via a docker container, which provides a self-contained, isolated and re-producible environment for all experiments. +The most convenient way to run these notebooks is via a docker container, which provides a self-contained, isolated and re-producible environment for all experiments. First, clone the repository: @@ -11,16 +11,16 @@ First, clone the repository: git clone https://github.com/NVIDIA/TRTorch ``` -Next, build the NVIDIA TRTorch container: +Next, build the NVIDIA TRTorch container (from repo root): ``` -docker build -t trtorch -f Dockerfile.notebook . +docker build -t trtorch -f notebooks/Dockerfile.notebook . ``` Then launch the container with: ``` -docker run --runtime=nvidia -it --rm --ipc=host --net=host trtorch +docker run --runtime=nvidia -it --rm --ipc=host --net=host trtorch ``` Within the docker interactive bash session, start Jupyter with @@ -38,7 +38,7 @@ in, for example: ```http://[host machine]:8888/?token=aae96ae9387cd28151868fee318c3b3581a2d794f3b25c6b``` -Within the container, this notebook itself is located at `/workspace/TRTorch/notebooks`. +Within the container, this notebooks itself is located at `/workspace/TRTorch/notebooks`. ## 2. Notebook list diff --git a/notebooks/WORKSPACE.notebook b/notebooks/WORKSPACE.notebook index dc9526607e..9030af467b 100755 --- a/notebooks/WORKSPACE.notebook +++ b/notebooks/WORKSPACE.notebook @@ -25,29 +25,65 @@ http_archive( load("@rules_pkg//:deps.bzl", "rules_pkg_dependencies") rules_pkg_dependencies() +git_repository( + name = "googletest", + remote = "https://github.com/google/googletest", + commit = "703bd9caab50b139428cea1aaff9974ebee5742e", + shallow_since = "1570114335 -0400" +) + # CUDA should be installed on the system locally new_local_repository( name = "cuda", - path = "/usr/local/cuda-10.2/targets/x86_64-linux/", + path = "/usr/local/cuda-10.2/", build_file = "@//third_party/cuda:BUILD", ) +new_local_repository( + name = "cublas", + path = "/usr", + build_file = "@//third_party/cublas:BUILD", +) + +############################################################################################################# +# Tarballs and fetched dependencies (default - use in cases when building from precompiled bin and tarballs) +############################################################################################################# + http_archive( - name = "libtorch_pre_cxx11_abi", + name = "libtorch", build_file = "@//third_party/libtorch:BUILD", strip_prefix = "libtorch", - sha256 = "ea8de17c5f70015583f3a7a43c7a5cdf91a1d4bd19a6a7bc11f074ef6cd69e27", - urls = ["https://download.pytorch.org/libtorch/cu102/libtorch-shared-with-deps-1.5.0.zip"], + urls = ["https://download.pytorch.org/libtorch/cu102/libtorch-cxx11-abi-shared-with-deps-1.5.1.zip"], + sha256 = "cf0691493d05062fe3239cf76773bae4c5124f4b039050dbdd291c652af3ab2a" ) http_archive( - name = "libtorch", + name = "libtorch_pre_cxx11_abi", build_file = "@//third_party/libtorch:BUILD", strip_prefix = "libtorch", - urls = ["https://download.pytorch.org/libtorch/cu102/libtorch-cxx11-abi-shared-with-deps-1.5.0.zip"], - sha256 = "0efdd4e709ab11088fa75f0501c19b0e294404231442bab1d1fb953924feb6b5" + sha256 = "818977576572eadaf62c80434a25afe44dbaa32ebda3a0919e389dcbe74f8656", + urls = ["https://download.pytorch.org/libtorch/cu102/libtorch-shared-with-deps-1.5.1.zip"], +) + +#################################################################################### +# Locally installed dependencies (use in cases of custom dependencies or aarch64) +#################################################################################### + +new_local_repository( + name = "cudnn", + path = "/usr/", + build_file = "@//third_party/cudnn/local:BUILD" +) + +new_local_repository( + name = "tensorrt", + path = "/usr/", + build_file = "@//third_party/tensorrt/local:BUILD" ) +######################################################################### +# Testing Dependencies (optional - comment out on aarch64) +######################################################################### pip3_import( name = "trtorch_py_deps", requirements = "//py:requirements.txt" @@ -64,39 +100,3 @@ pip3_import( load("@py_test_deps//:requirements.bzl", "pip_install") pip_install() -## Downloaded distributions to use with --distdir -#http_archive( -# name = "cudnn", -# urls = ["https://developer.nvidia.com/compute/machine-learning/cudnn/secure/7.6.5.32/Production/10.2_20191118/cudnn-10.2-linux-x64-v7.6.5.32.tgz"], -# build_file = "@//third_party/cudnn/archive:BUILD", -# sha256 = "600267f2caaed2fd58eb214ba669d8ea35f396a7d19b94822e6b36f9f7088c20", -# strip_prefix = "cuda" -#) - -#http_archive( -# name = "tensorrt", -# urls = ["https://developer.nvidia.com/compute/machine-learning/tensorrt/secure/7.0/7.0.0.11/tars/TensorRT-7.0.0.11.Ubuntu-18.04.x86_64-gnu.cuda-10.2.cudnn7.6.tar.gz"], -# build_file = "@//third_party/tensorrt/archive:BUILD", -# sha256 = "c7d73b2585b18aae68b740249efa8c8ba5ae852abe9a023720595432a8eb4efd", -# strip_prefix = "TensorRT-7.0.0.11" -#) - -# Locally installed dependencies -new_local_repository( - name = "cudnn", - path = "/usr/", - build_file = "@//third_party/cudnn/local:BUILD" -) - -new_local_repository( - name = "tensorrt", - path = "/usr/", - build_file = "@//third_party/tensorrt/local:BUILD" -) - -git_repository( - name = "googletest", - remote = "https://github.com/google/googletest", - commit = "703bd9caab50b139428cea1aaff9974ebee5742e", - shallow_since = "1570114335 -0400" -)