提交 33b27be8 编写于 作者: M Megvii Engine Team

fix(mgb/build): fix trt8 build error

GitOrigin-RevId: 14acc064e0956cd3d18e50ced2f662455986792c
上级 bccda5c4
......@@ -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,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()
......
......@@ -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}
......
......@@ -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 .
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册