From 6485c980aed09af089e46178ceb339d9e4fedd66 Mon Sep 17 00:00:00 2001 From: Serge Panev Date: Wed, 24 Jun 2020 17:12:07 -0700 Subject: [PATCH 1/7] Update the onnx-tensorrt submodule Signed-off-by: Serge Panev --- 3rdparty/onnx-tensorrt | 2 +- src/operator/subgraph/tensorrt/onnx_to_tensorrt.cc | 4 ---- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/3rdparty/onnx-tensorrt b/3rdparty/onnx-tensorrt index f4745fcaff86..2eb74d933f89 160000 --- a/3rdparty/onnx-tensorrt +++ b/3rdparty/onnx-tensorrt @@ -1 +1 @@ -Subproject commit f4745fcaff868a519834917c657f105a8eef2f53 +Subproject commit 2eb74d933f89e1590fdbfc64971a36e5f72df720 diff --git a/src/operator/subgraph/tensorrt/onnx_to_tensorrt.cc b/src/operator/subgraph/tensorrt/onnx_to_tensorrt.cc index b02d1094183f..d82f7544a091 100644 --- a/src/operator/subgraph/tensorrt/onnx_to_tensorrt.cc +++ b/src/operator/subgraph/tensorrt/onnx_to_tensorrt.cc @@ -35,13 +35,9 @@ #include #include #include -#include #include #include -#include -#include - using std::cout; using std::cerr; using std::endl; From 7c0b46c289e425cd8041fd4ecd843898d5457336 Mon Sep 17 00:00:00 2001 From: Serge Panev Date: Fri, 24 Jul 2020 22:49:36 -0700 Subject: [PATCH 2/7] Update CMakeLists.txt Signed-off-by: Serge Panev --- CMakeLists.txt | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 162eeeade385..2e9c44b78189 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -228,6 +228,7 @@ if(USE_TENSORRT) include_directories(3rdparty/onnx-tensorrt/third_party/onnx/) add_definitions(-DMXNET_USE_TENSORRT=1) add_definitions(-DONNX_NAMESPACE=onnx) + add_definitions(-DONNX_ML=1) find_package(Protobuf REQUIRED) @@ -237,14 +238,11 @@ if(USE_TENSORRT) find_library(ONNX_PROTO_LIBRARY NAMES libonnx_proto.so REQUIRED PATHS ${ONNX_PATH} DOC "Path to onnx_proto library.") - find_library(ONNX_TRT_RUNTIME_LIBRARY NAMES libnvonnxparser_runtime.so REQUIRED - PATHS ${ONNX_TRT_PATH} - DOC "Path to onnx_proto library.") find_library(ONNX_TRT_PARSER_LIBRARY NAMES libnvonnxparser.so REQUIRED PATHS ${ONNX_TRT_PATH} - DOC "Path to onnx_proto library.") + DOC "Path to onnx_proto parser library.") - list(APPEND mxnet_LINKER_LIBS libnvinfer.so ${ONNX_TRT_PARSER_LIBRARY} ${ONNX_TRT_RUNTIME_LIBRARY} + list(APPEND mxnet_LINKER_LIBS libnvinfer.so ${ONNX_TRT_PARSER_LIBRARY} ${ONNX_PROTO_LIBRARY} ${ONNX_LIBRARY} ${PROTOBUF_LIBRARY}) endif() From 8ef2a7513fc1034117992cf1c446bbde184a56c8 Mon Sep 17 00:00:00 2001 From: Serge Panev Date: Sat, 25 Jul 2020 13:20:37 -0700 Subject: [PATCH 3/7] Update CI scripts Signed-off-by: Serge Panev --- ci/docker/runtime_functions.sh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/ci/docker/runtime_functions.sh b/ci/docker/runtime_functions.sh index 8752856177ea..8e3d4f891662 100755 --- a/ci/docker/runtime_functions.sh +++ b/ci/docker/runtime_functions.sh @@ -553,7 +553,7 @@ build_ubuntu_gpu_tensorrt() { mkdir -p build cd build cmake -DBUILD_SHARED_LIBS=ON -GNinja .. - ninja onnx/onnx.proto + ninja onnx/onnx-ml.proto ninja export LIBRARY_PATH=`pwd`:`pwd`/onnx/:$LIBRARY_PATH export CPLUS_INCLUDE_PATH=`pwd`:$CPLUS_INCLUDE_PATH @@ -573,7 +573,6 @@ build_ubuntu_gpu_tensorrt() { mkdir -p /work/mxnet/lib/ cp 3rdparty/onnx-tensorrt/third_party/onnx/build/*.so /work/mxnet/lib/ - cp -L 3rdparty/onnx-tensorrt/build/libnvonnxparser_runtime.so.0 /work/mxnet/lib/ cp -L 3rdparty/onnx-tensorrt/build/libnvonnxparser.so.0 /work/mxnet/lib/ cd /work/build From deffb00ffbd562b35b4f3d7e7cb8cef2c941f6e6 Mon Sep 17 00:00:00 2001 From: Serge Panev Date: Mon, 27 Jul 2020 00:12:40 -0700 Subject: [PATCH 4/7] Bump TRT to 7 in CI Signed-off-by: Serge Panev --- ci/docker/Dockerfile.build.ubuntu | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/ci/docker/Dockerfile.build.ubuntu b/ci/docker/Dockerfile.build.ubuntu index c9ec3f5a04fc..f196828274ce 100644 --- a/ci/docker/Dockerfile.build.ubuntu +++ b/ci/docker/Dockerfile.build.ubuntu @@ -137,17 +137,27 @@ RUN cd /usr/local && \ # https://docs.docker.com/engine/reference/builder/#understand-how-arg-and-from-interact ARG BASE_IMAGE RUN export SHORT_CUDA_VERSION=${CUDA_VERSION%.*} && \ + wget -O nvidia-ml.deb https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/nvidia-machine-learning-repo-ubuntu1804_1.0.0-1_amd64.deb && \ + dpkg -i nvidia-ml.deb && \ apt-get update && \ if [ ${SHORT_CUDA_VERSION} = 10.0 ]; then \ - apt-get install -y "libnvinfer-dev=5.1.5-1+cuda10.0"; \ + TRT_VERSION="7.0.0-1+cuda10.0"; \ + TRT_MAJOR_VERSION=7; \ elif [ ${SHORT_CUDA_VERSION} = 10.1 ]; then \ - apt-get install -y "libnvinfer-dev=5.1.5-1+cuda10.1"; \ + TRT_VERSION="6.0.1-1+cuda10.1"; \ + TRT_MAJOR_VERSION=6; \ elif [ ${SHORT_CUDA_VERSION} = 10.2 ]; then \ - apt-get install -y "libnvinfer-dev=6.0.1-1+cuda10.2"; \ + TRT_VERSION="7.0.0-1+cuda10.2"; \ + TRT_MAJOR_VERSION=7; \ else \ echo "ERROR: Cuda ${SHORT_CUDA_VERSION} not yet supported in Dockerfile.build.ubuntu"; \ exit 1; \ fi && \ + apt-get install -y libnvinfer${TRT_MAJOR_VERSION}=${TRT_VERSION} \ + libnvinfer-dev=${TRT_VERSION} \ + libnvinfer-plugin${TRT_MAJOR_VERSION}=${TRT_VERSION} \ + libnvinfer-plugin-dev=${TRT_VERSION} && \ + rm nvidia-ml.deb && \ rm -rf /var/lib/apt/lists/* FROM gpu as gpuwithcudaruntimelibs From 57eff5cb0fd389ca3bb13909b7f9a9b1ccdbfd43 Mon Sep 17 00:00:00 2001 From: Serge Panev Date: Wed, 29 Jul 2020 10:55:09 -0700 Subject: [PATCH 5/7] Add Ubuntu CUDA 10.2 to container and update TRT job Signed-off-by: Serge Panev --- ci/docker/Dockerfile.build.ubuntu | 13 +++++++++++-- ci/docker/docker-compose.yml | 10 ++++++++++ ci/docker/runtime_functions.sh | 15 +++++++++------ ci/jenkins/Jenkins_steps.groovy | 2 +- 4 files changed, 31 insertions(+), 9 deletions(-) diff --git a/ci/docker/Dockerfile.build.ubuntu b/ci/docker/Dockerfile.build.ubuntu index f196828274ce..3babb468f2fe 100644 --- a/ci/docker/Dockerfile.build.ubuntu +++ b/ci/docker/Dockerfile.build.ubuntu @@ -50,8 +50,6 @@ RUN export DEBIAN_FRONTEND=noninteractive && \ build-essential \ ninja-build \ git \ - protobuf-compiler \ - libprotobuf-dev \ clang-6.0 \ clang-tidy-6.0 \ python-yaml \ @@ -83,6 +81,8 @@ RUN export DEBIAN_FRONTEND=noninteractive && \ pandoc \ ## Build-dependencies for ccache 3.7.9 autoconf \ + autogen \ + libtool \ gperf \ libb2-dev \ libzstd-dev && \ @@ -110,6 +110,15 @@ COPY install/requirements /work/ RUN python3 -m pip install cmake==3.16.6 && \ python3 -m pip install -r /work/requirements +RUN git clone --recursive -b 3.5.1.1 https://github.com/google/protobuf.git && \ + cd protobuf && \ + ./autogen.sh && \ + ./configure && \ + make -j$(nproc) install && \ + cd .. && \ + rm -rf protobuf && \ + ldconfig + ARG USER_ID=0 COPY install/docker_filepermissions.sh /work/ RUN /work/docker_filepermissions.sh diff --git a/ci/docker/docker-compose.yml b/ci/docker/docker-compose.yml index cced098d7f11..865abc128167 100644 --- a/ci/docker/docker-compose.yml +++ b/ci/docker/docker-compose.yml @@ -108,6 +108,16 @@ services: BASE_IMAGE: nvidia/cuda:10.1-cudnn7-devel-ubuntu18.04 cache_from: - ${DOCKER_CACHE_REGISTRY}/build.ubuntu_gpu_cu101:latest + ubuntu_gpu_cu102: + image: ${DOCKER_CACHE_REGISTRY}/build.ubuntu_gpu_cu102:latest + build: + context: . + dockerfile: Dockerfile.build.ubuntu + target: gpu + args: + BASE_IMAGE: nvidia/cuda:10.2-cudnn7-devel-ubuntu18.04 + cache_from: + - ${DOCKER_CACHE_REGISTRY}/build.ubuntu_gpu_cu102:latest ubuntu_build_cuda: image: ${DOCKER_CACHE_REGISTRY}/build.ubuntu_build_cuda:latest build: diff --git a/ci/docker/runtime_functions.sh b/ci/docker/runtime_functions.sh index 8e3d4f891662..6239223fffa6 100755 --- a/ci/docker/runtime_functions.sh +++ b/ci/docker/runtime_functions.sh @@ -544,6 +544,7 @@ build_ubuntu_gpu_tensorrt() { export CC=gcc-7 export CXX=g++-7 + export ONNX_NAMESPACE=onnx # Build ONNX pushd . @@ -552,22 +553,24 @@ build_ubuntu_gpu_tensorrt() { rm -rf build mkdir -p build cd build - cmake -DBUILD_SHARED_LIBS=ON -GNinja .. - ninja onnx/onnx-ml.proto - ninja + cmake -DCMAKE_CXX_FLAGS=-I/usr/include/python${PYVER} -DBUILD_SHARED_LIBS=ON .. + make -j$(nproc) install + ldconfig export LIBRARY_PATH=`pwd`:`pwd`/onnx/:$LIBRARY_PATH export CPLUS_INCLUDE_PATH=`pwd`:$CPLUS_INCLUDE_PATH + export CXXFLAGS=-I`pwd` + popd # Build ONNX-TensorRT export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/local/lib - export CPLUS_INCLUDE_PATH=${CPLUS_INCLUDE_PATH}:/usr/local/cuda-10.1/targets/x86_64-linux/include/ + export CPLUS_INCLUDE_PATH=${CPLUS_INCLUDE_PATH}:/usr/local/cuda-10.2/targets/x86_64-linux/include/ pushd . cd 3rdparty/onnx-tensorrt/ mkdir -p build cd build - cmake .. - make -j$(nproc) + cmake -DONNX_NAMESPACE=$ONNX_NAMESPACE .. + make -j$(nproc) install export LIBRARY_PATH=`pwd`:$LIBRARY_PATH popd diff --git a/ci/jenkins/Jenkins_steps.groovy b/ci/jenkins/Jenkins_steps.groovy index 8079420dd794..e2b0b04dea41 100644 --- a/ci/jenkins/Jenkins_steps.groovy +++ b/ci/jenkins/Jenkins_steps.groovy @@ -278,7 +278,7 @@ def compile_unix_tensorrt_gpu(lib_name) { ws('workspace/build-tensorrt') { timeout(time: max_time, unit: 'MINUTES') { utils.init_git() - utils.docker_run('ubuntu_gpu_cu101', 'build_ubuntu_gpu_tensorrt', false) + utils.docker_run('ubuntu_gpu_cu102', 'build_ubuntu_gpu_tensorrt', false) utils.pack_lib(lib_name, mx_tensorrt_lib) } } From 8ac1b9586a7de092c9b5a8ad35388df432685414 Mon Sep 17 00:00:00 2001 From: Serge Panev Date: Thu, 30 Jul 2020 01:22:39 -0700 Subject: [PATCH 6/7] Fix CI script Signed-off-by: Serge Panev --- ci/docker/runtime_functions.sh | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/ci/docker/runtime_functions.sh b/ci/docker/runtime_functions.sh index 6239223fffa6..5fb30279ea8a 100755 --- a/ci/docker/runtime_functions.sh +++ b/ci/docker/runtime_functions.sh @@ -554,8 +554,7 @@ build_ubuntu_gpu_tensorrt() { mkdir -p build cd build cmake -DCMAKE_CXX_FLAGS=-I/usr/include/python${PYVER} -DBUILD_SHARED_LIBS=ON .. - make -j$(nproc) install - ldconfig + make -j$(nproc) export LIBRARY_PATH=`pwd`:`pwd`/onnx/:$LIBRARY_PATH export CPLUS_INCLUDE_PATH=`pwd`:$CPLUS_INCLUDE_PATH export CXXFLAGS=-I`pwd` @@ -570,13 +569,13 @@ build_ubuntu_gpu_tensorrt() { mkdir -p build cd build cmake -DONNX_NAMESPACE=$ONNX_NAMESPACE .. - make -j$(nproc) install + make -j$(nproc) export LIBRARY_PATH=`pwd`:$LIBRARY_PATH popd mkdir -p /work/mxnet/lib/ cp 3rdparty/onnx-tensorrt/third_party/onnx/build/*.so /work/mxnet/lib/ - cp -L 3rdparty/onnx-tensorrt/build/libnvonnxparser.so.0 /work/mxnet/lib/ + cp -L 3rdparty/onnx-tensorrt/build/libnvonnxparser.so /work/mxnet/lib/ cd /work/build cmake -DUSE_CUDA=1 \ From 3bcb3884d9a31259e5eb19de8486220b6535c71e Mon Sep 17 00:00:00 2001 From: Serge Panev Date: Mon, 3 Aug 2020 13:14:33 -0700 Subject: [PATCH 7/7] Revert useless changes Signed-off-by: Serge Panev --- ci/docker/Dockerfile.build.ubuntu | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) diff --git a/ci/docker/Dockerfile.build.ubuntu b/ci/docker/Dockerfile.build.ubuntu index 3babb468f2fe..4ac3f9149ea7 100644 --- a/ci/docker/Dockerfile.build.ubuntu +++ b/ci/docker/Dockerfile.build.ubuntu @@ -50,6 +50,8 @@ RUN export DEBIAN_FRONTEND=noninteractive && \ build-essential \ ninja-build \ git \ + protobuf-compiler \ + libprotobuf-dev \ clang-6.0 \ clang-tidy-6.0 \ python-yaml \ @@ -81,8 +83,6 @@ RUN export DEBIAN_FRONTEND=noninteractive && \ pandoc \ ## Build-dependencies for ccache 3.7.9 autoconf \ - autogen \ - libtool \ gperf \ libb2-dev \ libzstd-dev && \ @@ -110,15 +110,6 @@ COPY install/requirements /work/ RUN python3 -m pip install cmake==3.16.6 && \ python3 -m pip install -r /work/requirements -RUN git clone --recursive -b 3.5.1.1 https://github.com/google/protobuf.git && \ - cd protobuf && \ - ./autogen.sh && \ - ./configure && \ - make -j$(nproc) install && \ - cd .. && \ - rm -rf protobuf && \ - ldconfig - ARG USER_ID=0 COPY install/docker_filepermissions.sh /work/ RUN /work/docker_filepermissions.sh @@ -146,8 +137,6 @@ RUN cd /usr/local && \ # https://docs.docker.com/engine/reference/builder/#understand-how-arg-and-from-interact ARG BASE_IMAGE RUN export SHORT_CUDA_VERSION=${CUDA_VERSION%.*} && \ - wget -O nvidia-ml.deb https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/nvidia-machine-learning-repo-ubuntu1804_1.0.0-1_amd64.deb && \ - dpkg -i nvidia-ml.deb && \ apt-get update && \ if [ ${SHORT_CUDA_VERSION} = 10.0 ]; then \ TRT_VERSION="7.0.0-1+cuda10.0"; \ @@ -166,7 +155,6 @@ RUN export SHORT_CUDA_VERSION=${CUDA_VERSION%.*} && \ libnvinfer-dev=${TRT_VERSION} \ libnvinfer-plugin${TRT_MAJOR_VERSION}=${TRT_VERSION} \ libnvinfer-plugin-dev=${TRT_VERSION} && \ - rm nvidia-ml.deb && \ rm -rf /var/lib/apt/lists/* FROM gpu as gpuwithcudaruntimelibs