注冊 | 登錄讀書好,好讀書,讀好書!
讀書網-DuShu.com
當前位置: 首頁出版圖書科學技術計算機/網絡軟件與程序設計程序設計綜合多面體編譯理論與深度學習實踐

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

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

定 價:¥138.00

作 者: 趙捷,李寶亮
出版社: 清華大學出版社
叢編項:
標 簽: 暫缺

購買這本書可以去


ISBN: 9787302616467 出版時間: 2022-11-01 包裝: 平裝
開本: 16開 頁數(shù): 字數(shù):  

內容簡介

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

作者簡介

  趙捷,2009年于清華大學獲得工學學士學位,2018年于法國巴黎高等師范學校獲得工學博士學位,現(xiàn)就職于數(shù)學工程與先進計算國家重點實驗室。趙捷博士長期從事編譯器高級優(yōu)化和代碼生成方面的研究,目前主要從事深度學習編譯器的研究。李寶亮,2009年于清華大學獲工學學士學位,2014年赴加拿大麥吉爾大學交流訪問,2015年于國防科學技術大學獲工學博士學位。李寶亮博士長期從事體系結構性能分析優(yōu)化方面的研究,目前主要從事深度學習專用加速芯片的研制和相關系統(tǒng)軟件和編程語言的開發(fā)。

圖書目錄

目錄

第 1章體系結構發(fā)展對編譯技術的影響 1

1.1面向經典體系結構的性能優(yōu)化 .1

1.1.1并行性發(fā)掘 .1

1.1.2存儲層次結構3

1.1.3領域專用架構4

1.1.2編譯器面臨的挑戰(zhàn)7

1.2.1并行性發(fā)掘 .8

1.2.2局部性發(fā)掘 .10

1.2.3編程模型和抽象層次11

1.3循環(huán)優(yōu)化的數(shù)學抽象 12

1.3.1多面體模型的基本概念 12

1.3.2多面體模型在編譯器中的應用 15

1.3.3基于多面體模型的編譯流程16

第 2章程序抽象表示基礎 .25

2.1抽象表示在編譯器中發(fā)揮的作用25

2.2整數(shù)集合與仿射函數(shù) 28

2.2.1靜態(tài)仿射約束28

2.2.2整數(shù)集合 29

2.2.3仿射函數(shù) 32

2.2.4集合與映射的運算 .34

2.3 Fourier-Motzkin消去法38

2.4調度樹 41

2.4.1調度的表示方式 41

2.4.2調度樹的結點44

2.4.3調度樹的操作47

2.4.4調度表示的比較 49

2.5抽象語法樹50

2.5.1被執(zhí)行關系 .50

2.5.2上下文信息 .51

2.5.3結點和表達式52

2.6各種抽象的工程實現(xiàn) 53

2.6.1整數(shù)集合和仿射函數(shù)的實現(xiàn)54

2.6.2調度樹的實現(xiàn)58

2.6.3抽象語法樹的實現(xiàn) .59

第 3章依賴關系分析 61

3.1依賴關系分析在編譯優(yōu)化中的作用 61

3.2依賴及其性質 62

3.2.1依賴的分類 .65

3.2.2距離向量與方向向量66

3.2.3循環(huán)無關依賴和循環(huán)攜帶依賴 67

3.2.4依賴與變換 .68

3.2.5依賴的復雜性69

3.3依賴測試 .72

3.3.1精確測試與保守測試73

3.3.2 ZIV測試 74

3.3.3 SIV測試 74

3.3.4 GCD測試 78

3.3.5 Banerjee測試 .79

3.3.6 I測試.80

3.4耦合下標依賴測試82

3.4.1擴展的 GCD測試 .83

3.4.2 ζ測試 84

3.4.3 Delta測試 85

3.4.4 Omega測試86

3.5特殊的依賴測試 .89

3.5.1 D測試 .89

3.5.2 Range依賴測試 90

3.6數(shù)據流分析91

3.6.1精確數(shù)據流分析 93

3.6.2近似數(shù)據流分析 96

3.6.3帶標記的數(shù)據流分析98

3.7依賴與并行化 99

第 4章循環(huán)變換.103

4.1適配體系結構特征的關鍵技術 . 103

4.2預處理 104

4.2.1循環(huán)正規(guī)化 . 104

4.2.2死代碼刪除 . 105

4.2.3別名分析 106

4.2.4迭代空間分裂 106

4.3多面體模型中的循環(huán)變換 107

4.3.1循環(huán)變換分類 108

4.3.2循環(huán)變換的復雜性 . 109

4.3.3 Pluto調度算法 . 113

4.4仿射循環(huán)變換 124

4.4.1循環(huán)交換 124

4.4.2循環(huán)反轉 126

4.4.3循環(huán)延展 127

4.4.4循環(huán)傾斜 128

4.4.5循環(huán)合并 130

4.4.6循環(huán)分布 131

4.5近似仿射循環(huán)變換 133

4.5.1循環(huán)分塊 133

4.5.2循環(huán)分段 135

4.5.3循環(huán)展開壓緊 137

4.6代碼生成過程中的循環(huán)變換 139

4.6.1分塊分離 139

4.6.2循環(huán)展開 140

4.6.3其他循環(huán)變換 141

4.7循環(huán)壓緊 . 141

第 5章開發(fā)并行性 .143

5.1利用多面體模型發(fā)掘數(shù)據并行 . 143

5.2復雜的分塊形狀 . 144

5.2.1交叉分塊 144

5.2.2分裂分塊 146

5.2.3鉆石分塊 149

5.2.4六角形分塊 . 151

5.3 Feautrier調度算法. 153

5.3.1一維時間表示的調度計算 . 153

5.3.2多維時間表示的調度計算 . 159

5.4開發(fā)向量化 164

5.4.1可向量化 Codelet 165

5.4.2利于向量化的調度算法 166

5.5面向分布式存儲結構的并行 172

5.5.1構造通信數(shù)據集 173

5.5.2通信優(yōu)化 176

第 6章挖掘局部性 .179

6.1金字塔形存儲層次結構之外的挑戰(zhàn) 179

6.2面向不同優(yōu)化目標的循環(huán)合并策略 180

6.2.1基于依賴圖的循環(huán)合并算法 181

6.2.2拆分弱連通圖 183

6.2.3合并強連通分量 184

6.3循環(huán)合并與循環(huán)分塊的組合 185

6.3.1先合并后分塊 186

6.3.2分塊后再合并 189

6.3.3提升高速緩存的使用率 192

6.4數(shù)據空間變換 195

6.4.1間接數(shù)據空間變換 . 195

6.4.2顯式數(shù)據空間變換 . 198

6.5提升局部性的調度優(yōu)化 . 202

6.5.1循環(huán)分塊后的重新調度 202

6.5.2面向數(shù)據訪存連續(xù)性的調度優(yōu)化 . 203

6.6數(shù)組壓縮 . 213

6.6.1內存競爭關系 213

6.6.2劃分數(shù)據空間 215

6.6.3代價模型 218

第 7章代碼生成.221

7.1一個比輸出指令序列更復雜的任務 221

7.2代碼生成方法 222

7.2.1凸包算法 222

7.2.2分割算法 224

7.3分割代碼生成 227

7.3.1 for循環(huán)生成 . 228

7.3.2 if語句的生成位置 . 234

7.3.3循環(huán)展開 234

7.3.4分塊分離 . 236

7.3.5循環(huán)退化 237

7.3.6帶偏移的跨步循環(huán) . 238

7.4 if控制流優(yōu)化. 239

7.5內存管理 . 240

7.5.1 CPU與 GPU間的傳輸 . 241

7.5.2內存提升 243

7.6同步指令 . 245

第 8章多面體編譯理論的最新進展 247

8.1 MLIR . 247

8.1.1 MLIR基本概念 249

8.1.2與多面體模型的集成 253

8.2 Halide. 258

8.2.1 Halide設計理念 259

8.2.2 Halide調度樹 . 260

8.3 Tiramisu . 265

8.4 Tensor Comprehensions 270

8.5 AKG. 275

8.6面向 Tensor Core的自動代碼生成 280

參考文獻 .285


本目錄推薦

掃描二維碼
Copyright ? 讀書網 www.afriseller.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網安備 42010302001612號