定 價(jià):¥79.00
作 者: | 麥絡(luò),董豪 |
出版社: | 清華大學(xué)出版社 |
叢編項(xiàng): | |
標(biāo) 簽: | 暫缺 |
ISBN: | 9787302630074 | 出版時(shí)間: | 2023-05-01 | 包裝: | 平裝 |
開本: | 16開 | 頁(yè)數(shù): | 字?jǐn)?shù): |
基礎(chǔ)篇
第1章 導(dǎo)論 003
1.1 機(jī)器學(xué)習(xí)應(yīng)用 003
1.2 機(jī)器學(xué)習(xí)框架的設(shè)計(jì)目標(biāo) 004
1.3 機(jī)器學(xué)習(xí)框架的基本組成原理 005
1.4 機(jī)器學(xué)習(xí)系統(tǒng)生態(tài) 006
1.5 本書結(jié)構(gòu)和讀者對(duì)象 007
第2章 編程模型 009
2.1 機(jī)器學(xué)習(xí)系統(tǒng)編程模型的演進(jìn) 009
2.2 機(jī)器學(xué)習(xí)工作流 011
2.2.1 環(huán)境配置 011
2.2.2 數(shù)據(jù)處理 012
2.2.3 模型定義 013
2.2.4 損失函數(shù)和優(yōu)化器 014
2.2.5 訓(xùn)練及保存模型 015
2.2.6 測(cè)試和驗(yàn)證 016
2.3 定義深度神經(jīng)網(wǎng)絡(luò) 017
2.3.1 以層為核心定義神經(jīng)網(wǎng)絡(luò) 017
2.3.2 神經(jīng)網(wǎng)絡(luò)層的實(shí)現(xiàn)原理 021
2.3.3 自定義神經(jīng)網(wǎng)絡(luò)層 022
2.3.4 自定義神經(jīng)網(wǎng)絡(luò)模型 023
2.4 C/C++編程接口 024
2.4.1 在Python中調(diào)用C/C++函數(shù)的原理 025
2.4.2 添加C++編寫的自定義算子 025
2.5 機(jī)器學(xué)習(xí)框架的編程范式 030
2.5.1 機(jī)器學(xué)習(xí)框架編程需求 030
2.5.2 機(jī)器學(xué)習(xí)框架編程范式現(xiàn)狀 030
2.5.3 函數(shù)式編程案例 031
2.6 總結(jié) 032
2.7 拓展閱讀 032
第3章 計(jì)算圖 033
3.1 設(shè)計(jì)背景和作用 033
3.2 計(jì)算圖的基本構(gòu)成 034
3.2.1 張量和算子 035
3.2.2 計(jì)算依賴 037
3.2.3 控制流 038
3.2.4 基于鏈?zhǔn)椒▌t計(jì)算梯度 041
3.3 計(jì)算圖的生成 043
3.3.1 靜態(tài)生成 043
3.3.2 動(dòng)態(tài)生成 046
3.3.3 動(dòng)態(tài)圖和靜態(tài)圖生成的比較 048
3.3.4 動(dòng)態(tài)圖與靜態(tài)圖的轉(zhuǎn)換和融合 049
3.4 計(jì)算圖的調(diào)度 051
3.4.1 算子調(diào)度執(zhí)行 051
3.4.2 串行與并行 052
3.4.3 數(shù)據(jù)載入同步與異步機(jī)制 053
3.5 總結(jié) 054
3.6 拓展閱讀 055
進(jìn)階篇
第4章 AI 編譯器和前端技術(shù) 059
4.1 AI編譯器設(shè)計(jì)原理 059
4.2 AI編譯器前端技術(shù)概述 061
4.3 中間表示 062
4.3.1 中間表示的基本概念 062
4.3.2 中間表示的種類 063
4.3.3 機(jī)器學(xué)習(xí)框架的中間表示 065
4.4 自動(dòng)微分 072
4.4.1 自動(dòng)微分的基本概念 072
4.4.2 前向與反向自動(dòng)微分 074
4.4.3 自動(dòng)微分的實(shí)現(xiàn) 077
4.5 類型系統(tǒng)和靜態(tài)分析 081
4.5.1 類型系統(tǒng)概述 081
4.5.2 靜態(tài)分析概述 082
4.6 常見(jiàn)前端編譯優(yōu)化方法 083
4.6.1 前端編譯優(yōu)化簡(jiǎn)介 083
4.6.2 常見(jiàn)編譯優(yōu)化方法介紹及實(shí)現(xiàn) 083
4.7 總結(jié) 085
第5章 AI 編譯器后端和運(yùn)行時(shí) 086
5.1 概述 086
5.2 計(jì)算圖優(yōu)化 088
5.2.1 通用硬件優(yōu)化 088
5.2.2 特定硬件優(yōu)化 090
5.3 算子選擇 091
5.3.1 算子選擇的基礎(chǔ)概念 091
5.3.2 算子選擇的過(guò)程 095
5.4 內(nèi)存分配 095
5.4.1 Device內(nèi)存概念 096
5.4.2 內(nèi)存分配 096
5.4.3 內(nèi)存復(fù)用 098
5.4.4 常見(jiàn)的內(nèi)存分配優(yōu)化手段 099
5.5 計(jì)算調(diào)度與執(zhí)行 101
5.5.1 單算子調(diào)度 101
5.5.2 計(jì)算圖調(diào)度 102
5.5.3 交互式執(zhí)行 106
5.5.4 下沉式執(zhí)行 110
5.6 算子編譯器 110
5.6.1 算子調(diào)度策略 111
5.6.2 子策略組合優(yōu)化 112
5.6.3 調(diào)度空間算法優(yōu)化 114
5.6.4 芯片指令集適配 115
5.6.5 算子表達(dá)能力 116
5.6.6 相關(guān)編譯優(yōu)化技術(shù) 117
5.7 總結(jié) 117
5.8 拓展閱讀 118
第6章 硬件加速器 119
6.1 概述 119
6.1.1 硬件加速器設(shè)計(jì)的意義 119
6.1.2 硬件加速器設(shè)計(jì)的思路 119
6.2 硬件加速器基本組成原理 120
6.2.1 硬件加速器的架構(gòu) 120
6.2.2 硬件加速器的存儲(chǔ)單元 121
6.2.3 硬件加速器的計(jì)算單元 122
6.2.4 DSA芯片架構(gòu) 124
6.3 加速器基本編程原理 125
6.3.1 硬件加速器的可編程性 125
6.3.2 硬件加速器的多樣化編程方法 128
6.4 加速器實(shí)踐 132
6.4.1 環(huán)境 132
6.4.2 廣義矩陣乘法的樸素實(shí)現(xiàn) 133
6.4.3 提高計(jì)算強(qiáng)度 135
6.4.4 使用共享內(nèi)存緩存復(fù)用數(shù)據(jù) 138
6.4.5 減少寄存器使用 139
6.4.6 隱藏共享內(nèi)存讀取延遲 140
6.4.7 隱藏全局內(nèi)存讀取延遲 141
6.4.8 與cuBLAS對(duì)比 142
6.4.9 小結(jié) 143
6.5 總結(jié) 143
6.6 拓展閱讀 144
第7章 數(shù)據(jù)處理 145
7.1 概述 146
7.1.1 易用性 146
7.1.2 高效性 147
7.1.3 保序性 147
7.2 易用性設(shè)計(jì) 147
7.2.1 編程抽象與接口 147
7.2.2 自定義算子支持 151
7.3 高效性設(shè)計(jì) 153
7.3.1 數(shù)據(jù)讀取的高效性 154
7.3.2 數(shù)據(jù)計(jì)算的高效性 157
7.4 保序性設(shè)計(jì) 162
7.5 單機(jī)數(shù)據(jù)處理性能的擴(kuò)展 163
7.5.1 基于異構(gòu)計(jì)算的數(shù)據(jù)預(yù)處理 163
7.5.2 基于分布式的數(shù)據(jù)預(yù)處理 165
7.6 總結(jié) 166
第8章 模型部署 168
8.1 概述 168
8.2 訓(xùn)練模型到推理模型的轉(zhuǎn)換及優(yōu)化 169
8.2.1 模型轉(zhuǎn)換 169
8.2.2 算子融合 170
8.2.3 算子替換 172
8.2.4 算子重排 173
8.3 模型壓縮 173
8.3.1 量化 174
8.3.2 模型稀疏 176
8.3.3 知識(shí)蒸餾 178
8.4 模型推理 179
8.4.1 前處理與后處理 179
8.4.2 并行計(jì)算 180
8.4.3 算子優(yōu)化 181
8.5 模型的安全保護(hù) 186
8.5.1 概述 186
8.5.2 模型混淆 186
8.6 總結(jié) 188
8.7 拓展閱讀 189
第9章 分布式訓(xùn)練 190
9.1 設(shè)計(jì)概述 190
9.1.1 設(shè)計(jì)動(dòng)機(jī) 190
9.1.2 系統(tǒng)架構(gòu) 191
9.1.3 用戶益處 192
9.2 實(shí)現(xiàn)方法 192
9.2.1 方法分類 192
9.2.2 數(shù)據(jù)并行 194
9.2.3 模型并行 194
9.2.4 混合并行 197
9.3 流水線并行 197
9.4 機(jī)器學(xué)習(xí)集群架構(gòu) 198
9.5 集合通信 200
9.5.1 常見(jiàn)集合通信算子 200
9.5.2 基于AllReduce的梯度平均算法 203
9.5.3 集合通信算法性能分析 205
9.5.4 利用集合通信優(yōu)化模型訓(xùn)練的實(shí)踐 206
9.5.5 集合通信在數(shù)據(jù)并行的實(shí)踐 207
9.5.6 集合通信在混合并行的實(shí)踐 208
9.6 參數(shù)服務(wù)器 210
9.6.1 系統(tǒng)架構(gòu) 210
9.6.2 異步訓(xùn)練 211
9.6.3 數(shù)據(jù)副本 212
9.7 總結(jié) 212
9.8 拓展閱讀 213
拓展篇
第10章 聯(lián)邦學(xué)習(xí)系統(tǒng) 217
10.1 概述 217
10.1.1 定義 217
10.1.2 應(yīng)用場(chǎng)景 217
10.1.3 部署場(chǎng)景 218
10.1.4 常用框架 218
10.2 橫向聯(lián)邦學(xué)習(xí) 219
10.2.1 云云場(chǎng)景中的橫向聯(lián)邦 219
10.2.2 端云場(chǎng)景中的橫向聯(lián)邦 220
10.3 縱向聯(lián)邦學(xué)習(xí) 222
10.3.1 縱向聯(lián)邦架構(gòu) 222
10.3.2 樣本對(duì)齊 223
10.3.3 聯(lián)合訓(xùn)練 224
10.4 隱私加密算法 225
10.4.1 基于LDP算法的安全聚合 226
10.4.2 基于MPC算法的安全聚合 226
10.4.3 基于LDP-SignDS算法的安全聚合 227
10.5 展望 229
10.5.1 異構(gòu)場(chǎng)景下的聯(lián)邦學(xué)習(xí) 229
10.5.2 通信效率提升 230
10.5.3 聯(lián)邦生態(tài) 230
10.6 總結(jié) 231