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

Chore trt 10 #1572

Open
wants to merge 5 commits into
base: master
Choose a base branch
from
Open
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
22 changes: 7 additions & 15 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1060,19 +1060,19 @@ if (USE_TENSORRT)
set(TENSORRT_INC_DIR /usr/include/x86_64-linux-gnu)
endif()

if (NOT EXISTS "${TRTTESTDIR}/libnvinfer.so.8")
message(FATAL_ERROR "Could not find TensorRT ${TRTTESTDIR}/libnvinfer.so.8, please provide tensorRT location as TENSORRT_DIR or (TENSORRT_LIB_DIR _and_ TENSORRT_INC_DIR)")
if (NOT EXISTS "${TRTTESTDIR}/libnvinfer.so.10")
message(FATAL_ERROR "Could not find TensorRT ${TRTTESTDIR}/libnvinfer.so.10, please provide tensorRT location as TENSORRT_DIR or (TENSORRT_LIB_DIR _and_ TENSORRT_INC_DIR)")
else()
message(STATUS "Found TensorRT libraries : ${TRTTESTDIR}/libnvinfer.so.8")
message(STATUS "Found TensorRT libraries : ${TRTTESTDIR}/libnvinfer.so.10")
endif()

set(TENSORRT_LIB_DIR ${CMAKE_BINARY_DIR}/tensorrt-oss/bin/ ${TENSORRT_LIB_DIR})
set(TENSORRT_LIBS nvinfer nvcaffeparser nvinfer_plugin nvonnxparser )
set(TENSORRT_LIBS nvinfer nvinfer_plugin nvonnxparser )

if (NOT TENSORRT_VERSION)
if (EXISTS "${TRTTESTDIR}/libnvinfer.so.8")
set(TENSORRT_VERSION v8.6.1)
message(STATUS "Found TensorRT libraries version 8")
if (EXISTS "${TRTTESTDIR}/libnvinfer.so.10")
set(TENSORRT_VERSION v10.5.0)
message(STATUS "Found TensorRT libraries version 10")
else()
message(FATAL_ERROR "No supported TensorRT version found")
endif()
Expand All @@ -1090,13 +1090,6 @@ if (USE_TENSORRT)
list(APPEND TRT_FLAGS -DCMAKE_C_COMPILER=/usr/bin/cc)
endif()

set(TRT_PATCHES_PATH ${CMAKE_BINARY_DIR}/patches/trt)
set(TRT_PATCHES
${TRT_PATCHES_PATH}/0003-c++14.patch
${TRT_PATCHES_PATH}/0009-fix_compil_order.patch
${TRT_PATCHES_PATH}/0011-fix_plugin_makefile_cub.patch
)

# Tensorrt uses its own protobuf version (3.0.0) and this cannot be overrided
# At best we can set the version it will internally build
set(TENSORRT_COMPLETE ${CMAKE_BINARY_DIR}/CMakeFiles/tensorrt-oss-complete)
Expand All @@ -1107,7 +1100,6 @@ if (USE_TENSORRT)
GIT_TAG ${TENSORRT_VERSION}
GIT_CONFIG advice.detachedHead=false
UPDATE_DISCONNECTED 1
PATCH_COMMAND sh ${CMAKE_SOURCE_DIR}/cmake/patch_external.sh TENSORRT ${CMAKE_BINARY_DIR}/tensorrt-oss/src/tensorrt-oss-stamp tensorrt-oss-download tensorrt-oss-patch ${CMAKE_BINARY_DIR}/tensorrt-oss/src/tensorrt-oss ${TRT_PATCHES}
CONFIGURE_COMMAND ""
BUILD_COMMAND sh ${CMAKE_SOURCE_DIR}/cmake/build_external.sh TENSORRT ${CMAKE_BINARY_DIR}/tensorrt-oss ${TENSORRT_COMPLETE} src/tensorrt-oss src/tensorrt-oss-build ${N} all ${CMAKE_COMMAND} ${TRT_FLAGS}
INSTALL_COMMAND ""
Expand Down
8 changes: 4 additions & 4 deletions build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -131,11 +131,11 @@ show_interactive_platform_selector() {
if [[ ${BUILD_OPENCV} == "ON" ]]; then
echo "Opencv will be built from source"
# Build OpenCV 4 with CUDA
DEEPDETECT_OPENCV4_BUILD_PATH="$(git rev-parse --show-toplevel)/build/opencv/opencv-4.7.0/build"
DEEPDETECT_OPENCV4_BUILD_PATH="$(git rev-parse --show-toplevel)/build/opencv/opencv-4.10.0/build"
if [ ! -d opencv ]; then
echo "Downloading opencv"
mkdir opencv && cd opencv && wget -O opencv.zip https://github.com/opencv/opencv/archive/refs/tags/4.7.0.zip && wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/refs/tags/4.7.0.zip && unzip opencv.zip && unzip opencv_contrib.zip
cd "opencv-4.7.0" && mkdir build && cd build
mkdir opencv && cd opencv && wget -O opencv.zip https://github.com/opencv/opencv/archive/refs/tags/4.10.0.zip && wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/refs/tags/4.10.0.zip && unzip opencv.zip && unzip opencv_contrib.zip
cd "opencv-4.10.0" && mkdir build && cd build
else
cd $DEEPDETECT_OPENCV4_BUILD_PATH
fi
Expand All @@ -162,7 +162,7 @@ cmake -D CMAKE_BUILD_TYPE=DEBUG \
-D OPENCV_ENABLE_NONFREE=ON \
-D BUILD_opencv_python2=OFF \
-D BUILD_opencv_python3=OFF \
-D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-4.7.0/modules \
-D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-4.10.0/modules \
-D INSTALL_PYTHON_EXAMPLES=OFF \
-D INSTALL_C_EXAMPLES=OFF \
-D BUILD_EXAMPLES=OFF \
Expand Down
20 changes: 8 additions & 12 deletions ci/devel-trt.Dockerfile
Original file line number Diff line number Diff line change
@@ -1,19 +1,15 @@
# syntax = docker/dockerfile:1.0-experimental

ARG DD_UBUNTU_VERSION=22.04
ARG DD_CUDA_VERSION=12.1
ARG DD_CUDNN_VERSION=8
ARG DD_TENSORRT_VERSION=8.6.1+cuda12.1
ARG DD_CUDA_VERSION=12.6
ARG DD_CUDNN_VERSION=9.5
ARG DD_TENSORRT_VERSION=10.5.0+cuda12.6

# FROM nvidia/cuda:${DD_CUDA_VERSION}-cudnn${DD_CUDNN_VERSION}-devel-ubuntu${DD_UBUNTU_VERSION}
FROM nvcr.io/nvidia/tensorrt:23.05-py3 AS build
FROM nvcr.io/nvidia/tensorrt:24.10-py3 AS build

ARG DD_UBUNTU_VERSION
ARG DD_CUDA_VERSION
ARG DD_CUDNN_VERSION
ARG DD_TENSORRT_VERSION

RUN echo UBUNTU_VERSION=${DD_UBUNTU_VERSION} >> /image-info
RUN echo CUDA_VERSION=${DD_CUDA_VERSION} >> /image-info
RUN echo CUDNN_VERSION=${DD_CUDNN_VERSION} >> /image-info
RUN echo TENSORRT_VERSION=${DD_TENSORRT_VERSION} >> /image-info
Expand Down Expand Up @@ -94,8 +90,8 @@ RUN wget http://www.deepdetect.com/stuff/Video_Codec_SDK_11.1.5.zip && unzip Vid
RUN cd Video_Codec_SDK_11.1.5 && cp Interface/* /usr/local/cuda/targets/x86_64-linux/include/ && cp Lib/linux/stubs/x86_64/* /usr/local/cuda/targets/x86_64-linux/lib/stubs/

# Build OpenCV 4 with CUDA
RUN mkdir opencv && cd opencv && wget -O opencv.zip https://github.com/opencv/opencv/archive/refs/tags/4.7.0.zip && wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/refs/tags/4.7.0.zip && unzip opencv.zip && unzip opencv_contrib.zip
RUN cd /tmp/opencv/opencv-4.7.0 && mkdir build && cd build && cmake -D CMAKE_BUILD_TYPE=RELEASE \
RUN mkdir opencv && cd opencv && wget -O opencv.zip https://github.com/opencv/opencv/archive/refs/tags/4.10.0.zip && wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/refs/tags/4.10.0.zip && unzip opencv.zip && unzip opencv_contrib.zip
RUN cd /tmp/opencv/opencv-4.10.0 && mkdir build && cd build && cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local/ \
-D CMAKE_LIBRARY_PATH=/usr/local/cuda/lib64/stubs \
-D CMAKE_CXX_FLAGS="-Wl,--allow-shlib-undefined" \
Expand All @@ -118,12 +114,12 @@ RUN cd /tmp/opencv/opencv-4.7.0 && mkdir build && cd build && cmake -D CMAKE_BUI
-D OPENCV_ENABLE_NONFREE=ON \
-D BUILD_opencv_python2=OFF \
-D BUILD_opencv_python3=OFF \
-D OPENCV_EXTRA_MODULES_PATH=/tmp/opencv/opencv_contrib-4.7.0/modules \
-D OPENCV_EXTRA_MODULES_PATH=/tmp/opencv/opencv_contrib-4.10.0/modules \
-D INSTALL_PYTHON_EXAMPLES=OFF \
-D INSTALL_C_EXAMPLES=OFF \
-D BUILD_EXAMPLES=OFF ..

WORKDIR /tmp/opencv/opencv-4.7.0/build
WORKDIR /tmp/opencv/opencv-4.10.0/build
RUN make -j20
RUN make install

Expand Down
4 changes: 2 additions & 2 deletions docker/gpu_tensorrt.Dockerfile
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# syntax = docker/dockerfile:1.0-experimental
FROM nvcr.io/nvidia/tensorrt:23.05-py3 AS build
FROM nvcr.io/nvidia/tensorrt:24.10-py3 AS build

ARG DEEPDETECT_RELEASE=OFF
ARG DEEPDETECT_ARCH=gpu
Expand Down Expand Up @@ -144,7 +144,7 @@ RUN --mount=type=cache,target=/ccache/ mkdir build && cd build && ../build.sh
RUN ./docker/get_libs.sh

# Build final Docker image
FROM nvcr.io/nvidia/tensorrt:23.05-py3 AS runtime
FROM nvcr.io/nvidia/tensorrt:24.10-py3 AS runtime

ARG DEEPDETECT_ARCH=gpu
ARG DEEPDETECT_CUDA_VERSION=12.1
Expand Down
2 changes: 1 addition & 1 deletion src/backends/tensorrt/tensorrtinputconns.cc
Original file line number Diff line number Diff line change
Expand Up @@ -263,7 +263,7 @@ namespace dd
cv::Mat img = this->_images.at(_batch_index);
CVMatToRTBuffer(img, 0, i);

if (!_masks_cuda.empty())
if (!_masks.empty())
{
cv::Mat &mask = _masks.at(_batch_index);
if (_mask_num_channels == 3)
Expand Down
Loading