在onnx生成engine的代码执行过程中,用8G显存的GPU跑程序一启动就报错:../rtSafe/safeRuntime.cpp (25) - Cuda Error in allocate: 2 (out of memory),报这个错倒不一定是因为模型本身太大了,而可能是workspace size值设置得太大了,把代码中
config->setMaxWorkspaceSize(size_t(1) << 40);
改成
config->setMaxWorkspaceSize(size_t(1) << 30);
然后执行程序就不报错了。
但如果是设置了FP16量化模式
config->setFlag(nvinfer1::BuilderFlag::kFP16);
所需的workspace size变大,得需要把上面设置的值试着加大,当然此时GPU显存小了可能跑不了