第 1 部分 FPGA 與深度學習基礎
▍第 1 章 FPGA 與Verilog HDL 基礎
1.1 FPGA 的基本架構與計算特性
1.1.1 FPGA 的基本架構:LUT、BRAM、DSP 與互連
1.1.2 FPGA 的平行計算特性及其相較於GPU、CPU 的優勢
1.1.3 FPGA 在深度學習中的主要應用場景
1.2 Verilog HDL 基礎:從硬體描述到合成
1.2.1 Verilog HDL 的基本語法與結構
1.2.2 組合邏輯、時序邏輯與有限狀態機(FSM)設計
1.2.3 FPGA 合成最佳化:面積、速度與功耗的權衡
1.3 FPGA 設計流程與EDA 工具鏈
1.3.1 從RTL 到Bitstream:FPGA 的基本設計流程
1.3.2 Vivado、Quartus 與Synplify:主流EDA 工具解析
1.3.3 FPGA 硬體模擬、偵錯與後端實現
1.4 FPGA 儲存架構與資料最佳化
1.4.1 FPGA 記憶體系統:BRAM、SRAM、DDR 與HBM
1.4.2 資料搬移最佳化:DMA、AXI 匯流排與晶片上快取策略
1.4.3 運算資源最佳化:管線、平行計算與運算子融合
1.5 FPGA、ASIC 與GPU:AI 計算加速方案對比
1.5.1 GPU 加速大模型計算的特點與限制
1.5.2 ASIC 在AI 計算中的優勢
1.5.3 FPGA 的靈活性與計算最佳化能力對比
1.6 本章小結
1.7 思考題
▍第 2 章 從早期神經網路到深度學習
2.1 神經網路的基本概念
2.1.1 感知器與多層感知器
2.1.2 反向傳播演算法與梯度下降
2.1.3 神經網路的收斂性與計算複雜度
2.2 卷積神經網路計算特性
2.2.1 CNN 的基本架構:卷積、池化與全連接層
2.2.2 CNN 在計算中的主要瓶頸:儲存與計算密集型任務
2.2.3 CNN 加速策略:Winograd 變換、FFT 與剪枝
2.3 遞迴神經網路與自注意力機制
2.3.1 RNN、LSTM 與GRU 的結構與計算特點
2.3.2 注意力機制的引入與改進
2.3.3 自注意力機制與Transformer 架構
2.4 Transformer 架構的計算特性
2.4.1 Transformer 的基本計算流程與平行計算特點
2.4.2 多頭注意力與矩陣運算最佳化
2.4.3 位置編碼計算
2.5 深度學習計算的FPGA 最佳化想法
2.5.1 計算圖的硬體實現
2.5.2 資料重複使用、頻寬最佳化與低位元量化計算
2.6 本章小結
2.7 思考題
▍第 3 章 深度學習計算加速的基本想法
3.1 硬體加速基礎:平行計算與管線最佳化
3.1.1 資料流架構與計算最佳化
3.1.2 計算任務的平行化與時序最佳化
3.1.3 指令級平行與資料級平行在FPGA 中的實現
3.2 FPGA 在神經網路計算中的最佳化策略
3.2.1 計算任務拆分:時間重複使用與空間重複使用
3.2.2 低精度計算(INT8、FP16、BF16)在FPGA 上的實現
3.2.3 記憶體最佳化:權重壓縮與稀疏矩陣計算
3.3 模型剪枝與量化技術
3.3.1 模型剪枝技術與硬體對映
3.3.2 量化感知訓練與訓練後量化
3.4 大規模計算的儲存最佳化
3.4.1 晶片上快取與資料重複使用策略
3.4.2 DDR、HBM 頻寬最佳化:預先存取與存取記憶體排程
3.4.3 計算-儲存協作最佳化策略
3.4.4 深度學習編譯器與FPGA 加速
3.4.5 TVM、XLA 與OneAPI:神經網路編譯最佳化
3.4.6 HLS 與RTL 最佳化的對比
3.5 本章小結
3.6 思考題
第 2 部分 FPGA 在大模型加速中的應用
▍第 4 章 Transformer 模型的硬體加速
4.1 Transformer 的計算瓶頸分析
4.1.1 自注意力機制的計算複雜度
4.1.2 前饋神經網路與矩陣乘法加速
4.1.3 KV 快取與儲存最佳化
4.2 FPGA 在Transformer 計算中的應用
4.2.1 矩陣乘法最佳化:Tile-Based Computation
4.2.2 自注意力計算的硬體最佳化
4.2.3 FPGA 在低位元Transformer 中的應用
4.3 大模型推理的硬體最佳化策略
4.3.1 動態批次處理與推理加速
4.3.2 低精度推理(BF16、INT8)在FPGA 上的實現
4.3.3 計算-通訊協作最佳化——管線平行
4.4 本章小結
4.5 思考題
▍第 5 章 FPGA 在大模型訓練中的應用
5.1 訓練任務的計算特性
5.1.1 訓練與推理:計算模式的區別
5.1.2 計算密集型與儲存密集型任務分析
5.2 反向傳播的硬體最佳化
5.2.1 誤差反向傳播計算的矩陣運算特性
5.2.2 梯度計算與權重更新的最佳化策略
5.2.3 使用FPGA 高效實現自動微分
5.3 FPGA 在大規模訓練中的優勢
5.3.1 低延遲計算的硬體實現
5.3.2 晶片上平行管線訓練最佳化
5.3.3 資料搬移與存取記憶體最佳化
5.3.4 訓練資料流的批次處理與排程策略
5.3.5 計算-儲存比最佳化:減少存取記憶體瓶頸
5.3.6 FPGA 與GPU 協作訓練的應用
5.4 本章小結
5.5 思考題
▍第 6 章 FPGA 在異質計算架構中的角色
6.1 FPGA、CPU 與GPU 協作計算架構
6.1.1 異質計算的基本概念與挑戰
6.1.2 FPGA 作為輔助處理器的計算任務分配
6.1.3 低延遲資料交換機制
6.2 高速互連技術與資料傳輸最佳化
6.2.1 PCIe、NVLink 與CCIX 的對比分析
6.2.2 FPGA 的資料傳輸最佳化方案
6.3 本章小結
6.4 思考題
▍第 7 章 模型壓縮與量化技術
7.1 模型剪枝技術
7.1.1 結構化剪枝與非結構化剪枝
7.1.2 剪枝演算法與硬體對映最佳化
7.1.3 剪枝在FPGA 計算中的相容性
7.2 低位元量化在FPGA 上的實現
7.2.1 INT8、FP16、BF16 的硬體實現區別
7.2.2 量化感知訓練與傳統量化方法
7.2.3 量化計算對FPGA 資源使用的影響
7.3 知識蒸餾加速推理
7.3.1 知識蒸餾的基本原理
7.3.2 輕量級子模型的訓練與部署
7.3.3 知識蒸餾在硬體加速中的應用
7.4 模型壓縮在FPGA 推理中的應用
7.4.1 大規模Transformer 模型的儲存最佳化
7.4.2 稀疏計算在FPGA 上的實現方案
7.4.3 FPGA 如何支援動態精度計算
7.5 大模型推理中的頻寬最佳化
7.5.1 儲存與計算的權衡
7.5.2 記憶體管理最佳化策略
7.5.3 FPGA 的晶片上儲存架構最佳化
7.6 本章小結
7.7 思考題
▍第 8 章 面向FPGA 的深度學習編譯器
8.1 深度學習編譯器概述
8.1.1 TVM、XLA、TensorRT 的對比分析
8.1.2 計算圖最佳化與硬體後端對映
8.1.3 編譯器在FPGA 計算最佳化中的作用
8.2 高層次合成與RTL 最佳化
8.2.1 HLS 程式設計與RTL 設計:適用場景分析
8.2.2 HLS 自動最佳化策略
8.2.3 RTL 的手工最佳化方法
8.3 FPGA 編譯最佳化的關鍵技術
8.3.1 硬體計算圖
8.3.2 計算任務的自動劃分與對映
8.4 面向FPGA 的端對端編譯框架
8.4.1 TVM 的FPGA 後端最佳化
8.4.2 MLIR 在FPGA 計算中的應用
8.4.3 自動化硬體對映與效能調校
8.5 本章小結
8.6 思考題
第 3 部分 FPGA 加速實戰與最佳化策略
▍第 9 章 FPGA 加速大模型訓練實戰應用
9.1 訓練過程的計算挑戰
9.1.1 訓練中的計算密集型任務與儲存瓶頸
9.1.2 反向傳播的計算特性與最佳化想法
9.1.3 計算圖最佳化對硬體加速的影響
9.2 FPGA 在大規模梯度計算中的應用
9.2.1 矩陣乘法最佳化:基於切區塊的計算
9.2.2 低精度計算
9.2.3 動態計算最佳化
9.3 FPGA 的晶片上訓練架構最佳化
9.3.1 資料重複使用與管線最佳化策略
9.3.2 計算-儲存協作最佳化:頻寬與延遲的平衡
9.3.3 訓練任務的硬體分散式排程
9.4 FPGA 在分散式訓練中的應用
9.4.1 FPGA-CPU-GPU 協作計算訓練架構
9.4.2 FPGA 支援的混合平行訓練策略
9.4.3 高速互連技術在訓練中的最佳化
9.5 本章小結
9.6 思考題
▍第 10 章 FPGA 加速大模型推理實戰應用
10.1 推理任務的特點與硬體加速需求
10.1.1 推理過程中的計算與延遲要求
10.1.2 記憶體和儲存頻寬的最佳化問題
10.1.3 在FPGA 上的推理架構選擇
10.1.4 使用HLS 完成模型推理與訓練的差異化設計
10.2 採用HLS 實現深度學習推理加速
10.2.1 Vivado HLS 深度解析
10.2.2 基於HLS 的張量運算加速器設計
10.2.3 基於HLS 的推理過程中的計算精度與最佳化
10.2.4 FPGA 資源使用率與推理效能的關係
10.3 低精度計算與FPGA 推理最佳化
10.3.1 基於SystemVerilog 的INT8、FP16 精度的硬體實現
10.3.2 低位元量化在FPGA 推理中的應用
10.3.3 資料壓縮與記憶體頻寬最佳化
10.3.4 量化與硬體資源對映策略
10.4 推理過程中的動態批次處理最佳化
10.4.1 動態批次處理的FPGA 實現策略
10.4.2 管線化設計與運算資源最佳化
10.4.3 Zynq 異質計算平臺中的批次處理最佳化
10.4.4 Verilog 中的批次處理排程與效能提升
10.5 資料通訊與儲存最佳化:FPGA 加速推理
10.5.1 資料傳輸與記憶體存取最佳化
10.5.2 FPGA 中的晶片上快取與資料重複使用
10.5.3 高效的儲存對映與平行計算
10.6 FPGA 推理加速與自動化編譯框架的結合
10.6.1 TVM 與FPGA 推理加速的結合
10.6.2 編譯器最佳化與硬體資源對映
10.6.3 硬體加速與雲端推理的協作工作
10.7 本章小結
10.8 思考題
▍第 11 章 超純量架構與雙通路最佳化:OpenCL 與HLS 的應用實戰
11.1 OpenCL 與FPGA 加速框架
11.1.1 OpenCL 在FPGA 中的工作原理
11.1.2 FPGA 加速框架的硬體抽象層
11.1.3 OpenCL 編譯流程與最佳化策略
11.2 HLS 在大模型訓練中的應用
11.2.1 HLS 程式設計模型與FPGA 設計流程
11.2.2 HLS 最佳化策略與效能提升
11.2.3 HLS 與RTL 設計的協作工作
11.3 矩陣運算與梯度計算加速
11.3.1 矩陣乘法的HLS 與OpenCL 實現
11.3.2 利用OpenCL 完成梯度計算的管線設計與最佳化
11.3.3 資料存取與記憶體頻寬最佳化
11.4 控制通路與資料通路最佳化
11.4.1 控制通路設計與時序最佳化
11.4.2 資料通路的平行化與管線
11.4.3 控制通路與資料通路的協作最佳化
11.5 超純量架構與超長指令字在FPGA 中的實現
11.5.1 超純量架構的設計與應用
11.5.2 超長指令字在FPGA 中的實現方法
11.5.3 高效的計算任務排程與平行執行
11.6 本章小結
11.7 思考題
▍第 12 章 AI 編譯器:Chisel 與SystemVerilog 的應用實戰
12.1 Chisel 與SystemVerilog 在推理加速中的應用
12.1.1 Chisel 與SystemVerilog 語言對比
12.1.2 推理加速中的硬體模組設計與對映
12.1.3 基於Chisel 與SystemVerilog 的硬體模組最佳化
12.2 AI 編譯器與FPGA 推理加速
12.2.1 AI 編譯器的工作原理與FPGA 適配
12.2.2 推理任務的硬體對映與最佳化
12.2.3 編譯器最佳化策略與FPGA 效能提升
12.3 高效資料流與儲存最佳化
12.3.1 FPGA 中的資料流設計與最佳化
12.3.2 儲存架構最佳化與記憶體頻寬管理
12.4 FPGA 推理加速中的運算資源排程與分配
12.4.1 運算資源的動態排程與任務劃分
12.4.2 硬體資源排程演算法與平行推理
12.4.3 FPGA 資源配置與多工推理的協作最佳化
12.5 本章小結
12.6 思考題
?