前言
第1章 卷積神經網路 1
1.1 神經網路的結構 2
1.2 GCN 4
1.3 網路的基本塊 7
1.4 網路的運算元 17
1.5 網路參數量與運算量 29
1.6 加速器程式設計模型 31
1.7 硬體加速器架構分類 33
第2章 運算子系統的設計 35
2.1 資料流程設計 35
2.2 算力與頻寬 38
2.2.1 算力與輸入頻寬 38
2.2.2 算力與輸出頻寬 41
2.3 卷積乘法陣列 43
2.3.1 Conv演算法詳解 43
2.3.2 NVDLA的乘法陣列 47
2.3.3 TPU的乘法陣列 59
2.3.4 GPU的乘法陣列 66
2.3.5 華為DaVinci的乘法陣列 74
2.4 卷積運算順序的選擇 80
2.5 池化模組的設計 81
第3章 存儲子系統的設計 86
3.1 存儲子系統概述 86
3.1.1 存儲子系統的組成 86
3.1.2 內部緩存的設計 89
3.2 資料格式的定義 97
3.2.1 特徵圖的格式 98
3.2.2 權重的格式 100
第4章 架構優化技術 106
4.1 運算精度的選擇 106
4.1.1 dynamic fixed point類型 109
4.1.2 bfloat16類型 110
4.2 硬體資源的複用 111
4.2.1 FC 112
4.2.2 de-Conv 115
4.2.3 dilate Conv 123
4.2.4 group Conv 123
4.2.5 3D Conv 127
4.2.6 TC Conv 130
4.2.7 3D Pool 132
4.2.8 Up Sample Pooling 136
4.2.9 多個加速器的級聯 136
4.3 Winograd演算法和FFT演算法 138
4.3.1 Winograd演算法解析 138
4.3.2 FFT演算法解析 148
4.4 除法變乘法 150
4.5 LUT的使用 150
4.6 宏塊並行技術 155
4.7 減少軟體配置時間 156
4.8 軟體優化技術 157
4.9 一些激進的優化技術 158
第5章 安全與防護 160
5.1 安全技術 160
5.2 安全性評估 162
5.3 防護 163
第6章 神經網路加速器的實現 165
6.1 乘法器的設計 165
6.1.1 整型乘法器的設計 166
6.1.2 浮點運算器的設計 171
6.2 數位電路常見基本塊的設計 184
6.3 時序優化 203
6.4 低功耗設計 207
第7章 盤點與展望 211
7.1 AI加速器盤點 211
7.2 Training加速器 211
7.3 展望 218
後記 220