TVM部署和集成Deploy and Integration
本文包含如何将TVM部署到各种平台以及如何将其与项目集成。
与传统的深度学习框架不同。TVM堆栈分为两个主要组件:
TVM编译器,完成所有编译和优化
TVM runtime运行时,在目标设备上运行。
为了集成编译后的模块,不需要在目标设备上构建整个TVM。只需要在桌面上构建TVM编译器堆栈,用它来交叉编译部署在目标设备上的模块。只需要使用一个轻量级的runtime运行时API,它可以集成到各种平台中。
例如,可以运行以下命令,基于Linux的嵌入式系统(如Raspberry Pi)上构建runtime运行时API:
git clone --recursive https://github.com/apache/tvm tvm
cd tvm
mkdir build
cp cmake/config.cmake build
cd build
cmake ..
make runtime
注意,键入make runtime只构建runtime运行时库。如果要包含其他runtime运行时(如OpenCL),可以修改config.cmake启用这些选项。获得TVM运行库之后,可以链接已编译的库。
在嵌入式设备上测试、调整和基准测试TVM内核的最简单和推荐的方法是通过TVM’s RPC API。以下是相关的模块。
在完成优化和基准测试之后,可能需要在不依赖RPC的情况下将模型部署到目标设备上。请参阅下面的参考资料以了解如何这样做。