本書介紹了超級計算機算力和AI算力的異同,從CPU流水線開始,描述主要的眾核處理器架構(gòu)和功能部件設(shè)計。在GPU和NPU等加速器部分,介紹了GPU為何能從單純的圖形任務(wù)處理器變成通用處理器。GPU在設(shè)計邏輯、存儲體系、線程管理,以及面向AI的張量處理器方面成為最近幾年全世界科技行業(yè)最矚目的明星。本書對華為等廠商推出的NPU芯片設(shè)計也做了架構(gòu)描述,中國也擁有獨立自主知識產(chǎn)權(quán)的高算力芯片,并且支持多芯片、高帶寬互連。本書也回顧了近20年來主流的CPU、GPU芯片架構(gòu)的特點,介紹了存儲與互連總線技術(shù),即大模型專用AI超級計算機的中樞核心。
目 錄
第1章 從TOP500和MLPerf看算力芯片格局 1
1.1 科學(xué)算力最前沿TOP500 1
1.1.1 TOP500的測試方式HPL 3
1.1.2 TOP500與算力芯片行業(yè)發(fā)展 5
1.2 AI算力新標(biāo)準(zhǔn)MLPerf 9
第2章 高性能CPU流水線概覽 14
2.1 什么是指令 14
指令集的設(shè)計哲學(xué) 14
2.2 流水線與MIPS 17
2.2.1 經(jīng)典5級流水線概述 18
2.2.2 超流水線及其挑戰(zhàn) 21
2.3 分支預(yù)測 25
2.3.1 先進分支預(yù)測之“感知機分支預(yù)測器” 29
2.3.2 先進分支預(yù)測之“TAGE分支預(yù)測器” 31
2.4 指令緩存體系 33
2.5 譯碼單元 37
2.6 數(shù)據(jù)緩存 39
2.6.1 多級緩存的數(shù)據(jù)包含策略 41
2.6.2 緩存映射關(guān)系 42
2.6.3 受害者緩存 45
2.6.4 寫入策略與一致性協(xié)議 47
2.7 TLB(旁路快表緩沖) 49
2.8 亂序執(zhí)行引擎 52
2.8.1 指令相關(guān)的解決方案 53
2.8.2 寄存器重命名 55
2.8.3 指令提交與ROB單元 57
2.8.4 發(fā)射隊列 59
2.8.5 數(shù)據(jù)旁路 65
2.9 超線程技術(shù) 66
第3章 緩存硬件結(jié)構(gòu) 71
3.1 DRAM與SRAM設(shè)計取舍 71
3.2 DRAM讀寫過程 72
3.3 SRAM讀寫過程(以6T SRAM為例) 74
3.4 Intel對8T SRAM的探索 76
3.5 不同規(guī)格SRAM物理特性 78
3.6 非一致性緩存架構(gòu) 79
第4章 CPU計算單元設(shè)計 82
4.1 計算單元邏輯構(gòu)成 82
4.2 整數(shù)和浮點數(shù)的差異 83
4.3 算術(shù)邏輯單元 84
4.3.1 ALU加法器與減法器 85
4.3.2 ALU比較單元和位移單元 85
4.3.3 ALU乘法器與除法器 86
4.4 浮點數(shù)單元 87
4.4.1 浮點加法器與減法器 88
4.4.2 浮點乘法器與除法器 91
4.5 指令的加載和存儲單元 93
4.6 單指令多數(shù)據(jù) 95
4.6.1 MMX指令集 97
4.6.2 3DNow!指令集 101
4.6.3 SSE指令集及其擴展指令集 102
4.6.4 AVX指令集及其擴展指令集 104
4.6.5 AVX-512指令集與下一代AVX10指令集 105
4.6.6 對AVX指令集的間接實施 112
4.7 矩陣加速指令集 113
4.8 ARM SVE指令集 115
第5章 邏輯拓撲結(jié)構(gòu) 120
5.1 環(huán)形拓撲方式 120
5.2 Infinity Fabric拓撲方式 124
5.3 網(wǎng)格拓撲方式 129
5.4 片上網(wǎng)絡(luò)(NoC) 133
5.4.1 NoC分析重點 135
5.4.2 NoC高速發(fā)展的原因 136
5.4.3 常見NoC拓撲結(jié)構(gòu)及特性 136
5.4.4 拓撲結(jié)構(gòu)指標(biāo)參數(shù) 139
5.4.5 拓撲結(jié)構(gòu)改進案例 140
5.4.6 路由器微架構(gòu)設(shè)計 142
5.5 近存計算拓撲特性 144
5.5.1 IPU芯片 145
5.5.2 WSE芯片 147
5.6 單芯片UMA與NUMA 151
第6章 經(jīng)典算力CPU芯片解讀 155
6.1 申威處理器 155
6.1.1 SW26010單芯片設(shè)計 155
6.1.2 “神威?太湖之光”系統(tǒng)設(shè)計 157
6.1.3 SW26010對比CPU+協(xié)處理器方案 158
6.1.4 針對SW26010的OpenCL編譯系統(tǒng)設(shè)計 159
6.1.5 SW26010后期迭代 161
6.2 富士通A64FX處理器 162
A64FX指令流水線設(shè)計 163
6.3 蘋果M1處理器 165
6.3.1 SoC模塊化設(shè)計 166
6.3.2 高性能核心流水線設(shè)計 167
6.3.3 計算單元資源 168
6.3.4 UltraFusion芯片擴展 169
6.4 Ampere處理器 171
6.4.1 Ampere Altra 171
6.4.2 AmpereOne 174
6.5 IBM POWER處理器 177
6.5.1 POWER9架構(gòu)設(shè)計 179
6.5.2 POWER9拓撲技術(shù) 181
6.5.3 POWER10架構(gòu)分析 183
6.5.4 POWER10拓撲技術(shù) 183
6.5.5 POWER10 SIMD單元改進與MMA加速器 186
6.6 EPYC 9004處理器 187
6.6.1 Zen微架構(gòu)介紹 187
6.6.2 EPYC處理器設(shè)計 200
6.6.3 Zen4c小核心設(shè)計策略 202
6.7 Sapphire Rapids微架構(gòu)Xeon處理器 205
6.7.1 EMIB封裝 206
6.7.2 Golden Cove微架構(gòu) 209
6.7.3 其他硬件加速單元——Intel IAA存內(nèi)分析加速器 211
6.7.4 其他硬件加速單元——Intel DSA數(shù)據(jù)流加速器 212
6.7.5 Intel QAT數(shù)據(jù)保護與壓縮加速技術(shù) 213
6.7.6 Intel DLB動態(tài)負載均衡器 215
6.8 Tesla Dojo超級計算機和D1處理器 217
6.8.1 D1芯片微架構(gòu) 218
6.8.2 訓(xùn)練瓦片和存儲資源 220
6.8.3 豐富的低精度數(shù)據(jù)類型 221
6.8.4 設(shè)計獨特性與思考 223
第7章 從圖形到計算的GPU架構(gòu)演進 224
7.1 GPU圖形計算發(fā)展 224
7.1.1 從三角形開始的幾何階段 224
7.1.2 光柵化銜接3D和2D世界 227
7.1.3 像素著色階段 228
7.1.4 DirectX API推動GPU演進 229
7.2 GPGPU 指令流水線 233
7.2.1 取指階段 234
7.2.2 譯碼階段 235
7.2.3 發(fā)射階段 238
7.2.4 執(zhí)行階段 240
7.2.5 寫回階段 242
第8章 GPGPU存儲體系與線程管理 245
8.1 GPGPU多級別存儲體系 245
8.1.1 大容量寄存器與倒金字塔結(jié)構(gòu) 248
8.1.2 不同時代NVIDIA GPU片上存儲器容量 250
8.1.3 GPGPU存儲組織模式之合并訪存 253
8.1.4 GPGPU存儲組織模式之板塊沖突 255
8.2 GPGPU線程管理 258
8.2.1 GPU線程定義 259
8.2.2 線程束寬度 261
8.2.3 線程調(diào)度和管理 265
8.2.4 線程塊在線程管理中的作用 268
8.2.5 SIMT堆棧與Volta架構(gòu)對線程管理的改進 270
8.2.6 Cooperative Group 275
8.2.7 Hopper架構(gòu)對線程管理的改進 278
8.3 通用矩陣乘法與AI類任務(wù) 279
8.3.1 利用線程塊優(yōu)化矩陣計算 280
8.3.2 通過流實現(xiàn)任務(wù)級并行 281
8.4 VLIW指令結(jié)構(gòu)在GPU中的應(yīng)用歷史 283
第9章 張量處理器設(shè)計 287
9.1 張量的定義 287
9.2 脈動陣列計算單元 288
9.2.1 谷歌TPU處理器 291
9.2.2 TPU v4芯片概覽 293
9.2.3 自研光學(xué)芯片用于TPU節(jié)點拓撲 295
9.3 Volta架構(gòu)引入張量核心 298
9.3.1 張量核心設(shè)計細節(jié) 298
9.3.2 張量核心數(shù)據(jù)加載與指令編譯 303
9.3.3 矩陣乘法訪存優(yōu)勢與數(shù)據(jù)布局 306
9.3.4 Ampere架構(gòu)引入稀疏性張量加速 308
9.3.5 Hopper架構(gòu)改進張量內(nèi)存加速器 311
9.3.6 低精度性能增益 313
9.4 華為昇騰Ascend 910 NPU芯片 315
9.4.1 達芬奇架構(gòu)AI Core分析 316
9.4.2 拓撲互連能力 319
9.4.3 CANN與AI框架MindSpore 321
第10章 經(jīng)典GPU算力芯片解讀 324
10.1 NVIDIA GPU芯片 324
10.1.1 G80架構(gòu) 324
10.1.2 GT200架構(gòu) 326
10.1.3 Fermi架構(gòu) 329
10.1.4 Kepler架構(gòu) 333
10.1.5 Maxwell架構(gòu) 337
10.1.6 Pascal架構(gòu) 338
10.1.7 Volta架構(gòu) 340
10.1.8 Turing架構(gòu) 343
10.1.9 Ampere架構(gòu) 345
10.1.10 Hopper架構(gòu) 351
10.2 AMD GPU芯片 357
10.2.1 TeraScale架構(gòu) 357
10.2.2 GCN架構(gòu) 364
10.2.3 RDNA架構(gòu) 371
10.3 Intel Xe GPU架構(gòu) 386
10.3.1 x86指令集Larrabee GPGPU 386
10.3.2 Xe-core高端核心與EU低端核心 389
10.3.3 子片和擴展結(jié)構(gòu) 395
10.3.4 超大芯片Ponte Vecchio 396
第11章 存儲與互連總線技術(shù) 400
11.1 從DDR到HBM 400
11.1.1 為更高帶寬持續(xù)改進——GDDR 400
11.1.2 新封裝方式——HBM 405
11.2 PCI Express總線概況 407
11.2.1 由需求驅(qū)動的PCIe總線發(fā)展歷程 408
11.2.2 PCIe物理和數(shù)據(jù)鏈路層技術(shù)概覽 411
11.3 CXL擴展技術(shù) 414
11.3.1 CXL的3個子協(xié)議 416
11.3.2 CXL 2.0主要特性:內(nèi)存池化 417
11.3.3 CXL 3.0主要特性:內(nèi)存共享、多級拓撲 418
11.3.4 CXL協(xié)議細節(jié) 419
11.3.5 CXL延遲拆解 421
11.4 NVLink互連技術(shù)與GPU超級計算機 424
11.4.1 Pascal架構(gòu)第一代NVLink 424
11.4.2 Volta架構(gòu)第二代NVLink 428
11.4.3 Ampere架構(gòu)第三代NVLink 429
11.4.4 Hopper架構(gòu)第四代NVLink 429
11.4.5 Grace Hopper超級芯片 432