• Hardware Platform (Jetson / GPU) : Jetson Orin NX 16GB
• DeepStream Version : 6.2
• JetPack Version (valid for Jetson only) : 5.1.1 [L4T 35.3.1]
• TensorRT Version : 5.1.1 ( jtop )
• NVIDIA GPU Driver Version (valid for GPU only) : 5.10.104-tegra
I referenced <NvInfer.h> in my C++ program and created the corresponding context:
// infer initialized
IRuntime* runtime = createInferRuntime(logger);
std::string engine_file_path = "./models/model_trt.trt";
std::ifstream engine_file(engine_file_path, std::ios::binary);
engine_file.seekg(0, std::ios::end);
const size_t engine_size = engine_file.tellg();
engine_file.seekg(0, std::ios::beg);
std::vector<char> engine_data(engine_size);
engine_file.read(engine_data.data(), engine_size);
engine_file.close();
const char* modelData = engine_data.data();
size_t modelSize = engine_data.size();
ICudaEngine* engine = runtime->deserializeCudaEngine(modelData, modelSize);
IExecutionContext *context = engine->createExecutionContext();
The CMakeLists.txt
:
cmake_minimum_required(VERSION 3.5)
project(rtsp-streams)
find_package(OpenCV REQUIRED)
find_package(CUDA REQUIRED)
find_package(TensorRT REQUIRED)
find_package(ONNX REQUIRED)
# Add executable
add_executable(rtsp-streams main.cpp)
# Link libraries
target_link_libraries(rtsp-streams ${OpenCV_LIBS} ${CUDA_LIBRARIES} ${TensorRT_LIBRARIES} ${ONNX_LIBRARIES} pthread)
# Include directories
target_include_directories(rtsp-streams PRIVATE ${OpenCV_INCLUDE_DIRS} ${CUDA_INCLUDE_DIRS} ${TensorRT_INCLUDE_DIRS} ${ONNX_INCLUDE_DIRS})
Then, build this:
mkdir build
cd build
cmake ..
make
And then, the output:
(rgzy) root@rgzy:/rg/gst-cv-1/build# cmake ..
-- Found CUDA: /usr/local/cuda (found suitable exact version "11.4")
-- Found CUDA: /usr/local/cuda (found version "11.4")
CMake Error at CMakeLists.txt:6 (find_package):
By not providing "FindTensorRT.cmake" in CMAKE_MODULE_PATH this project has
asked CMake to find a package configuration file provided by "TensorRT",
but CMake did not find one.
Could not find a package configuration file provided by "TensorRT" with any
of the following names:
TensorRTConfig.cmake
tensorrt-config.cmake
Add the installation prefix of "TensorRT" to CMAKE_PREFIX_PATH or set
"TensorRT_DIR" to a directory containing one of the above files. If
"TensorRT" provides a separate development package or SDK, be sure it has
been installed.
-- Configuring incomplete, errors occurred!
See also "/rg/gst-cv-1/build/CMakeFiles/CMakeOutput.log".
See also "/rg/gst-cv-1/build/CMakeFiles/CMakeError.log".
And I tried to use sudo find / -name TensorRTConfig.cmake
and sudo find / -name tensorrt-config.cmake
to find the TensorRTConfig.cmake
and tensorrt-config.cmake
, and did not find.
The output of dpkg -l | grep TensorRT
:
(rgzy5) root@rgzy:/rg/gst-cv-1# dpkg -l | grep TensorRT
ii graphsurgeon-tf 8.5.2-1+cuda11.4 arm64 GraphSurgeon for TensorRT package
ii libnvinfer-bin 8.5.2-1+cuda11.4 arm64 TensorRT binaries
ii libnvinfer-dev 8.5.2-1+cuda11.4 arm64 TensorRT development libraries and headers
ii libnvinfer-plugin-dev 8.5.2-1+cuda11.4 arm64 TensorRT plugin libraries
ii libnvinfer-plugin8 8.5.2-1+cuda11.4 arm64 TensorRT plugin libraries
ii libnvinfer-samples 8.5.2-1+cuda11.4 all TensorRT samples
ii libnvinfer8 8.5.2-1+cuda11.4 arm64 TensorRT runtime libraries
ii libnvonnxparsers-dev 8.5.2-1+cuda11.4 arm64 TensorRT ONNX libraries
ii libnvonnxparsers8 8.5.2-1+cuda11.4 arm64 TensorRT ONNX libraries
ii libnvparsers-dev 8.5.2-1+cuda11.4 arm64 TensorRT parsers libraries
ii libnvparsers8 8.5.2-1+cuda11.4 arm64 TensorRT parsers libraries
ii nvidia-tensorrt 5.1.1-b56 arm64 NVIDIA TensorRT Meta Package
ii nvidia-tensorrt-dev 5.1.1-b56 arm64 NVIDIA TensorRT dev Meta Package
ii onnx-graphsurgeon 8.5.2-1+cuda11.4 arm64 ONNX GraphSurgeon for TensorRT package
ii python3-libnvinfer 8.5.2-1+cuda11.4 arm64 Python 3 bindings for TensorRT
ii python3-libnvinfer-dev 8.5.2-1+cuda11.4 arm64 Python 3 development package for TensorRT
ii tensorrt 8.5.2.2-1+cuda11.4 arm64 Meta package for TensorRT
ii uff-converter-tf 8.5.2-1+cuda11.4 arm64 UFF converter for TensorRT package
-
graphsurgeon-tf
,libnvinfer-bin
,libnvinfer-dev
, … is in the/usr/share/doc/
- Why are there two tensorrt versions (8.5.2-1 and 5.1.1-b56,
jtop
command also is the 5.1.1)?
There is no lib in /usr/src/tensorrt
:
(rgzy5) root@rgzy:/usr/src/tensorrt# ls
bin data samples
The output of find / -name libnvinfer.so
is
(rgzy5) root@rgzy:/usr/src/tensorrt# find / -name libnvinfer.so
/usr/lib/aarch64-linux-gnu/libnvinfer.so