幫助中心 | 我的帳號 | 關於我們

TVM編譯器原理與實踐/芯科技前沿技術叢書

  • 作者:編者:吳建明//吳一昊|責編:李曉波
  • 出版社:機械工業
  • ISBN:9787111739128
  • 出版日期:2024/01/01
  • 裝幀:平裝
  • 頁數:305
人民幣:RMB 119 元      售價:
放入購物車
加入收藏夾

內容大鋼
    TVM(Tensor Virtual Machine,張量虛擬機)是一種開源的模型編譯框架,旨在將機器學習模型自動編譯成可供下層硬體執行的機器語言,從而利用多種類型的算力。其工作原理是,先將深度學習模型進行優化推理、內存管理與線程調度,再借用LLVM框架將模型部署在CPU、GPU、FPGA、ARM等硬體設備上。
    本書全面解析TVM的主要功能,幫助讀者理解TVM工作原理,以及使用TVM對深度學習與機器學習進行優化與部署。
    本書結合作者多年的工作與學習經驗,力求將TVM基礎理論與案例實踐融合在一起進行詳細講解。全書共9章,包括TVM基本知識,使用TVM開發,運算元融合與圖優化,TVM量化技術,TVM優化調度,Relay IR,代碼生成,後端部署與OpenCL(Open Computing Language,開放運算語言),自動調度、自動搜索與成本模型。各章除了包含重要的知識點和實踐技能外,還配備了精心挑選的典型案例。
    本書適合從事AI演算法、軟體、編譯器開發以及硬體開發等專業的工程技術人員、科研工作人員、技術管理人員閱讀,也可以作為編譯器相關專業高校師生的參考用書。

作者介紹
編者:吳建明//吳一昊|責編:李曉波
    吳建明,上海交通大學模式識別與智能系統專業博士畢業。長期從事人工智慧晶元設計,尤其擅長TVM/LLVM編譯器、AI框架、自動駕駛、晶元製造,嵌入式系統等領域的理論研究與技術創新。長期在一線工作,包括產品設計與代碼實現等,主持和參與過30多項產品的研發。還參與過國家自然科學基金、上海市科委項目,並在核心期刊公開發表過8篇論文,其中6篇是第一作者。

目錄
第1章  TVM基本知識
  1.1  TVM基本原理
    1.1.1  TVM概述
    1.1.2  TVM模型優化部署概述
  1.2  TVM編譯過程
    1.2.1  編譯流程
    1.2.2  TVM編譯數據結構
    1.2.3  TVM編譯數據處理
    1.2.4  TVM的Pass過程
  1.3  TVM開源工程邏輯架構
    1.3.1  代碼庫代碼結構
    1.3.2  代碼自動內核
  1.4  TVM應用支持
    1.4.1  TVM的工作流程
    1.4.2  支持多語言與多平台
    1.4.3  TVM應用場景
    1.4.4  TVM優化模型推理
    1.4.5  TVM編譯器與運行時組件
    1.4.6  TVM運行時主要模塊
    1.4.7  TVM簡單代碼生成編譯示例
    1.4.8  TVM各模塊之間的關係
  1.5  TVM特色與挑戰
    1.5.1  TVM特色
    1.5.2  支持多種後端設備
    1.5.3  TVM應對的挑戰
第2章  使用TVM開發
  2.1  配置TVM環境
    2.1.1  apache TVM源碼下載
    2.1.2  配置TVM的開發環境
    2.1.3  TVM conda環境使用方法
    2.1.4  編譯實現
    2.1.5  導入模型方法
  2.2  在conda環境編譯優化TVM yolov3示例
  2.3  Python與C++的調用關係
    2.3.1  TVM中底層C++數據結構
    2.3.2  進行函數註冊
    2.3.3  上層Python調用
  2.4  TVM自定義代碼示例
    2.4.1  TVM如何添加代碼
    2.4.2  TVM代碼生成實現示例
  2.5  用TVM實現演算法全流程
    2.5.1  配置張量與創建調度
    2.5.2  進行降級運算元優化
    2.5.3  構建host目標程序
    2.5.4  實現後端代碼生成
第3章  運算元融合與圖優化
  3.1  運算元概述
    3.1.1  TVM融合組件示例
    3.1.2  優化計算圖
  3.2  圖GCN融合

    3.2.1  圖的概念
    3.2.2  深度學習新特徵
  3.3  圖融合GCN示例
    3.3.1  GCN的PyTorch實現
    3.3.2  融合BN與Conv層
  3.4  TVM圖優化與運算元融合
    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.3  TVM運算元融合的4種方法
    3.5.4  數據布局轉換
    3.5.5  張量表達式語言
    3.5.6  調度空間分析
  3.6  TVM圖優化與運算元融合方案分析
    3.6.1  圖優化框架分析
    3.6.2  TVM優化基礎分析
    3.6.3  TVM優化參數
    3.6.4  運算元優化圖示
    3.6.5  自定義圖級優化
  3.7  支配樹技術
    3.7.1  支配樹概述
    3.7.2  運算元融合方案及示例
  3.8  控制流與優化器
    3.8.1  控制流
    3.8.2  優化器
  3.9  TVM存儲與調度
    3.9.1  TVM編譯器優化
    3.9.2  圖結構基本優化
    3.9.3  張量計算
  3.10  多功能張量加速器VTA
    3.10.1  VTA-TVM硬體-軟體堆棧
    3.10.2  VTA主要功能
    3.10.3  VTA示例
    3.10.4  VTA計算模塊
    3.10.5  VTA控制
    3.10.6  microTVM模型
  3.11  TVM代碼庫結構與示例
    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.1  TVM量化概述
    4.1.1  TVM量化現狀
    4.1.2  TVM量化原理
  4.2  int8量化與TVM執行
    4.2.1  兩種主要量化方案
    4.2.2  int8量化原理分析
    4.2.3  KL散度計算
    4.2.4  實現int8量化
  4.3  低精度訓練與推理
  4.4  NN量化
    4.4.1  神經網路量化概述
    4.4.2  優化數據與網路
    4.4.3  前向推理與反向傳播
  4.5  熵校準示例
  4.6  TVM量化流程
    4.6.1  Relay的兩種並行量化
    4.6.2  Relay優化Pass方法
    4.6.3  量化處理硬體說明
    4.6.4  閾值估計方案
    4.6.5  模擬量化誤差
    4.6.6  尺度計算
    4.6.7  數據類型分配
    4.6.8  數據類型分配日誌
    4.6.9  神經網路低精度量化
  4.7  TVM量化程序分析
第5章  TVM優化調度
  5.1  TVM運行時系統
    5.1.1  TVM運行時系統框架
    5.1.2  PackedFunc編譯與部署
    5.1.3  構建PackedFunc模塊
    5.1.4  遠程部署方法
    5.1.5  TVM對象與編譯器分析
  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.5  TVM張量計算分析
    5.5.1  生成張量運算
    5.5.2  嵌套並行與協作

    5.5.3  張量化計算
    5.5.4  顯式內存延遲隱藏
第6章  Relay IR
  6.1  TVM數據介紹
    6.1.1  TVM模塊框架介紹
    6.1.2  Relay IR原理簡介
    6.1.3  構建計算圖
    6.1.4  let綁定與作用域
  6.2  IR代碼生成
    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.4  TVM中IR示例
    6.4.1  IRModule技術分析
    6.4.2  TVM Runtime(運行時)分析
    6.4.3  預測部署實現
    6.4.4  動態圖實現
  6.5  TVM支持CUDA架構分析
    6.5.1  CUDA架構基礎理論
    6.5.2  CUDA編程模型基礎理論
    6.5.3  實現向量加法實例
    6.5.4  實現矩陣乘法實例
第7章  代碼生成
  7.1  CodeGen基本原理
    7.1.1  TVM代碼生成CodeGen
    7.1.2  CodeGen框架流程
    7.1.3  代碼生成介面函數
    7.1.4  CodeGen的target.build介面函數
  7.2  CodeGen統一編程
    7.2.1  統一編程基礎
    7.2.2  進行CodeGen分析
    7.2.3  實現CodeGen C舉例
  7.3  運算元的CodeGen原理與示例
    7.3.1  聲明生成函數
    7.3.2  調用生成函數
    7.3.3  生成輸出緩衝區
    7.3.4  更新輸出緩衝區
    7.3.5  小結
  7.4  如何集成部署CodeGen
    7.4.1  將ASIC加速器部署到TVM
    7.4.2  圖註釋

    7.4.3  圖變換
    7.4.4  運行時機制分析
  7.5  在TVM上集成部署CodeGen示例分析
  7.6  代碼生成應用實踐
    7.6.1  表達式編譯
    7.6.2  編譯IRModule方案
    7.6.3  CodeGen 原理:以 CodeGenC為例
  7.7  CodeGen調用關係項目示例分析
    7.7.1  項目代碼分析
    7.7.2  內存分配分析
第8章  後端部署與OpenCL
  8.1  OpenCL概述與開發示例
    8.1.1  異構並行編程
    8.1.2  OpenCL編程模型
  8.2  OpenCL程序啟動與適配
    8.2.1  在FPGA上實現OpenCL標準的優勢
    8.2.2  OpenCL與Host流程圖
    8.2.3  TVM適配CUDA
  8.3  OpenCL構建編程示例分析
    8.3.1  選擇OpenCL平台並創建上下文
    8.3.2  選擇設備並創建命令隊列
    8.3.3  構建內核程序
    8.3.4  創建內核內存對象
    8.3.5  設置內核數據並執行隊列
    8.3.6  讀取結果並釋放OpenCL資源
  8.4  OpenCL平台編程配置與示例分析
    8.4.1  配置目標平台
    8.4.2  構建運行時流程
    8.4.3  平台編程示例
  8.5  TVM Python中的relay.build示例
    8.5.1  TVM優化model
    8.5.2  構建relay.build調用機制
  8.6  緩存、內存、線程調度
    8.6.1  並行處理
    8.6.2  參數平均模型數據並行化
    8.6.3  TVM性能評估分析
    8.6.4  遠程部署感性分析
第9章  自動調度、自動搜索與成本模型
  9.1  CPU Auto-scheduling
    9.1.1  AutoTVM與Auto-scheduling
    9.1.2  編譯器自動優化
    9.1.3  AutoKernel原理分析
    9.1.4  自動調度示例
  9.2  AutoTVM用成本模型自動搜索
    9.2.1  成本模型原理
    9.2.2  AutoTVM自動搜索
  9.3  AutoTVM自動搜索示例
    9.3.1  安裝依賴項並導入包
    9.3.2  定義搜索空間
    9.3.3  用成本模型進行搜索處理

參考文獻

  • 商品搜索:
  • | 高級搜索
首頁新手上路客服中心關於我們聯絡我們Top↑
Copyrightc 1999~2008 美商天龍國際圖書股份有限公司 臺灣分公司. All rights reserved.
營業地址:臺北市中正區重慶南路一段103號1F 105號1F-2F
讀者服務部電話:02-2381-2033 02-2381-1863 時間:週一-週五 10:00-17:00
 服務信箱:bookuu@69book.com 客戶、意見信箱:cs@69book.com
ICP證:浙B2-20060032