@@ -102,42 +102,33 @@ void SemanticSegmentTrt::parse_to_engine(string onnx_pth,
102102 config->addOptimizationProfile (profile);
103103
104104 config->setMemoryPoolLimit (nvinfer1::MemoryPoolType::kWORKSPACE , 1UL << 32 );
105-
106- if (quant == " fp16" or quant == " int8" ) { // fp16
107- if (builder->platformHasFastFp16 () == false ) {
108- cout << " fp16 is set, but platform does not support, so we ignore this\n " ;
109- } else {
110- config->setFlag (nvinfer1::BuilderFlag::kFP16 );
111- }
112- }
113- if (quant == " bf16" ) { // bf16
105+ config->setBuilderOptimizationLevel (5 );
106+
107+ if (quant == " fp16" ) { // fp16
108+ config->setFlag (nvinfer1::BuilderFlag::kFP16 );
109+ } else if (quant == " int8" ) { // int8
110+ config->setFlag (nvinfer1::BuilderFlag::kFP16 );
111+ config->setFlag (nvinfer1::BuilderFlag::kINT8 );
112+ } else if (quant == " bf16" ) { // bf16
114113 config->setFlag (nvinfer1::BuilderFlag::kBF16 );
115- }
116- if (quant == " fp8" ) { // fp8
114+ } else if (quant == " fp8" ) { // fp8
117115 config->setFlag (nvinfer1::BuilderFlag::kFP8 );
118116 }
119117
120118 std::unique_ptr<IInt8Calibrator> calibrator;
121119 if (quant == " int8" ) { // int8
122- if (builder->platformHasFastInt8 () == false ) {
123- cout << " int8 is set, but platform does not support, so we ignore this\n " ;
124- } else {
125-
126- int batchsize = 32 ;
127- int n_cal_batches = -1 ;
128- string cal_table_name = " calibrate_int8" ;
129-
130- Dims indim = network->getInput (0 )->getDimensions ();
131- BatchStream calibrationStream (
132- batchsize, n_cal_batches, indim,
133- data_root, data_file);
134-
135- config->setFlag (nvinfer1::BuilderFlag::kINT8 );
136-
137- calibrator.reset (new Int8EntropyCalibrator2<BatchStream>(
138- calibrationStream, 0 , cal_table_name.c_str (), input_name.c_str (), false ));
139- config->setInt8Calibrator (calibrator.get ());
140- }
120+ int batchsize = 32 ;
121+ int n_cal_batches = -1 ;
122+ string cal_table_name = " calibrate_int8" ;
123+
124+ Dims indim = network->getInput (0 )->getDimensions ();
125+ BatchStream calibrationStream (
126+ batchsize, n_cal_batches, indim,
127+ data_root, data_file);
128+
129+ calibrator.reset (new Int8EntropyCalibrator2<BatchStream>(
130+ calibrationStream, 0 , cal_table_name.c_str (), input_name.c_str (), false ));
131+ config->setInt8Calibrator (calibrator.get ());
141132 }
142133
143134 // output->setType(nvinfer1::DataType::kINT32);
0 commit comments