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的情況下將模型部署到目標設備上。請參閱下面的參考資料以了解如何這樣做。
- Deploy TVM Module using C++ API
- Deploy to Android
- Integrate TVM into Your Project
- HLS Backend Example
- Relay Arm ® Compute Library Integration
- Relay TensorRT Integration
- Vitis-AI Integration