Ch16 SIMD 与 GPU 编程 · 思维导图 (Mermaid)¶
一 · 章节主入口¶
🌳 Ch16 章 知识图谱
├─ §00 C++/框架
│ └─ PyTorch C++
│ └─ Tensor
├─ §01 硬件
│ └─ 内存层级
│ └─ Roofline
├─ §02 ARM NEON
│ └─ 寄存器
│ └─ 移动端
├─ §03 x86 AVX
│ └─ AVX-512
│ └─ FMA
├─ §04 GPU CUDA
│ └─ warp/block
│ └─ Tensor core
├─ §05 Triton/TPU
│ └─ Triton DSL
│ └─ 脉动阵列
├─ §06 RISC-V
│ └─ V 扩展
│ └─ 嵌入式
├─ §07 Vulkan
│ └─ 跨平台
│ └─ SPIR-V
二 · SIMD vs SIMT¶
graph LR
A[CPU] -->|SIMD| B[AVX/NEON]
A -->|标量| C[通用]
D[GPU] -->|SIMT| E[CUDA warp]
D -->|矩阵| F[Tensor core]
B --> B1[128/256/512 bit]
E --> E1[32 threads]
F --> F1[FP16/INT8]
三 · §01 硬件子图¶
🌳 Ch16 章 知识图谱
├─ 内存
│ └─ 寄存器
│ └─ L1/L2
│ └─ DRAM
│ └─ HBM
├─ Roofline
│ └─ 计算受限
│ └─ 带宽受限
├─ CPU/GPU
│ └─ 少核高频
│ └─ 多核低频
├─ Cache
│ └─ 局部性
│ └─ line
四 · §02 ARM NEON 子图¶
🌳 Ch16 章 知识图谱
├─ 寄存器
│ └─ Q0-Q15
│ └─ D0-D31
├─ 指令
│ └─ vmul/vadd
│ └─ vfma
├─ 应用
│ └─ 移动端
│ └─ Apple Silicon
├─ 进阶
│ └─ SVE
│ └─ Helium
五 · §03 x86 AVX 子图¶
🌳 Ch16 章 知识图谱
├─ 寄存器
│ └─ XMM
│ └─ YMM
│ └─ ZMM
├─ 指令集
│ └─ SSE
│ └─ AVX
│ └─ AVX-512
│ └─ AVX-10
├─ 应用
│ └─ 服务器
│ └─ HPC
├─ 编译
│ └─ -mavx512f
│ └─ intrinsics
六 · §04 CUDA 子图¶
🌳 Ch16 章 知识图谱
├─ 线程
│ └─ warp
│ └─ block
│ └─ grid
├─ 内存
│ └─ global
│ └─ shared
│ └─ register
├─ 优化
│ └─ coalesce
│ └─ bank conflict
│ └─ occupancy
├─ 库
│ └─ cuBLAS
│ └─ cuDNN
│ └─ CUTLASS
七 · §05 Triton/TPU 子图¶
🌳 Ch16 章 知识图谱
├─ Triton
│ └─ JIT
│ └─ autotune
│ └─ Python-like
├─ TPU
│ └─ systolic
│ └─ MXU
│ └─ pod
├─ 对比
│ └─ CUDA 复杂
│ └─ Triton 简单
│ └─ TPU Google
八 · §06 RISC-V 子图¶
🌳 Ch16 章 知识图谱
├─ 指令
│ └─ RV32/64
│ └─ V 扩展
│ └─ P 扩展
├─ 实现
│ └─ SiFive
│ └─ 平头哥
│ └─ Andes
├─ 应用
│ └─ IoT
│ └─ 嵌入式
│ └─ AI 边缘
九 · §07 Vulkan 子图¶
🌳 Ch16 章 知识图谱
├─ API
│ └─ Khronos
│ └─ 跨平台
├─ Compute
│ └─ workgroup
│ └─ SPIR-V
│ └─ shader
├─ 对比
│ └─ CUDA NVIDIA
│ └─ OpenCL 老
│ └─ Vulkan 现代
├─ 应用
│ └─ 游戏
│ └─ ML
│ └─ 渲染
十 · 跨章桥接¶
graph TB
C13[Ch13 架构] --> T1
C17[Ch17 LLM 推理] --> T2
C15[Ch15 DevOps] --> T3
C07[Ch07 Transformer] --> T4
T1[Ch16 §01 硬件基础] --> FUSE{高性能 AI}
T2[Ch16 §04/05 CUDA/Triton] --> FUSE
T3[Ch16 §07 Vulkan 跨平台] --> FUSE
T4[Ch16 §04 Flash Attention] --> FUSE
FUSE --> APP[大模型推理 + 训练]
十一 · 演进时间线¶
timeline
1996 : MMX (Intel SIMD)
1999 : SSE
2008 : NEON (ARM)
2011 : AVX
2013 : AVX-512
2007 : CUDA (NVIDIA)
2012 : Kepler / Kepler GK110
2017 : Volta (Tensor core)
2018 : Triton (OpenAI)
2020 : TPU v3
2022 : Hopper H100
2023 : TPU v5e
2024 : Helion (PyTorch)
十二 · 数据流对比¶
| 维度 | CPU SIMD | GPU SIMT | TPU |
|---|---|---|---|
| 核心数 | 1 | 数千 | 4 (chip) |
| 频率 | 3-5 GHz | 1-2 GHz | 1 GHz |
| 数据 | 16×FP32 | 32 / warp | 128×128 |
| 擅长 | 控制 | 并行 | matmul |
| 功耗 | 中 | 高 | 中 |
| 代表 | AVX-512 | H100 | TPU v5 |
十三 · 加速器层次¶
graph TD
A[应用] --> B[PyTorch]
B --> C[Triton / CUDA]
C --> D[cuDNN / cuBLAS]
D --> E[NVIDIA Driver]
E --> F[GPU SM]
F --> G[CUDA Core / Tensor Core]
C --> H[XLA]
H --> I[TPU]
C --> J[MLIR]
J --> K[CPU SIMD]
这张导图覆盖 Ch16 全章。建议: 先背章节主入口 → 按节背子图 → 演进时间线 → 数据流对比。