Commit a4fe9ff5 authored by xin.wang.waytous's avatar xin.wang.waytous

int8-support

parent 66e4307c
...@@ -27,8 +27,8 @@ include_directories(include) ...@@ -27,8 +27,8 @@ include_directories(include)
# tensorrt # tensorrt
# include_directories(/root/TensorRT/TensorRT-7.0.0.11-cuda-10.0/include) # include_directories(/root/TensorRT/TensorRT-7.0.0.11-cuda-10.0/include)
# link_directories(/root/TensorRT/TensorRT-7.0.0.11-cuda-10.0/lib) # link_directories(/root/TensorRT/TensorRT-7.0.0.11-cuda-10.0/lib)
include_directories(/root/TensorRT/TensorRT-8.2.3.0/include) include_directories(/home/ubuntu/projects/infer/cuda/TensorRT-8.2.3.0/include)
link_directories(/root/TensorRT/TensorRT-8.2.3.0/lib) link_directories(/home/ubuntu/projects/infer/cuda/TensorRT-8.2.3.0/lib)
# aarch64 # aarch64
# # figure out real path # # figure out real path
# include_directories(/home/nvidia/.../tensorrt-7.1-aarch64-DCN/include) # include_directories(/home/nvidia/.../tensorrt-7.1-aarch64-DCN/include)
......
...@@ -168,11 +168,19 @@ bool TRTInference::BuildEngine(YAML::Node& configNode){ ...@@ -168,11 +168,19 @@ bool TRTInference::BuildEngine(YAML::Node& configNode){
#endif #endif
} }
else if(runMode == 2){//int8 else if(runMode == 2){//int8
LOG_ERROR << "No supported int8"; // LOG_ERROR << "No supported int8";
/*LOG_INFO <<"Set Int8 Mode"; // /*
if (!builder->platformHasFastInt8()) LOG_INFO <<"Set Int8 Mode";
if (!builder->platformHasFastInt8()){
LOG_INFO << "Notice: the platform do not has fast for int8."; LOG_INFO << "Notice: the platform do not has fast for int8.";
return false;
}
// builder->setInt8Mode(true);
#ifdef TRT_8
builderConfig->setFlag(nvinfer1::BuilderFlag::kINT8);
#else
builder->setInt8Mode(true); builder->setInt8Mode(true);
#endif
if(configNode["calibImgPathFile"].as<std::string>().size() > 0){ if(configNode["calibImgPathFile"].as<std::string>().size() > 0){
std::vector<float> inputMean = configNode["inputMean"].as<std::vector<float>>(); std::vector<float> inputMean = configNode["inputMean"].as<std::vector<float>>();
std::vector<float> inputStd = configNode["inputStd"].as<std::vector<float>>(); std::vector<float> inputStd = configNode["inputStd"].as<std::vector<float>>();
...@@ -180,16 +188,17 @@ bool TRTInference::BuildEngine(YAML::Node& configNode){ ...@@ -180,16 +188,17 @@ bool TRTInference::BuildEngine(YAML::Node& configNode){
configNode["calibImgPathFile"].as<std::string>(), configNode["calibImgPathFile"].as<std::string>(),
configNode["calibTableCache"].as<std::string>(), maxBatchSize, configNode["calibTableCache"].as<std::string>(), maxBatchSize,
configNode["inputWidth"].as<int>(), configNode["inputHeight"].as<int>(), configNode["inputWidth"].as<int>(), configNode["inputHeight"].as<int>(),
inputMean, inputStd, useBGR, fixAspectRatio inputMean, inputStd, configNode["useBGR"].as<bool>(), configNode["fixAspectRatio"].as<bool>()
); );
builder->setInt8Calibrator(calibrator); // builder->setInt8Calibrator(calibrator);
builderConfig->setInt8Calibrator(calibrator);
} }
else{ else{
LOG_ERROR << "Not imgs for calib int8. " << configNode["calibImgPathFile"].as<std::string>(); LOG_ERROR << "Not imgs for calib int8. " << configNode["calibImgPathFile"].as<std::string>();
return false; return false;
} }
*/ // */
return false; // return false;
} }
LOG_INFO << "Begin building engine..." ; LOG_INFO << "Begin building engine..." ;
......
...@@ -356,16 +356,25 @@ bool YoloV5TRTInference::BuildEngine(YAML::Node& configNode){ ...@@ -356,16 +356,25 @@ bool YoloV5TRTInference::BuildEngine(YAML::Node& configNode){
if (runMode == 1){ if (runMode == 1){
config->setFlag(BuilderFlag::kFP16); config->setFlag(BuilderFlag::kFP16);
}else if (runMode == 2){ }else if (runMode == 2){
LOG_ERROR << "no supported int8"; // LOG_ERROR << "no supported int8";
/*LOG_INFO << "Your platform support int8: " << (builder->platformHasFastInt8() ? "true" : "false"); // /*
LOG_INFO << "Your platform support int8: " << (builder->platformHasFastInt8() ? "true" : "false");
assert(builder->platformHasFastInt8()); assert(builder->platformHasFastInt8());
config->setFlag(BuilderFlag::kINT8); // config->setFlag(BuilderFlag::kINT8);
#ifdef TRT_8
config->setFlag(nvinfer1::BuilderFlag::kINT8);
#else
builder->setInt8Mode(true);
#endif
std::vector<float> inputMean = configNode["inputMean"].as<std::vector<float>>();
std::vector<float> inputStd = configNode["inputStd"].as<std::vector<float>>();
calibrator = new int8EntroyCalibrator(configNode["calibImgPathFile"].as<std::string>(), calibrator = new int8EntroyCalibrator(configNode["calibImgPathFile"].as<std::string>(),
configNode["calibTableCache"].as<std::string>(), configNode["calibTableCache"].as<std::string>(),
maxBatchSize, inputWidth, inputHeight, inputMean, inputStd, useBGR); maxBatchSize, inputWidth, inputHeight, inputMean, inputStd,
configNode["useBGR"].as<bool>(), configNode["fixAspectRatio"].as<bool>());
config->setInt8Calibrator(calibrator); config->setInt8Calibrator(calibrator);
*/ // */
return false; // return false;
} }
LOG_INFO << "Building engine, please wait for a while..."; LOG_INFO << "Building engine, please wait for a while...";
......
...@@ -123,7 +123,7 @@ void Track::update(Track &new_track, int frame_id) ...@@ -123,7 +123,7 @@ void Track::update(Track &new_track, int frame_id)
// update obj_ // update obj_
this->obj_->update(new_track.obj_); this->obj_->update(new_track.obj_);
this->obj_->update(tlbr); // this->obj_->update(tlbr);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment