注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當前位置: 首頁出版圖書科學技術計算機/網(wǎng)絡計算機科學理論與基礎知識大模型動力引擎:PyTorch性能與顯存優(yōu)化手冊

大模型動力引擎:PyTorch性能與顯存優(yōu)化手冊

大模型動力引擎:PyTorch性能與顯存優(yōu)化手冊

定 價:¥89.00

作 者: 張愛玲、楊占略
出版社: 清華大學出版社
叢編項:
標 簽: 暫缺

購買這本書可以去


ISBN: 9787302673477 出版時間: 2024-10-01 包裝: 平裝
開本: 16開 頁數(shù): 字數(shù):  

內容簡介

  本書致力于探索如何在大規(guī)模深度學習模型訓練中,最大限度地提高性能和優(yōu)化顯存使 用。本書面向深度學習從業(yè)者,尤其是希望深入了解并提升模型訓練效率的工程師與研究 人員。隨著深度學習模型和數(shù)據(jù)規(guī)模的迅速增長,如何高效利用硬件資源,減少訓練時間, 成為當前AI系統(tǒng)工程的關鍵挑戰(zhàn)。本書從硬件和軟件的基礎知識入手,逐步引導讀者理解 和掌握PyTorch的優(yōu)化技巧。內容涵蓋從單機到分布式訓練,從顯存管理到性能分析的多種 優(yōu)化策略,力求通過豐富的代碼實例和深入的原理講解,使讀者能夠在實踐中靈活應用這些 方法。

作者簡介

  張愛玲,本科畢業(yè)于清華大學電子工程系,后在美國伊利諾伊大學香檳分校獲得計算機科學碩士學位,是AI系統(tǒng)工程領域的資深技術專家。作為深度學習框架PyTorch核心團隊成員,參與了多個關鍵組件的研發(fā)與優(yōu)化工作。同時,她作為技術負責人主導了PyTorch/XLA和Taichi編譯器等多個具有廣泛影響力的開源項目。目前在工業(yè)界專注于大規(guī)模語言模型訓練的基礎設施開發(fā)與性能優(yōu)化工作。楊占略,清華大學本科,哥倫比亞大學碩士,資深技術專家。曾先后任職于蘋果、百度、太極圖形公司,分別從事深度學習推理框架、訓練框架PaddlePaddle以及Taichi編譯器的開發(fā)?,F(xiàn)就職于大疆公司,聚焦于端側模型優(yōu)化、推理部署相關工作。

圖書目錄

第1章 歡迎來到這場大模型競賽 1
1.1 模型規(guī)模帶來的挑戰(zhàn) 2
1.2 數(shù)據(jù)規(guī)模帶來的挑戰(zhàn) 3
1.3 模型規(guī)模與數(shù)據(jù)增長的應對方法 4
第2章 深度學習的硬件知識 6
2.1 CPU與內存 7
2.1.1 內存 7
2.1.2 CPU 9
2.2 硬盤 11
2.3 GPU 13
2.3.1 CPU的局限性 13
2.3.2 GPU的硬件結構 14
2.3.3 GPU編程模型及其硬件對應 18
2.3.4 GPU的關鍵性能指標 19
2.3.5 顯存與內存間的數(shù)據(jù)傳輸 19
2.4 分布式系統(tǒng) 22
2.4.1 單機多卡的通信 22
2.4.2 多機多卡的通信 24
2.4.3 分布式系統(tǒng)的數(shù)據(jù)存儲 24
第3章 深度學習的PyTorch知識 26
3.1 PyTorch 的張量數(shù)據(jù)結構 27
3.1.1 張量的基本屬性及創(chuàng)建 27
3.1.2 訪問張量的數(shù)據(jù) 28
3.1.3 張量的存儲方式 29
3.1.4 張量的視圖 32
3.2 PyTorch中的算子 33
3.2.1 PyTorch的算子庫 33
3.2.2 PyTorch算子的內存分配 35
3.2.3 算子的調用過程 36
3.3 PyTorch的動態(tài)圖機制 38
3.4 PyTorch的自動微分系統(tǒng) 41
3.4.1 什么是自動微分 41
3.4.2 自動微分的實現(xiàn) 42
3.4.3 Autograd 擴展自定義算子 46
3.5 PyTorch的異步執(zhí)行機制 47
第4章 定位性能瓶頸的工具和方法 51
4.1 配置性能分析所需的軟硬件環(huán)境 52
4.1.1 減少無關程序的干擾 52
4.1.2 提升PyTorch 程序的可重復性 53
4.1.3 控制GPU頻率 58
4.1.4 控制CPU的性能狀態(tài)和工作頻率 59
4.2 精確測量程序運行時間 60
4.2.1 計量CPU程序的運行時間 60
4.2.2 程序預熱和多次運行取平均 61
4.2.3 計量GPU程序的運行時間 62
4.2.4 精確計量GPU的運行時間 63
4.3 PyTorch性能分析器 64
4.3.1 性能分析 65
4.3.2 顯存分析 66
4.3.3 可視化性能圖譜 67
4.3.4 如何定位性能瓶頸 67
4.4 GPU 專業(yè)分析工具 71
4.4.1 Nsight Systems 71
4.4.2 Nsight Compute 71
4.5 CPU 性能分析工具 75
4.5.1 Py-Spy 75
4.5.2 strace 77
4.6 本章小結 78
第5章 數(shù)據(jù)加載和預處理專題 80
5.1 數(shù)據(jù)接入的準備階段 81
5.2 數(shù)據(jù)集的獲取和預處理 82
5.2.1 獲取原始數(shù)據(jù) 82
5.2.2 原始數(shù)據(jù)的清洗 82
5.2.3 數(shù)據(jù)的離線預處理 84
5.2.4 數(shù)據(jù)的存儲 86
5.2.5 PyTorch與第三方庫的交互 88
5.3 數(shù)據(jù)集的加載和使用 89
5.3.1 PyTorch 的 Dataset 封裝 90
5.3.2 PyTorch 的 DataLoader 封裝 92
5.4 數(shù)據(jù)加載性能分析 93
5.4.1 充分利用CPU的多核資源 94
5.4.2 優(yōu)化CPU上的計算負載 95
5.4.3 減少不必要的CPU線程 96
5.4.4 提升磁盤效率 98
5.5 本章小結 99
第6章 單卡性能優(yōu)化專題 100
6.1 提高數(shù)據(jù)任務的并行度 101
6.1.1 增加數(shù)據(jù)預處理的并行度 101
6.1.2 使用異步接口提交數(shù)據(jù)傳輸任務 104
6.1.3 數(shù)據(jù)傳輸與GPU計算任務并行 106
6.2 提高GPU計算任務的效率 109
6.2.1 增大BatchSize 109
6.2.2 使用融合算子 113
6.3 減少CPU和GPU間的同步 116
6.4 降低程序中的額外開銷 118
6.4.1 避免張量的創(chuàng)建開銷 119
6.4.2 關閉不必要的梯度計算 121
6.5 有代價的性能優(yōu)化 123
6.5.1 使用低精度數(shù)據(jù)進行設備間拷貝 123
6.5.2 使用性能特化的優(yōu)化器實現(xiàn) 125
6.6 本章小結 128
第7章 單卡顯存優(yōu)化專題 129
7.1 PyTorch的顯存管理機制 130
7.2 顯存的分析方法 131
7.2.1 使用PyTorch API查詢當前顯存狀態(tài) 132
7.2.2 使用PyTorch的顯存分析器 133
7.3 訓練過程中的顯存占用 135
7.4 通用顯存復用方法 139
7.4.1 使用原位操作算子 139
7.4.2 使用共享存儲的操作 141
7.5 有代價的顯存優(yōu)化技巧 142
7.5.1 跨批次梯度累加 142
7.5.2 即時重算前向張量 144
7.5.3 將GPU顯存下放至CPU內存 145
7.5.4 降低優(yōu)化器的顯存占用 147
7.6 優(yōu)化Python代碼以減少顯存占用 149
7.6.1 Python 垃圾回收機制 150
7.6.2 避免出現(xiàn)循環(huán)依賴 150
7.6.3 謹慎使用全局作用域 152
7.7 本章小結 153
第8章 分布式訓練專題 155
8.1 分布式策略概述 157
8.2 集合通信原語 158
8.3 應對數(shù)據(jù)增長的并行策略 161
8.3.1 數(shù)據(jù)并行策略 161
8.3.2 手動實現(xiàn)數(shù)據(jù)并行算法 162
8.3.3 PyTorch的DDP封裝 165
8.3.4 數(shù)據(jù)并行的性價比 167
8.3.5 其他數(shù)據(jù)維度的切分 169
8.4 應對模型增長的并行策略 169
8.4.1 靜態(tài)顯存切分 170
8.4.2 動態(tài)顯存切分 172
8.5 本章小結 176
第9章 高級優(yōu)化方法專題 178
9.1 自動混合精度訓練 179
9.1.1 浮點數(shù)的表示方法 179
9.1.2 使用低精度數(shù)據(jù)類型的優(yōu)缺點 181
9.1.3 PyTorch 自動混合精度訓練 182
9.2 自定義高性能算子 185
9.2.1 自定義算子的封裝流程 185
9.2.2 自定義算子的后端代碼實現(xiàn) 186
9.2.3 自定義算子導入Python 188
9.2.4 自定義算子導入PyTorch 189
9.2.5 在Python中使用自定義算子 190
9.3 基于計算圖的性能優(yōu)化 191
9.3.1 torch.compile的使用方法 192
9.3.2 計算圖的提取 194
9.3.3 圖的優(yōu)化和后端代碼生成 196
9.4 本章小結 198
第10章 GPT-2優(yōu)化全流程 199
10.1 GPT模型結構簡介 200
10.2 實驗環(huán)境與機器配置 203
10.3 顯存優(yōu)化 203
10.3.1 基準模型 204
10.3.2 使用跨批次梯度累加 204
10.3.3 開啟即時重算前向張量 205
10.3.4 使用顯存友好的優(yōu)化器模式 205
10.3.5 使用分布式方法降低顯存占用—FSDP 206
10.3.6 顯存優(yōu)化小結 207
10.4 性能優(yōu)化 208
10.4.1 基準模型 209
10.4.2 增加 BatchSize 209
10.4.3 增加數(shù)據(jù)預處理的并行度 210
10.4.4 使用異步接口完成數(shù)據(jù)傳輸 211
10.4.5 使用計算圖優(yōu)化 211
10.4.6 使用float16混合精度訓練 212
10.4.7 (可選)使用自定義算子 213
10.4.8 使用單機多卡加速訓練 213
10.4.9 使用多機多卡加速訓練 214
10.4.10 性能優(yōu)化小結 215
結語 216

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) m.shuitoufair.cn 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號