從RTL級代碼剖析FPGA加速大模型訓練與推理
蘇宏博、王春蕾
- 出版商: 清華大學
- 出版日期: 2026-01-01
- 售價: $774
- 語言: 簡體中文
- ISBN: 7302704821
- ISBN-13: 9787302704829
-
相關分類:
FPGA、DeepLearning
尚未上市,歡迎預購
買這商品的人也買了...
-
Effective STL: 50 Specific Ways to Improve Your Use of the Standard Template Library (Paperback)$2,100$1,995 -
編譯系統設計 (Compilers: Principles, Techniques, and Tools, 2/e)$960$864 -
作業系統精論, 9/e (授權經銷版)$700$665 -
$354並行演算法設計與性能優化 -
$534深入淺出 HTTPS : 從原理到實戰 -
提升程式設計師的面試力|189道面試題目與解答, 6/e (Cracking the Coding Interview : 189 Programming Questions and Solutions, 6/e)$880$695 -
C and C++ Under the Hood (Paperback)$1,190$1,131 -
$658精通 Linux 內核智能設備開發核心技術 -
$673用“芯”探核基於龍芯的 Linux 內核探索解析 -
System Design Interview – An Insider's Guide (Paperback)$1,650$1,568 -
徵服 C指針, 2/e$594$564 -
算法競賽入門經典 — 訓練指南 (升級版)$708$673 -
$505CPU 設計實戰 -
Demystified Object-Oriented Programming with C++: Implement proven object-oriented design principles to write better code and create robust software$1,680$1,596 -
$505極限黑客攻防:CTF 賽題揭秘 -
$356數據庫程序員面試筆試通關寶典 -
$615算法訓練營:海量圖解 + 競賽刷題 (入門篇) -
$658C++20 編程技巧:98個問題解決方案示例, 2/e (C++20 Recipes: A Problem-Solution Approach, 2/e) -
C++ 新經典:模板與泛型編程$534$507 -
$359程序員的制勝技 -
Linux 源碼趣讀$948$901 -
CPU 眼裡的 C/C++$534$507 -
$528供應鏈風暴:美國制造業回流與全球競爭新格局 -
$408RTL 設計師面試攻略 (芯片從設計到交付的全流程) -
$354編譯原理及實踐:ARM架構處理器視角
商品描述
作者簡介
目錄大綱
目 錄
第 1 部分 FPGA與深度學習基礎
第 1 章 FPGA與Verilog HDL基礎 2
1.1 FPGA的基本架構與計算特性 2
1.1.1 FPGA的基本架構:LUT、BRAM、DSP與互連 2
1.1.2 FPGA的並行計算特性及其相較於GPU、CPU的優勢 4
1.1.3 FPGA在深度學習中的主要應用場景 6
1.2 Verilog HDL基礎:從硬件描述到綜合 7
1.2.1 Verilog HDL的基本語法與結構 8
1.2.2 組合邏輯、時序邏輯與有限狀態機(FSM)設計 18
1.2.3 FPGA綜合優化:面積、速度與功耗的權衡 21
1.3 FPGA設計流程與EDA工具鏈 23
1.3.1 從RTL到Bitstream:FPGA的基本設計流程 24
1.3.2 Vivado、Quartus與Synplify:主流EDA工具解析 26
1.3.3 FPGA硬件仿真、調試與後端實現 29
1.4 FPGA存儲架構與數據優化 31
1.4.1 FPGA內存體系:BRAM、SRAM、DDR與HBM 32
1.4.2 數據搬移優化:DMA、AXI總線與片上緩存策略 33
1.4.3 計算資源優化:流水線、並行計算與算子融合 34
1.5 FPGA、ASIC與GPU:AI計算加速方案對比 35
1.5.1 GPU加速大模型計算的特點與限制 35
1.5.2 ASIC在AI計算中的優勢 36
1.5.3 FPGA的靈活性與計算優化能力對比 36
1.6 本章小結 38
1.7 思考題 38
第 2 章 從早期神經網絡到深度學習 40
2.1 神經網絡的基本概念 40
2.1.1 感知機與多層感知機 40
2.1.2 反向傳播算法與梯度下降 42
2.1.3 神經網絡的收斂性與計算復雜度 43
2.2 卷積神經網絡計算特性 43
2.2.1 CNN的基本架構:卷積、池化與全連接層 43
2.2.2 CNN在計算中的主要瓶頸:存儲與計算密集型任務 48
2.2.3 CNN加速策略:Winograd變換、FFT與剪枝 49
2.3 遞歸神經網絡與自註意力機制 53
2.3.1 RNN、LSTM與GRU的結構與計算特點 53
2.3.2 註意力機制的引入與改進 54
2.3.3 自註意力機制與Transformer架構 54
2.4 Transformer架構的計算特性 56
2.4.1 Transformer的基本計算流程與並行計算特點 57
2.4.2 多頭註意力與矩陣運算優化 60
2.4.3 位置編碼計算 64
2.5 深度學習計算的FPGA優化思路 67
2.5.1 計算圖的硬件實現 67
2.5.2 數據復用、帶寬優化與低比特量化計算 71
2.6 本章小結 74
2.7 思考題 75
第 3 章 深度學習計算加速的基本思路 76
3.1 硬件加速基礎:並行計算與流水線優化 76
3.1.1 數據流架構與計算優化 76
3.1.2 計算任務的並行化與時序優化 77
3.1.3 指令級並行與數據級並行在FPGA中的實現 78
3.2 FPGA在神經網絡計算中的優化策略 82
3.2.1 計算任務拆分:時間復用與空間復用 82
3.2.2 低精度計算(INT8、FP16、BF16)在FPGA上的實現 84
3.2.3 內存優化:權重壓縮與稀疏矩陣計算 87
3.3 模型剪枝與量化技術 91
3.3.1 模型剪枝技術與硬件映射 91
3.3.2 量化感知訓練與訓練後量化 93
3.4 大規模計算的存儲優化 96
3.4.1 片上緩存與數據復用策略 96
3.4.2 DDR、HBM帶寬優化:預取與訪存調度 97
3.4.3 計算-存儲協同優化策略 100
3.4.4 深度學習編譯器與FPGA加速 100
3.4.5 TVM、XLA與OneAPI:神經網絡編譯優化 101
3.4.6 HLS與RTL優化的對比 104
3.5 本章小結 108
3.6 思考題 108
第 2 部分 FPGA在大模型加速中的應用
第 4 章 Transformer模型的硬件加速 112
4.1 Transformer的計算瓶頸分析 112
4.1.1 自註意力機制的計算復雜度 112
4.1.2 前饋神經網絡與矩陣乘法加速 113
4.1.3 KV緩存與存儲優化 118
4.2 FPGA在Transformer計算中的應用 121
4.2.1 矩陣乘法優化:Tile-Based Computation 121
4.2.2 自註意力計算的硬件優化 121
4.2.3 FPGA在低比特Transformer中的應用 122
4.3 大模型推理的硬件優化策略 126
4.3.1 動態批處理與推理加速 126
4.3.2 低精度推理(BF16、INT8)在FPGA上的實現 127
4.3.3 計算-通信協同優化——流水線並行 131
4.4 本章小結 131
4.5 思考題 132
第 5 章 FPGA在大模型訓練中的應用 133
5.1 訓練任務的計算特性 133
5.1.1 訓練與推理:計算模式的區別 133
5.1.2 計算密集型與存儲密集型任務分析 134
5.2 反向傳播的硬件優化 134
5.2.1 誤差反向傳播計算的矩陣運算特性 135
5.2.2 梯度計算與權重更新的優化策略 135
5.2.3 使用FPGA高效實現自動微分 136
5.3 FPGA在大規模訓練中的優勢 139
5.3.1 低延遲計算的硬件實現 139
5.3.2 片上並行流水線訓練優化 141
5.3.3 數據搬移與訪存優化 146
5.3.4 訓練數據流的批處理與調度策略 148
5.3.5 計算-存儲比優化:減少訪存瓶頸 151
5.3.6 FPGA與GPU協同訓練的應用 154
5.4 本章小結 155
5.5 思考題 155
第 6 章 FPGA在異構計算架構中的角色 157
6.1 FPGA、CPU與GPU協同計算架構 157
6.1.1 異構計算的基本概念與挑戰 157
6.1.2 FPGA作為協處理器的計算任務分配 158
6.1.3 低延遲數據交換機制 160
6.2 高速互連技術與數據傳輸優化 164
6.2.1 PCIe、NVLink與CCIX的對比分析 164
6.2.2 FPGA的數據傳輸優化方案 166
6.3 本章小結 168
6.4 思考題 169
第 7 章 模型壓縮與量化技術 170
7.1 模型剪枝技術 170
7.1.1 結構化剪枝與非結構化剪枝 170
7.1.2 剪枝算法與硬件映射優化 171
7.1.3 剪枝在FPGA計算中的適配性 173
7.2 低比特量化在FPGA上的實現 174
7.2.1 INT8、FP16、BF16的硬件實現區別 174
7.2.2 量化感知訓練與傳統量化方法 176
7.2.3 量化計算對FPGA資源使用的影響 178
7.3 知識蒸餾加速推理 178
7.3.1 知識蒸餾的基本原理 178
7.3.2 輕量級子模型的訓練與部署 179
7.3.3 知識蒸餾在硬件加速中的應用 181
7.4 模型壓縮在FPGA推理中的應用 183
7.4.1 大規模Transformer模型的存儲優化 184
7.4.2 稀疏計算在FPGA上的實現方案 184
7.4.3 FPGA如何支持動態精度計算 186
7.5 大模型推理中的帶寬優化 189
7.5.1 存儲與計算的權衡 189
7.5.2 內存管理優化策略 190
7.5.3 FPGA的片上存儲架構優化 192
7.6 本章小結 193
7.7 思考題 193
第 8 章 面向FPGA的深度學習編譯器 195
8.1 深度學習編譯器概述 195
8.1.1 TVM、XLA、TensorRT的對比分析 195
8.1.2 計算圖優化與硬件後端映射 196
8.1.3 編譯器在FPGA計算優化中的作用 198
8.2 高層次綜合與RTL優化 202
8.2.1 HLS編程與RTL設計:適用場景分析 203
8.2.2 HLS自動優化策略 203
8.2.3 RTL的手工優化方法 204
8.3 FPGA編譯優化的關鍵技術 207
8.3.1 硬件計算圖 207
8.3.2 計算任務的自動劃分與映射 207
8.4 面向FPGA的端到端編譯框架 212
8.4.1 TVM的FPGA後端優化 212
8.4.2 MLIR在FPGA計算中的應用 214
8.4.3 自動化硬件映射與性能調優 218
8.5 本章小結 220
8.6 思考題 221
第 3 部分 FPGA加速實戰與優化策略
第 9 章 FPGA加速大模型訓練實戰應用 224
9.1 訓練過程的計算挑戰 224
9.1.1 訓練中的計算密集型任務與存儲瓶頸 224
9.1.2 反向傳播的計算特性與優化思路 229
9.1.3 計算圖優化對硬件加速的影響 233
9.2 FPGA在大規模梯度計算中的應用 237
9.2.1 矩陣乘法優化:基於切塊的計算 237
9.2.2 低精度計算 240
9.2.3 動態計算優化 244
9.3 FPGA的片上訓練架構優化 249
9.3.1 數據復用與流水線優化策略 249
9.3.2 計算-存儲協同優化:帶寬與延遲的平衡 253
9.3.3 訓練任務的硬件分布式調度 256
9.4 FPGA在分布式訓練中的應用 258
9.4.1 FPGA-CPU-GPU協同計算訓練架構 258
9.4.2 FPGA支持的混合並行訓練策略 258
9.4.3 高速互連技術在訓練中的優化 263
9.5 本章小結 266
9.6 思考題 266
第 10 章 FPGA加速大模型推理實戰應用 268
10.1 推理任務的特點與硬件加速需求 268
10.1.1 推理過程中的計算與延遲要求 268
10.1.2 內存和存儲帶寬的優化問題 269
10.1.3 在FPGA上的推理架構選擇 273
10.1.4 使用HLS完成模型推理與訓練的差異化設計 274
10.2 采用HLS實現深度學習推理加速 279
10.2.1 Vivado HLS深度解析 279
10.2.2 基於HLS的張量運算加速器設計 282
10.2.3 基於HLS的推理過程中的計算精度與優化 285
10.2.4 FPGA資源利用率與推理性能的關系 288
10.3 低精度計算與FPGA推理優化 289
10.3.1 基於systemVerilog的INT8、FP16精度的硬件實現 289
10.3.2 低比特量化在FPGA推理中的應用 293
10.3.3 數據壓縮與內存帶寬優化 295
10.3.4 量化與硬件資源映射策略 300
10.4 推理過程中的動態批處理優化 300
10.4.1 動態批處理的FPGA實現策略 300
10.4.2 流水線化設計與計算資源優化 301
10.4.3 Zynq異構計算平臺中的批處理優化 304
10.4.4 Verilog中的批處理調度與性能提升 307
10.5 數據通信與存儲優化:FPGA加速推理 308
10.5.1 數據傳輸與內存訪問優化 308
10.5.2 FPGA中的片上緩存與數據復用 311
10.5.3 高效的存儲映射與並行計算 312
10.6 FPGA推理加速與自動化編譯框架的結合 312
10.6.1 TVM與FPGA推理加速的結合 312
10.6.2 編譯器優化與硬件資源映射 314
10.6.3 硬件加速與雲端推理的協同工作 315
10.7 本章小結 315
10.8 思考題 316
第 11 章 超標量架構與雙通路優化:OpenCL與HLS的應用實戰 317
11.1 OpenCL與FPGA加速框架 317
11.1.1 OpenCL在FPGA中的工作原理 317
11.1.2 FPGA加速框架的硬件抽象層 319
11.1.3 OpenCL編譯流程與優化策略 321
11.2 HLS在大模型訓練中的應用 321
11.2.1 HLS編程模型與FPGA設計流程 322
11.2.2 HLS優化策略與性能提升 323
11.2.3 HLS與RTL設計的協同工作 325
11.3 矩陣運算與梯度計算加速 328
11.3.1 矩陣乘法的HLS與OpenCL實現 329
11.3.2 利用OpenCL完成梯度計算的流水線設計與優化 332
11.3.3 數據存取與內存帶寬優化 335
11.4 控制通路與數據通路優化 338
11.4.1 控制通路設計與時序優化 338
11.4.2 數據通路的並行化與流水線 342
11.4.3 控制通路與數據通路的協同優化 345
11.5 超標量架構與超長指令字在FPGA中的實現 349
11.5.1 超標量架構的設計與應用 349
11.5.2 超長指令字在FPGA中的實現方法 350
11.5.3 高效的計算任務調度與並行執行 352
11.6 本章小結 356
11.7 思考題 357
第 12 章 AI編譯器:Chisel與SystemVerilog的應用實戰 358
12.1 Chisel與SystemVerilog在推理加速中的應用 358
12.1.1 Chisel與SystemVerilog語言對比 358
12.1.2 推理加速中的硬件模塊設計與映射 362
12.1.3 基於Chisel與SystemVerilog的硬件模塊優化 365
12.2 AI編譯器與FPGA推理加速 369
12.2.1 AI編譯器的工作原理與FPGA適配 369
12.2.2 推理任務的硬件映射與優化 370
12.2.3 編譯器優化策略與FPGA性能提升 372
12.3 高效數據流與存儲優化 375
12.3.1 FPGA中的數據流設計與優化 375
12.3.2 存儲架構優化與內存帶寬管理 375
12.4 FPGA推理加速中的計算資源調度與分配 378
12.4.1 計算資源的動態調度與任務劃分 378
12.4.2 硬件資源調度算法與並行推理 378
12.4.3 FPGA資源分配與多任務推理的協同優化 381
12.5 本章小結 385
12.6 思考題 385



