TVM 編譯器原理與實踐

吳建明, 吳一昊編著

  • 出版商: 機械工業
  • 出版日期: 2023-12-01
  • 定價: $714
  • 售價: 8.5$607
  • 語言: 簡體中文
  • 頁數: 320
  • 裝訂: 平裝
  • ISBN: 7111739124
  • ISBN-13: 9787111739128
  • 相關分類: Machine LearningDeepLearning程式語言
  • 下單後立即進貨 (約4週~6週)

買這商品的人也買了...

商品描述

本書全面解析TVM的主要功能,幫助讀者理解TVM運作原理,以及使用TVM對深度學習與機器學習進行最佳化與部署。
本書結合作者多年的工作與學習經驗,力求將TVM基礎理論與案例實踐融合在一起進行詳細講解。
全書共有9章,包括TVM基本知識,使用TVM開發,算符融合與圖優化,TVM量化技術,TVM優化調度,
RelayIR,程式碼生成,後端部署與OpenCL(OpenComputingLanguage,開放運算語言),自動調度、自動搜尋與成本模型。
各章除了包含重要的知識點和實務技能外,還配備了精心挑選的典型案例。

目錄大綱

第1章 TVM基本知識/
1.1TVM基本原理/
1.1.1TVM概述/
1.1.2TVM 模型最佳化部署概述/
1.2TVM編譯過程/
1.2.1編譯流程/
1.2.2TVM編譯資料結構/
1.2.3TVM編譯資料處理/
1.2.4TVM的Pass過程/
1.3TVM開源工程邏輯架構/
1.3.1程式碼庫程式碼結構/
1.3.2程式碼自動內核/
1.4TVM應用支援/
1.4.1TVM的工作流程/
1.4.2支援多語言與多平台/
1.4.3TVM應用場景/
1.4.4TVM優化模型推理/
1.4.5TVM編譯器與運行時組件/
1.4.6TVM運行時主要模組/
1.4.7TVM簡單程式碼生成編譯範例/
1.4.8TVM各模組之間的關係/
1.5TVM特色與挑戰/
1.5.1TVM特色/
1.5.2支援多種後端設備/
1.5.3TVM應對的挑戰/
第2章 使用TVM開發/
2.1配置TVM環境/
2.1.1apache TVM源碼下載/
2.1.2配置TVM的開發環境/
2.1.3TVM conda環境使用方法/
2.1.4編譯實作/
2.1.5導入模型方法/
2.2在conda環境編譯最佳化TVM yolov3範例/
2.3Python與C++的呼叫關係/
2.3.1TVM中底層C++資料結構/
2.3.2進行函數註冊/
2.3.3上層Python呼叫/
2.4TVM自訂程式碼範例/
2.4.1TVM如何添加代碼/
2.4.2TVM程式碼生成實作範例/
2.5用TVM實現演算法全流程/
2.5.1配置張量與建立調度/
2.5.2進行降級算子優化/
2.5.3建置host目標程式/
2.5.4實現後端程式碼產生/
第3章 算子融合與圖形最佳化/
3.1算子概述/
3.1.1TVM融合組件範例/
3.1.2最佳化計算圖/
3.2圖GCN融合/
3.2.1圖的概念/
3.2.2深度學習新特徵/
3.3圖融合GCN範例/
3.3.1GCN的PyTorch實作/
3.3.2融合BN與Conv層/
3.4TVM圖優化與算子融合/
3.4.1圖與算子優化/
3.4.2自訂算子/
3.4.3算子融合步驟/
3.4.4在Relay中加入operator/
3.5端到端優化/
3.5.1 AI框架概述/
3.5.2計算圖優化層/
3.5.3TVM算子融合的4種方法/
3.5.4資料佈局轉換/
3.5.5張量表達式語言/
3.5.6調度空間分析/
3.6 TVM圖優化與算子融合方案分析/
3.6.1圖優化框架分析/
3.6.2TVM優化基礎分析/
3.6.3TVM優化參數/
3.6.4算子優化圖示/
3.6.5自訂圖級優化/
3.7支配樹技術/
3.7.1支配樹概述/
3.7.2算子融合方案及範例/
3.8控制流與優化器/
3.8.1控制流/
3.8.2優化器/
3.9TVM儲存與調度/
3.9.1TVM編譯器最佳化/
3.9.2圖結構基本優化/
3.9.3張量計算/
3.10多功能張量加速器VTA/
3.10.1VTA-TVM 硬體-軟體堆疊/
3.10.2VTA主要功能/
3.10.3VTA範例/
3.10.4VTA計算模組/
3.10.5VTA控制/
3.10.6microTVM模型/
3.11TVM程式碼庫結構與範例/
3.11.1程式碼庫結構/
3.11.2張量新增範例/
3.12主機驅動的執行/
3.12.1 firmware二進位檔案/
3.12.2計算聲明/
3.12.3資料平鋪/
3.12.4卷積運算/
3.12.5空間填充/
第4章 TVM量化技術/
4.1TVM量化概述/
4.1.1TVM量化現狀/
4.1.2TVM量化原理/
4.2int8量化與TVM執行/
4.2.1兩種主要量化方案/
4.2.2int8量化原理分析/
4.2.3KL散度計算/
4.2.4實現int8量化/
4.3低精度訓練與推理/
4.4NN量化/
4.4.1神經網路量化概述/
4.4.2優化數據與網路/
4.4.3前向推理與反向傳播/
4.5熵校準範例/
4.6TVM量化流程/
4.6.1Relay的兩種平行量化/
4.6.2Relay優化Pass方法/
4.6.3量化處理硬體說明/
4.6.4閾值估計方案/
4.6.5模擬量化誤差/
4.6.6尺度計算/
4.6.7資料類型分配/
4.6.8資料類型分配日誌/
4.6.9神經網路低精度量化/
4.7TVM量化程序分析/
第5章 TVM最佳化調度/
5.1TVM 運行時系統/
5.1.1TVM 運行時系統框架/
5.1.2PackedFunc編譯與部署/
5.1.3建置 PackedFunc模組/
5.1.4遠端部署方法/
5.1.5TVM 物件與編譯器分析/
5.2自動微分靜態圖與動態圖/
5.2.1計算圖分類/
5.2.2動態圖實現範例/
5.3機器學習自動微分/
5.3.1微分法/
5.3.2手動微分/
5.3.3數值微分/
5.3.4符號微分/
5.3.5自動微分/
5.3.6自動微分實現範例/
5.4稀疏矩陣分析/
5.4.1稀疏矩陣概念/
5.4.2稀疏矩陣最佳化/
5.4.3特定矩陣壓縮儲存/
5.4.4稀疏矩陣實現範例/
5.5TVM張量計算分析/
5.5.1產生張量運算/
5.5.2嵌套並行與協作/
5.5.3張量化計算/
5.5.4顯式記憶體延遲隱藏/
第6章 Relay IR/
6.1TVM數據介紹/
6.1.1TVM模組框架介紹/
6.1.2Relay IR原理簡介/
6.1.3建構計算圖/
6.1.4let綁定與作用域/
6.2IR代碼產生/
6.2.1前端優化/
6.2.2節點優化/
6.2.3代數優化/
6.2.4資料流層級的最佳化/
6.3在Relay中註冊算子/
6.3.1新增節點,定義編譯參數/
6.3.2運算類型關係分析/
6.3.3在C++中進行RELAY_REGISTER_OP巨集註冊/
6.3.4算子註冊與調度/
6.3.5註冊函數API分析/
6.3.6將Python API打包/
6.3.7單元測試分析/
6.4TVM中IR範例/
6.4.1IRModule技術分析/
6.4.2TVM Runtime(運行時)分析/
6.4.3預測部署實現/
6.4.4動態圖實作/