TVM安装常用问题
TVM安裝常用問題
如何添加新的硬件后端
? 如果硬件后端支持LLVM,則可以通過設置正確的目標三元組來直接生成代碼target。
? 如果目標硬件是GPU,請嘗試使用cuda,opencl或vulkan后端。
? 如果目標硬件是特殊的加速器,請checkout VTA:深度學習加速器堆棧,并將代碼生成到TVM。
? 對于上述所有情況,使用AutoTVM添加特定于目標的優化模板,請參見AutoTVM:基于模板的自動調整AutoTVM : Template-based Auto Tuning。
? 除了使用LLVM的向量化之外,還可以嵌入微內核micro-kernels,以利用硬件內在函數,請參閱使用張量化,以利用硬件內在函數。
TVM與其他IR / DSL項目的關系
在深度學習系統中,IR通常有兩個抽象層次。TensorFlow的XLA和Intel的ngraph都使用計算圖表示。這種表示形式是高級的,并且有助于執行通用優化,例如內存重用,布局轉換和自動微分。
TVM采用低級表示,可明確表示內存布局,并行化模式,局部性和硬件基元等的選擇。此IR級別更接近直接針對目標硬件。低級IR采用了來自現有圖像處理語言(例如Halide),暗室darkroom和循環轉換工具(例如基于loopy和基于多面體的分析)的思想。特別專注于表達深度學習工作負載(例如,遞歸),針對不同硬件后端的優化以及嵌入框架以提供端到端編譯堆棧。
TVM與libDNN,cuDNN的關系
TVM可以將這些庫合并為外部調用。TVM的目標之一是能夠生成高性能內核。當從人工內核技術中學習,逐步將它們添加為DSL中的原語,逐步發展TVM。另請參閱前面內容以了解TVM中算子的配置。
https://tvm.apache.org/docs/faq.html
總結
- 上一篇: 使用Auto TensorCore Co
- 下一篇: HLS后端示例