Browse Source

fix(mgb/build): fix trt8 build error

GitOrigin-RevId: 14acc064e0
release-1.11
Megvii Engine Team 2 years ago
parent
commit
33b27be8fc
4 changed files with 38 additions and 9 deletions
  1. +1
    -2
      CMakeLists.txt
  2. +36
    -2
      cmake/tensorrt.cmake
  3. +0
    -2
      scripts/cmake-build/host_build.sh
  4. +1
    -3
      scripts/whl/manylinux2014/Dockerfile

+ 1
- 2
CMakeLists.txt View File

@@ -814,8 +814,7 @@ if(MGE_WITH_CUDA)
list(APPEND MGE_CUDA_LIBS ${TRT_LIBRARY} ${TRT_PLUGIN_LIBRARY})
else()
if(TensorRT_VERSION_MAJOR GREATER_EQUAL 8)
list(APPEND MGE_CUDA_LIBS -Wl,--whole-archive libnvinfer.so
libnvinfer_plugin.so -Wl,--no-whole-archive)
list(APPEND MGE_CUDA_LIBS libnvinfer libnvinfer_plugin)
else()
list(APPEND MGE_CUDA_LIBS -Wl,--whole-archive libnvinfer libnvinfer_plugin
-Wl,--no-whole-archive)


+ 36
- 2
cmake/tensorrt.cmake View File

@@ -36,7 +36,6 @@ else()
PATH_SUFFIXES lib lib64
DOC "TRT plugin library.")
endif()
message(STATUS "TRT_LIBRARY: ${TRT_LIBRARY}")
if(TRT_LIBRARY STREQUAL "TRT_LIBRARY-NOTFOUND")
message(
FATAL_ERROR
@@ -102,7 +101,42 @@ string(REGEX REPLACE "^#define NV_TENSORRT_PATCH ([0-9]+).*$" "\\1"
set(TRT_VERSION_STRING
"${TensorRT_VERSION_MAJOR}.${TensorRT_VERSION_MINOR}.${TensorRT_VERSION_PATCH}")

if(MGE_CUDA_USE_STATIC)
if(TensorRT_VERSION_MAJOR GREATER_EQUAL 8 AND NOT (MSVC OR WIN32))
set(TRT_LIBRARY "TRT_LIBRARY-NOTFOUND")
set(TRT_PLUGIN_LIBRARY "TRT_PLUGIN_LIBRARY-NOTFOUND")
find_library(
TRT_LIBRARY
NAMES libnvinfer.so nvinfer
PATHS ${ALTER_LD_LIBRARY_PATHS} ${TRT_ROOT_DIR} ${CMAKE_INSTALL_PREFIX}
HINTS ${ALTER_LIBRARY_PATHS}
PATH_SUFFIXES lib lib64
DOC "TRT library.")
find_library(
TRT_PLUGIN_LIBRARY
NAMES libnvinfer_plugin.so nvinfer_plugin
PATHS ${ALTER_LD_LIBRARY_PATHS} ${TRT_ROOT_DIR} ${CMAKE_INSTALL_PREFIX}
HINTS ${ALTER_LIBRARY_PATHS}
PATH_SUFFIXES lib lib64
DOC "TRT plugin library.")
message(STATUS "TensorRT8 has been changed to dynamic linking")
if(TRT_LIBRARY STREQUAL "TRT_LIBRARY-NOTFOUND")
message(
FATAL_ERROR
"Can not find TensorRT Library, please refer to scripts/cmake-build/BUILD_README.md to init TRT env"
)
endif()
if(TRT_PLUGIN_LIBRARY STREQUAL "TRT_PLUGIN_LIBRARY-NOTFOUND")
message(
FATAL_ERROR
"Can not find TensorRT Plugin Library, please refer to scripts/cmake-build/BUILD_README.md to init TRT env"
)
endif()
endif()

message(STATUS "TRT_LIBRARY: ${TRT_LIBRARY}")

if(MGE_CUDA_USE_STATIC AND NOT (TensorRT_VERSION_MAJOR GREATER_EQUAL 8
AND NOT (MSVC OR WIN32)))
add_library(libnvinfer STATIC IMPORTED)
add_library(libnvinfer_plugin STATIC IMPORTED)
else()


+ 0
- 2
scripts/cmake-build/host_build.sh View File

@@ -235,8 +235,6 @@ function prepare_env_for_windows_build() {
export CUDA_BIN_PATH=$CUDA_PATH
export PC_CUDNN_INCLUDE_DIRS=$NIVIDA_INSTALL_PRE/${CUDNN_V}/cuda/include
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$NIVIDA_INSTALL_PRE/${TRT_V}/lib:$NIVIDA_INSTALL_PRE/CUDA/${CUDA_V}/lib/x64:$NIVIDA_INSTALL_PRE/${CUDNN_V}/cuda/lib/x64
export CPATH=$CPATH:$NIVIDA_INSTALL_PRE/${TRT_V}/include:$NIVIDA_INSTALL_PRE/CUDA/${CUDA_V}/include:$NIVIDA_INSTALL_PRE/CUDA/${CUDA_V}/include/nvtx3:$PC_CUDNN_INCLUDE_DIRS
export LIBRARY_PATH=$LIBRARY_PATH:$LD_LIBRARY_PATH
export INCLUDE=$INCLUDE:$CPATH
export CUDNN_ROOT_DIR=${NIVIDA_INSTALL_PRE}/${CUDNN_V}/cuda
export TRT_ROOT_DIR=${NIVIDA_INSTALL_PRE}/${TRT_V}


+ 1
- 3
scripts/whl/manylinux2014/Dockerfile View File

@@ -2,9 +2,7 @@ FROM quay.io/pypa/manylinux2014_x86_64:2020-12-31-56195b3

ENV UID=1024 \
PATH=${PATH}:/usr/local/cuda/bin \
LIBRARY_PATH=${LIBRARY_PATH}:/usr/local/cuda/lib64:/usr/local/cuda/lib64/stubs:/opt/cudnn/lib64:/opt/tensorrt/lib \
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/local/cuda/lib64:/usr/local/cuda/lib64/stubs:/opt/cudnn/lib64:/opt/tensorrt/lib \
CPATH=${CPATH}:/usr/local/cuda/include:/opt/cudnn/include:/opt/tensorrt/include
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/local/cuda/lib64:/usr/local/cuda/lib64/stubs:/opt/cudnn/lib64:/opt/tensorrt/lib

ARG platform
COPY setup_mirror.sh .


Loading…
Cancel
Save