Initial setup for CLion
This commit is contained in:
50
engines/TensorRTAPI/include/engine/TRTCompat.h
Normal file
50
engines/TensorRTAPI/include/engine/TRTCompat.h
Normal file
@@ -0,0 +1,50 @@
|
||||
#pragma once
|
||||
// ============================================================================
|
||||
// TRTCompat.h -- TensorRT version compatibility macros
|
||||
//
|
||||
// Centralises all TRT-version-dependent API differences so that the rest of
|
||||
// the codebase can be compiled against TRT 8.x or TRT 10.x without scattering
|
||||
// #if blocks everywhere.
|
||||
//
|
||||
// Build 1: CUDA 11.8 + cuDNN 8 + TensorRT 8.6 + OpenCV 4.10 (SM 35-86)
|
||||
// Build 2: CUDA 13.1 + cuDNN 9 + TensorRT 10 + OpenCV 4.13 (SM 75-121)
|
||||
// ============================================================================
|
||||
|
||||
#include <NvInferVersion.h>
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
// Network creation
|
||||
// ---------------------------------------------------------------------------
|
||||
// TRT 10+: kEXPLICIT_BATCH was removed (it is the only mode).
|
||||
// TRT 8.x: The flag must be passed explicitly.
|
||||
#if NV_TENSORRT_MAJOR >= 10
|
||||
#define TRT_CREATE_NETWORK(builder) \
|
||||
(builder)->createNetworkV2(0)
|
||||
#else
|
||||
#define TRT_CREATE_NETWORK(builder) \
|
||||
(builder)->createNetworkV2( \
|
||||
1U << static_cast<uint32_t>( \
|
||||
nvinfer1::NetworkDefinitionCreationFlag::kEXPLICIT_BATCH))
|
||||
#endif
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
// Inference execution
|
||||
// ---------------------------------------------------------------------------
|
||||
// TRT 10+: enqueueV3(stream) — uses tensor addresses pre-bound via
|
||||
// setTensorAddress().
|
||||
// TRT 8.x: enqueueV2(bindings, stream, nullptr) — uses a void** array
|
||||
// indexed by binding position.
|
||||
#if NV_TENSORRT_MAJOR >= 10
|
||||
#define TRT_ENQUEUE(context, stream, buffers) \
|
||||
(context)->enqueueV3(stream)
|
||||
#else
|
||||
#define TRT_ENQUEUE(context, stream, buffers) \
|
||||
(context)->enqueueV2( \
|
||||
reinterpret_cast<void**>((buffers).data()), (stream), nullptr)
|
||||
#endif
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
// Feature-detection helpers
|
||||
// ---------------------------------------------------------------------------
|
||||
#define TRT_HAS_ENQUEUE_V3 (NV_TENSORRT_MAJOR >= 10)
|
||||
#define TRT_HAS_EXPLICIT_BATCH_FLAG (NV_TENSORRT_MAJOR < 10)
|
||||
Reference in New Issue
Block a user