[干货]Ubuntu 20.04编译onnxruntime cpu/gpu

本教程分享如何在Ubuntu20.04中编译onnxruntime,关于为什么要自己编译onnxruntime,可能有以下几个原因:

  • 官方编译的python包或c/c++动态库与部署环境不同,这时需要针对自己的环境(CUDA)进行编译
  • 官方默认编译的onnxruntime不包含TensorRT等加速库,如果想借助onnxruntime,把TensorRT作为推理引擎需自行编译

onnxruntime使用TensorRT加速引擎的优势:

  • 代码无需大幅改动,只需要指定推理时的provider,即可随意使用CPU、CUDA、TensorRT等,极为方便
  • 使用TensorRT作为后端引擎,相较于只用CUDA,一般都会有加速效果,速度由具体网络决定
  • onnxruntime自动将onnx模型转成TensorRT的推理engine,若遇到TensorRT不支持的op,onnxruntime将自动切分计算图,把不受支持的op转为CUDA/CPU设备进行推理

本教程中的编译环境是Ubuntu 20.04,强烈建议大家在docker容器内进行编译,以免由于一些开发库的安装,造成本机环境混乱。

1.下载docker镜像

下载包含CUDA开发环境的Ubuntu20.04 

你可能感兴趣的:(onnx,onnxruntime,网络推理加速,CUDA/TensorRT)