Skip to content

Commit 1c32b5a

Browse files
committed
fix(core/inference): Resolve noexcept conflicts and add TensorRT version compatibilit
1. C++ noexcept specification fixes: - Align base/derived class noexcept declarations - Explicitly mark overriding methods with noexcept override - Address "looser throw specifier" compiler errors 2. TensorRT plugin version compatibility: - Implement conditional compilation via NV_TENSORRT_MAJOR checks - Add version detection header: #include <NvInferVersion.h> - Maintain separate implementation paths: * TRT7: Legacy API workflow * TRT8: Modern API adaptation
1 parent ac418d2 commit 1c32b5a

34 files changed

+1889
-42
lines changed

modules/perception/camera/lib/obstacle/detector/bev_detection/BUILD

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,10 @@ cc_library(
2626
"@eigen",
2727
"@opencv//:core",
2828
"@opencv//:highgui",
29-
"@paddleinference//:paddleinference_lib",
30-
],
29+
]+ select({
30+
"@platforms//cpu:x86_64": ["@paddleinference-x86_64//:paddleinference_lib"],
31+
"@platforms//cpu:aarch64": ["@paddleinference-aarch64//:paddleinference_lib"],
32+
}),
3133
)
3234

3335
cpplint()

modules/perception/camera/lib/obstacle/detector/caddn/BUILD

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,18 @@ cc_library(
2222
"//modules/perception/inference:inference_lib",
2323
"//modules/perception/inference/utils:inference_resize_lib",
2424
"//modules/perception/inference/utils:inference_util_lib",
25-
"@paddleinference//:paddleinference_lib",
26-
"@caddn_infer_op//:caddn_infer_op",
2725
"@eigen",
2826
"@opencv//:imgcodecs",
2927
"@opencv//:imgproc",
3028
"@opencv//:highgui",
3129
"@local_config_cuda//cuda:cudart",
32-
],
30+
]+ select({
31+
"@platforms//cpu:x86_64": ["@paddleinference-x86_64//:paddleinference_lib"],
32+
"@platforms//cpu:aarch64": ["@paddleinference-aarch64//:paddleinference_lib"],
33+
})+ select({
34+
"@platforms//cpu:x86_64": ["@caddn_infer_op-x86_64//:caddn_infer_op"],
35+
"@platforms//cpu:aarch64": ["@caddn_infer_op-aarch64//:caddn_infer_op"],
36+
}),
3337
)
3438

3539
cpplint()

modules/perception/inference/onnx/onnx_obstacle_detector.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ class Logger : public nvinfer1::ILogger {
4242
explicit Logger(Severity severity = Severity::kWARNING)
4343
: reportable_severity(severity) {}
4444

45-
void log(Severity severity, const char* msg) override {
45+
void log(Severity severity, const char* msg)noexcept override {
4646
// suppress messages with severity enum value greater than the reportable
4747
if (severity > reportable_severity) return;
4848

modules/perception/inference/paddlepaddle/BUILD

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,10 @@ cc_library(
99
hdrs = ["paddle_net.h"],
1010
deps = [
1111
"//modules/perception/inference:inference_lib",
12-
"@paddleinference//:paddleinference_lib",
13-
],
12+
]+ select({
13+
"@platforms//cpu:x86_64": ["@paddleinference-x86_64//:paddleinference_lib"],
14+
"@platforms//cpu:aarch64": ["@paddleinference-aarch64//:paddleinference_lib"],
15+
}),
1416
)
1517

1618
cpplint()

modules/perception/inference/tensorrt/BUILD

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@ package(default_visibility = ["//visibility:public"])
66
cc_library(
77
name = "rt_common",
88
srcs = ["rt_common.cc"],
9-
hdrs = ["rt_common.h"],
9+
hdrs = ["rt_common.h",
10+
"rt_legacy.h"],
1011
deps = [
1112
"//cyber",
1213
"//modules/perception/base:common",
@@ -94,6 +95,7 @@ cc_library(
9495
deps = [
9596
":batch_stream",
9697
":rt_utils",
98+
":rt_common",
9799
"@com_google_protobuf//:protobuf",
98100
"@local_config_cuda//cuda:cudart",
99101
"@local_config_tensorrt//:tensorrt",
@@ -121,6 +123,7 @@ cc_library(
121123
srcs = ["batch_stream.cc"],
122124
hdrs = ["batch_stream.h"],
123125
deps = [
126+
":rt_common",
124127
"//cyber",
125128
"//modules/perception/proto:rt_cc_proto",
126129
"@com_google_absl//:absl",

modules/perception/inference/tensorrt/batch_stream.cc

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,12 @@
1616

1717
#include "modules/perception/inference/tensorrt/batch_stream.h"
1818

19+
#ifdef NV_TENSORRT_MAJOR
20+
#if NV_TENSORRT_MAJOR == 8
21+
#include "modules/perception/inference/tensorrt/rt_legacy.h"
22+
#endif
23+
#endif
24+
1925
#include <algorithm>
2026

2127
#include "absl/strings/str_cat.h"

modules/perception/inference/tensorrt/batch_stream.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,14 @@
1616

1717
#pragma once
1818

19+
#include <NvInferVersion.h>
20+
21+
#ifdef NV_TENSORRT_MAJOR
22+
#if NV_TENSORRT_MAJOR == 8
23+
#include "modules/perception/inference/tensorrt/rt_legacy.h"
24+
#endif
25+
#endif
26+
1927
#include <string>
2028
#include <vector>
2129

modules/perception/inference/tensorrt/entropy_calibrator.cc

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,18 @@
1515
*****************************************************************************/
1616
#include "modules/perception/inference/tensorrt/entropy_calibrator.h"
1717

18+
#include <NvInferVersion.h>
19+
20+
#ifdef NV_TENSORRT_MAJOR
21+
#if NV_TENSORRT_MAJOR == 8
22+
#include "modules/perception/inference/tensorrt/rt_legacy.h"
23+
#endif
24+
#endif
25+
1826
#include <algorithm>
1927
#include <fstream>
2028

29+
#include "modules/perception/base/common.h"
2130
#include <cuda_runtime_api.h>
2231

2332
namespace nvinfer1 {
@@ -38,7 +47,7 @@ Int8EntropyCalibrator::~Int8EntropyCalibrator() {
3847
}
3948

4049
bool Int8EntropyCalibrator::getBatch(void *bindings[], const char *names[],
41-
int nbBindings) {
50+
int nbBindings)noexcept {
4251
if (!stream_.next()) {
4352
return false;
4453
}
@@ -49,7 +58,7 @@ bool Int8EntropyCalibrator::getBatch(void *bindings[], const char *names[],
4958
return true;
5059
}
5160

52-
const void *Int8EntropyCalibrator::readCalibrationCache(size_t &length) {
61+
const void *Int8EntropyCalibrator::readCalibrationCache(size_t &length) noexcept{
5362
calibration_cache_.clear();
5463
std::ifstream input(
5564
apollo::perception::inference::locateFile(network_, "CalibrationTable"),
@@ -65,7 +74,7 @@ const void *Int8EntropyCalibrator::readCalibrationCache(size_t &length) {
6574
}
6675

6776
void Int8EntropyCalibrator::writeCalibrationCache(const void *cache,
68-
size_t length) {
77+
size_t length) noexcept{
6978
std::ofstream output(
7079
apollo::perception::inference::locateFile(network_, "CalibrationTable"),
7180
std::ios::binary);

modules/perception/inference/tensorrt/entropy_calibrator.h

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,13 +33,15 @@ class Int8EntropyCalibrator : public IInt8EntropyCalibrator {
3333
bool read_cache, std::string network);
3434

3535
virtual ~Int8EntropyCalibrator();
36-
int getBatchSize() const override { return stream_.getBatchSize(); }
36+
int getBatchSize() const noexcept override { return stream_.getBatchSize(); }
3737

38-
bool getBatch(void *bindings[], const char *names[], int nbBindings) override;
38+
bool getBatch(void *bindings[],
39+
const char *names[], int nbBindings) noexcept override;
3940

40-
const void *readCalibrationCache(size_t &length) override;
41+
const void *readCalibrationCache(size_t &length) noexcept override;
4142

42-
void writeCalibrationCache(const void *cache, size_t length) override;
43+
void writeCalibrationCache(const void *cache,
44+
size_t length) noexcept override;
4345

4446
private:
4547
apollo::perception::inference::BatchStream stream_;

modules/perception/inference/tensorrt/plugins/BUILD

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,7 @@ cc_test(
137137
deps = [
138138
":perception_inference_tensorrt_plugins",
139139
"//modules/perception/inference/tensorrt:rt_common",
140+
"//modules/perception/inference/tensorrt:rt_net",
140141
"@com_google_googletest//:gtest_main",
141142
],
142143
linkstatic = True,

0 commit comments

Comments
 (0)