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

多面體編譯理論與深度學習實踐

  • 作者:編者:趙捷//李寶亮|責編:楊迪娜
  • 出版社:清華大學
  • ISBN:9787302616467
  • 出版日期:2022/11/01
  • 裝幀:平裝
  • 頁數:291
人民幣:RMB 138 元      售價:
放入購物車
加入收藏夾

內容大鋼
    編譯技術是電腦科學領域的一個重要分支,經過長時間的發展,當前編譯技術的重點是中間過程的程序優化和後端代碼的生成。本書主要內容分為8章。第1章從體系結構發展對編譯技術的影響,引出多面體模型及其研究意義。第2章介紹了多面體模型的數學基礎,包括相關的定義、定理和所需要的數學方法。第3章介紹了多面體模型對程序進行優化和代碼生成的基本前提,即依賴關係的定義、性質及其測試和分析方法。第4章詳解了多面體模型中最經典的Pluto調度演算法,以及循環變換。第5章就多面體模型面向程序並行性的研究進行了梳理和歸納,對各種不同的循環分塊形狀實現原理進行了闡述。第6章針對如何利用局部性原理在多面體模型中進行優化進行了介紹。第7章介紹了根據多面體模型的數學抽象描述生成抽象語法樹表示的方法。第8章介紹了多面體模型及其相關理論的最新進展。
    本書是電腦科學與技術專業課程的教學參考書,適用於電腦和軟體工程專業的大學生、研究生,也可供數學領域和人工智慧晶元領域的相關人員參考。

作者介紹
編者:趙捷//李寶亮|責編:楊迪娜

目錄
第1章  體系結構發展對編譯技術的影響
  1.1  面向經典體系結構的性能優化
    1.1.1  並行性發掘
    1.1.2  存儲層次結構
    1.1.3  領域專用架構
  1.2  編譯器面臨的挑戰
    1.2.1  並行性發掘
    1.2.2  局部性發掘
    1.2.3  編程模型和抽象層次
  1.3  循環優化的數學抽象
    1.3.1  多面體模型的基本概念
    1.3.2  多面體模型在編譯器中的應用
    1.3.3  基於多面體模型的編譯流程
第2章  程序抽象表示基礎
  2.1  抽象表示在編譯器中發揮的作用
  2.2  整數集合與仿射函數
    2.2.1  靜態仿射約束
    2.2.2  整數集合
    2.2.3  仿射函數
    2.2.4  集合與映射的運算
  2.3  Fourier-Motzkin消去法
  2.4  調度樹
    2.4.1  調度的表示方式
    2.4.2  調度樹的結點
    2.4.3  調度樹的操作
    2.4.4  調度表示的比較
  2.5  抽象語法樹
    2.5.1  被執行關係
    2.5.2  上下文信息
    2.5.3  結點和表達式
  2.6  各種抽象的工程實現
    2.6.1  整數集合和仿射函數的實現
    2.6.2  調度樹的實現
    2.6.3  抽象語法樹的實現
第3章  依賴關係分析
  3.1  依賴關係分析在編譯優化中的作用
  3.2  依賴及其性質
    3.2.1  依賴的分類
    3.2.2  距離向量與方向向量
    3.2.3  循環無關依賴和循環攜帶依賴
    3.2.4  依賴與變換
    3.2.5  依賴的複雜性
  3.3  依賴測試
    3.3.1  精確測試與保守測試
    3.3.2  ZIV測試
    3.3.3  SIV測試
    3.3.4  GCD測試
    3.3.5  Banerjee測試
    3.3.6  I測試
  3.4  耦合下標依賴測試

    3.4.1  擴展的GCD測試
    3.4.2  λ測試
    3.4.3  Delta測試
    3.4.4  Omega測試
  3.5  特殊的依賴測試
    3.5.1  D測試
    3.5.2  Range依賴測試
  3.6  數據流分析
    3.6.1  精確數據流分析
    3.6.2  近似數據流分析
    3.6.3  帶標記的數據流分析
  3.7  依賴與並行化
第4章  循環變換
  4.1  適配體系結構特徵的關鍵技術
  4.2  預處理
    4.2.1  循環正規化
    4.2.2  死代碼刪除
    4.2.3  別名分析
    4.2.4  迭代空間分裂
  4.3  多面體模型中的循環變換
    4.3.1  循環變換分類
    4.3.2  循環變換的複雜性
    4.3.3  Pluto調度演算法
  4.4  仿射循環變換
    4.4.1  循環交換
    4.4.2  循環反轉
    4.4.3  循環延展
    4.4.4  循環傾斜
    4.4.5  循環合併
    4.4.6  循環分佈
  4.5  近似仿射循環變換
    4.5.1  循環分塊
    4.5.2  循環分段
    4.5.3  循環展開壓緊
  4.6  代碼生成過程中的循環變換
    4.6.1  分塊分離
    4.6.2  循環展開
    4.6.3  其他循環變換
  4.7  循環壓緊
第5章  開發並行性
  5.1  利用多面體模型發掘數據並行
  5.2  複雜的分塊形狀
    5.2.1  交叉分塊
    5.2.2  分裂分塊
    5.2.3  鑽石分塊
    5.2.4  六角形分塊
  5.3  Feautrier調度演算法
    5.3.1  一維時間表示的調度計算
    5.3.2  多維時間表示的調度計算
  5.4  開發向量化

    5.4.1  可向量化Codelet
    5.4.2  利於向量化的調度演算法
  5.5  面向分散式存儲結構的並行
    5.5.1  構造通信數據集
    5.5.2  通信優化
第6章  挖掘局部性
  6.1  金字塔形存儲層次結構之外的挑戰
  6.2  面向不同優化目標的循環合併策略
    6.2.1  基於依賴圖的循環合併演算法
    6.2.2  拆分弱連通圖
    6.2.3  合併強連通分量
  6.3  循環合併與循環分塊的組合
    6.3.1  先合併後分塊
    6.3.2  分塊后再合併
    6.3.3  提升高速緩存的使用率
  6.4  數據空間變換
    6.4.1  間接數據空間變換
    6.4.2  顯式數據空間變換
  6.5  提升局部性的調度優化
    6.5.1  循環分塊后的重新調度
    6.5.2  面向數據訪存連續性的調度優化
  6.6  數組壓縮
    6.6.1  內存競爭關係
    6.6.2  劃分數據空間
    6.6.3  代價模型
第7章  代碼生成
  7.1  一個比輸出指令序列更複雜的任務
  7.2  代碼生成方法
    7.2.1  凸包演算法
    7.2.2  分割演算法
  7.3  分割代碼生成
    7.3.1  for循環生成
    7.3.2  if語句的生成位置
    7.3.3  循環展開
    7.3.4  分塊分離
    7.3.5  循環退化
    7.3.6  帶偏移的跨步循環
  7.4  if控制流優化
  7.5  內存管理
    7.5.1  CPU與GPU間的傳輸
    7.5.2  內存提升
  7.6  同步指令
第8章  多面體編譯理論的最新進展
  8.1  MLIR
    8.1.1  MLIR基本概念
    8.1.2  與多面體模型的集成
  8.2  Halide
    8.2.1  Halide設計理念
    8.2.2  Halide調度樹
  8.3  Tiramisu

  8.4  Tensor Comprehensions
  8.5  AKG
  8.6  面向Tensor Core的自動代碼生成
參考文獻

  • 商品搜索:
  • | 高級搜索
首頁新手上路客服中心關於我們聯絡我們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