集成TensorRT使用说明

查看源文件

使用步骤

环境准备

在基本的环境准备之外,使用TensorRT需要集成CUDA、TensorRT。当前版本适配CUDA 10.1 和 TensorRT 6.0.1.5。

安装CUDA 10.1,并将安装后的目录设置为环境变量${CUDA_HOME}。构建脚本将使用这个环境变量寻找CUDA。

下载TensorRT 6.0.1.5,并将压缩包解压后的目录设置为环境变量${TENSORRT_PATH}。构建脚本将使用这个环境变量寻找TensorRT。

编译构建

在Linux环境下,使用MindSpore源代码根目录下的build.sh脚本可以构建集成TensorRT的MindSpore Lite包,先配置环境变量MSLITE_GPU_BACKEND=tensorrt,再执行编译命令如下,它将在MindSpore源代码根目录下的output目录下构建出MindSpore Lite的包,其中包含libmindspore-lite.so以及测试工具Benchmark。

bash build.sh -I x86_64

有关编译详情见Linux环境编译

集成使用

  • 集成说明

    开发者需要集成使用TensorRT功能时,需要注意:

    export LD_LIBRARY_PATH=mindspore-lite-{version}-{os}-{arch}/runtime/lib/:$LD_LIBRARY_PATH
    export LD_LIBRARY_PATH=user-installed-tensorrt-path/lib/:$LD_LIBRARY_PATH
    export LD_LIBRARY_PATH=user-installed-cuda-path/lib/:$LD_LIBRARY_PATH
    
  • Benchmark测试TensorRT推理

    用户也可以使用MindSpore Lite的Benchmark工具测试TensorRT推理。编译出的Benchmark位置见编译输出。将构建包传到具有TensorRT环境(TensorRT 6.0.1.5)的设备上使用Benchmark工具测试TensorRT推理,示例如下:

    • 测性能

    ./benchmark --device=GPU --modelFile=./models/test_benchmark.ms --timeProfiling=true
    
    • 测精度

    ./benchmark --device=GPU --modelFile=./models/test_benchmark.ms --inDataFile=./input/test_benchmark.bin --inputShapes=1,32,32,1 --accuracyThreshold=3 --benchmarkDataFile=./output/test_benchmark.out
    

    有关Benchmark使用详情,见Benchmark使用

    有关环境变量设置,需要根据编译输出中编译选项为-I x86_64时的目录结构,将libmindspore-lite.so(目录为mindspore-lite-{version}-{os}-{arch}/runtime/lib)、CUDA的so库所在的目录和TensorRT的so库所在的目录加入${LD_LIBRARY_PATH}

    • 模型序列化

    TensorRT推理支持将已构建的TensorRT模型(Engine)序列化为二进制文件保存在本地,下次使用时即可从本地反序列化加载模型,避免重新构建,降低开销。支持此功能,用户需要在代码中使用LoadConfig接口加载配置文件,配置文件中须指定序列化文件保存路径:

    [ms_cache]
    serialize_path=/path/to/config
    

算子支持

TensorRT算子支持见Lite 算子支持