Cpp DenseNet Tensorrt CMake工程
Python版本导引
Cpp OpenVINO版本导引
- Cpp DenseNet OpenVino导出
- Cpp DenseNet OpenVino测试
- Cpp DenseNet OpenVino环境配置
- Cpp DenseNet OpenVino CMake工程
- Cpp DenseNet OpenVino辅助函数
- Cpp DenseNet OpenVino部署主体
CMake示例
相对于OpenVINO来说,Nvidia的各种包的链接方式就会多一些,Nv的包组织方式更接近于纯C开发,需要手动指定Include
, lib
等路径,进行绝对值链接
注意由于需要手动分配内存,所以需要指定Cuda运行时的lib库
cmake_minimum_required(VERSION 3.14)
project(tensorrt-gpu-win-msvc2019 LANGUAGES CXX)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
# opencv
set(OpenCV_DIR "C:/Program Files/opencv460/install/vs2022/x64/vc17/lib")
find_package(OpenCV)
# tensorrt
set(Tensorrt_DIR "C:/Program Files (x86)/NVIDIA Corporation/TensorRT-101")
set(Tensorrt_INCLUDE_DIRS ${Tensorrt_DIR}/include)
set(Tensorrt_LIB_DIRS ${Tensorrt_DIR}/lib)
set(Tensorrt_LIBS
${Tensorrt_LIB_DIRS}/nvinfer_10.lib
${Tensorrt_LIB_DIRS}/nvinfer_plugin_10.lib
)
# cuda 11.8
set(libcudacxx_BASE "C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.8")
set(libcudacxx_DIR "${libcudacxx_BASE}/lib/cmake/libcudacxx")
find_package(libcudacxx)
set(CUDA_LIBS
"${libcudacxx_BASE}/lib/x64/cudart.lib"
)
# qt6 package
find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Core)
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Core)
add_executable(tensorrt-gpu-win-msvc2019
main.cpp
Network/NetworkTools.h Network/NetworkTools.cpp
Network/DenseGradeWrapper.h Network/DenseGradeWrapper.cpp
Network/NvLogger.h Network/NvLogger.cpp
)
target_include_directories(tensorrt-gpu-win-msvc2019
PRIVATE
${OpenCV_INCLUDE_DIRS}
${Tensorrt_INCLUDE_DIRS}
.
)
target_link_libraries(tensorrt-gpu-win-msvc2019
Qt${QT_VERSION_MAJOR}::Core
libcudacxx::libcudacxx
${CUDA_LIBS}
${OpenCV_LIBS}
${Tensorrt_LIBS}
)
include(GNUInstallDirs)
install(TARGETS tensorrt-gpu-win-msvc2019
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)