Skip to content

Commit fa969a5

Browse files
committed
fix: Using TensorRT 8 new API calls
Signed-off-by: Dheeraj Peri <[email protected]>
1 parent 62d3088 commit fa969a5

File tree

6 files changed

+20
-22
lines changed

6 files changed

+20
-22
lines changed

Diff for: core/conversion/conversionctx/ConversionCtx.cpp

+7-10
Original file line numberDiff line numberDiff line change
@@ -124,9 +124,9 @@ ConversionCtx::ConversionCtx(BuilderSettings build_settings)
124124
}
125125

126126
ConversionCtx::~ConversionCtx() {
127-
builder->destroy();
128-
net->destroy();
129-
cfg->destroy();
127+
delete builder;
128+
delete net;
129+
delete cfg;
130130
for (auto ptr : builder_resources) {
131131
free(ptr);
132132
}
@@ -144,14 +144,11 @@ torch::jit::IValue* ConversionCtx::AssociateValueAndIValue(const torch::jit::Val
144144
}
145145

146146
std::string ConversionCtx::SerializeEngine() {
147-
auto engine = builder->buildEngineWithConfig(*net, *cfg);
148-
if (!engine) {
149-
TRTORCH_THROW_ERROR("Building TensorRT engine failed");
147+
auto serialized_network = builder->buildSerializedNetwork(*net, *cfg);
148+
if (!serialized_network) {
149+
TRTORCH_THROW_ERROR("Building serialized network failed in TensorRT");
150150
}
151-
auto serialized_engine = engine->serialize();
152-
engine->destroy();
153-
auto engine_str = std::string((const char*)serialized_engine->data(), serialized_engine->size());
154-
serialized_engine->destroy();
151+
auto engine_str = std::string((const char*)serialized_network->data(), serialized_network->size());
155152
return engine_str;
156153
}
157154

Diff for: core/conversion/conversionctx/ConversionCtx.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ struct BuilderSettings {
3030
bool strict_types = false;
3131
bool truncate_long_and_double = false;
3232
Device device;
33-
nvinfer1::EngineCapability capability = nvinfer1::EngineCapability::kDEFAULT;
33+
nvinfer1::EngineCapability capability = nvinfer1::EngineCapability::kSTANDARD;
3434
nvinfer1::IInt8Calibrator* calibrator = nullptr;
3535
uint64_t num_min_timing_iters = 2;
3636
uint64_t num_avg_timing_iters = 1;

Diff for: core/runtime/TRTEngine.cpp

+5-4
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@ TRTEngine::TRTEngine(std::string mod_name, std::string serialized_engine)
2929
std::string("[") + mod_name + std::string("_engine] - "),
3030
util::logging::get_logger().get_reportable_severity(),
3131
util::logging::get_logger().get_is_colored_output_on()) {
32-
rt = nvinfer1::createInferRuntime(logger);
3332

33+
rt = nvinfer1::createInferRuntime(logger);
3434
name = slugify(mod_name) + "_engine";
3535

3636
cuda_engine = rt->deserializeCudaEngine(serialized_engine.c_str(), serialized_engine.size());
@@ -69,9 +69,10 @@ TRTEngine& TRTEngine::operator=(const TRTEngine& other) {
6969
}
7070

7171
TRTEngine::~TRTEngine() {
72-
exec_ctx->destroy();
73-
cuda_engine->destroy();
74-
rt->destroy();
72+
delete exec_ctx;
73+
delete cuda_engine;
74+
delete rt;
75+
7576
}
7677

7778
// TODO: Implement a call method

Diff for: core/util/trt_util.h

+3-3
Original file line numberDiff line numberDiff line change
@@ -73,11 +73,11 @@ inline std::ostream& operator<<(std::ostream& stream, const nvinfer1::DeviceType
7373

7474
inline std::ostream& operator<<(std::ostream& stream, const nvinfer1::EngineCapability& cap) {
7575
switch (cap) {
76-
case nvinfer1::EngineCapability::kDEFAULT:
76+
case nvinfer1::EngineCapability::kSTANDARD:
7777
return stream << "Default";
78-
case nvinfer1::EngineCapability::kSAFE_GPU:
78+
case nvinfer1::EngineCapability::kSAFETY:
7979
return stream << "Safe GPU";
80-
case nvinfer1::EngineCapability::kSAFE_DLA:
80+
case nvinfer1::EngineCapability::kDLA_STANDALONE:
8181
return stream << "Safe DLA";
8282
default:
8383
return stream << "Unknown Engine Capability Setting";

Diff for: cpp/api/src/compile_spec.cpp

+3-3
Original file line numberDiff line numberDiff line change
@@ -111,14 +111,14 @@ core::CompileSpec to_internal_compile_spec(CompileSpec external) {
111111

112112
switch (external.capability) {
113113
case CompileSpec::EngineCapability::kSAFE_GPU:
114-
internal.convert_info.engine_settings.capability = nvinfer1::EngineCapability::kSAFE_GPU;
114+
internal.convert_info.engine_settings.capability = nvinfer1::EngineCapability::kSAFETY;
115115
break;
116116
case CompileSpec::EngineCapability::kSAFE_DLA:
117-
internal.convert_info.engine_settings.capability = nvinfer1::EngineCapability::kSAFE_DLA;
117+
internal.convert_info.engine_settings.capability = nvinfer1::EngineCapability::kDLA_STANDALONE;
118118
break;
119119
case CompileSpec::EngineCapability::kDEFAULT:
120120
default:
121-
internal.convert_info.engine_settings.capability = nvinfer1::EngineCapability::kDEFAULT;
121+
internal.convert_info.engine_settings.capability = nvinfer1::EngineCapability::kSTANDARD;
122122
}
123123

124124
internal.convert_info.engine_settings.device.gpu_id = external.device.gpu_id;

Diff for: tests/core/conversion/converters/test_activation.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -223,5 +223,5 @@ TEST(Converters, ATenGELUConvertsCorrectly) {
223223
// c10::cuda::compat::normcdf to compute Phi(x). So there's a difference here and therefore the threshold is slightly
224224
// higher than other ops. One in ten runs will give you an out of normal threshold result
225225

226-
ASSERT_TRUE(trtorch::tests::util::almostEqual(jit_results[0], trt_results[0], 4e-4));
226+
ASSERT_TRUE(trtorch::tests::util::almostEqual(jit_results[0], trt_results[0], 5e-4));
227227
}

0 commit comments

Comments
 (0)