Ch16 SIMD 与 GPU 编程 · 一页信息图¶
一句话总纲: SIMD 与 GPU 编程 = AI 内核加速: CPU SIMD (AVX/NEON) + GPU CUDA / Triton + TPU + Vulkan + RISC-V 嵌入式。Ch16 教"如何把模型跑得快"。
一 · 知识拓扑图¶
flowchart TB
A["C++ 与 ML 框架
Tensor/PyTorch C++
🟢"] -->|基础| B["硬件基础
CPU/GPU 内存层级
🟡"]
B --> C["ARM NEON
移动端 SIMD
🟡"]
B --> D["x86 AVX
桌面/服务器 SIMD
🟡"]
C --> E["GPU CUDA
NVIDIA 主导
🔴"]
D --> E
E --> F["Triton/TPU
Python-like + 加速器
🔴"]
F --> G["RISC-V 嵌入式
IoT 部署
🟡"]
G --> H["Vulkan Compute
跨平台 GPU
🟡"]
H --> I["AI 推理加速
端到端
🔴"]
二 · 核心公式速查表¶
| # | 公式 / 概念 | 数字例 | 约束 |
|---|---|---|---|
| F1 | AVX-512 宽度 | 512 bit = 16×FP32 | x86 |
| F2 | NEON 宽度 | 128 bit = 4×FP32 | ARM |
| F3 | CUDA core 数 | H100 132 SM × 128 = 16896 | NVIDIA |
| F4 | Tensor core | FP16: 256-1024 ops/cycle | AI 专用 |
| F5 | 内存墙 | HBM 3 TB/s vs FP16 1000 TFLOPS | GPU 瓶颈 |
| F6 | SIMD 加速比 | \(n = \text{width} / \text{sizeof}(T)\) | 理论上限 |
| F7 | Roofline | \(\text{perf} = \min(\pi, I \times B)\) | 计算 / 带宽 |
| F8 | CUDA warp | 32 threads | SIMT |
| F9 | 寄存器数 / thread | H100 65536 × 32bit / SM | 限制 occupancy |
| F10 | TPU systolic | MXU 128×128 | |
| F11 | Vulkan workgroup | 类似 CUDA block | 跨平台 |
| F12 | RISC-V V 扩展 | 128-2048 bit | 嵌入式 |
| F13 | Flash Attention | 减少 IO | GPU 内存优化 |
| F14 | Triton block size | 128-1024 | 自动调优 |
| F15 | INT4 vs FP16 | 4× 内存, 轻微精度损 | 量化 |
三 · 关键流程 (4 步)¶
流程 A: SIMD 优化¶
- Profile:
perf找热点 - 向量化: 用 AVX intrinsics
- 数据对齐: 32 / 64 字节
- 验证: 数值一致性
流程 B: CUDA Kernel¶
- 分配:
cudaMalloc/cudaMemcpy - 启动:
kernel<<<grid, block>>>(...) - 同步:
cudaDeviceSynchronize - 取结果:
cudaMemcpy回 host
流程 C: Triton 编程¶
- 定义
@triton.jit函数 - 自动向量化 / 调优
- 编译为 PTX
- 调用执行
流程 D: 量化部署¶
- FP32 → FP16 / BF16
- PTQ (训练后量化)
- QAT (量化感知训练)
- 部署到边缘 (INT4)
四 · 真题 / 面试 100 题¶
| # | 题面 | 难度 |
|---|---|---|
| Q1 | SIMD 加速原理 | ★★ |
| Q2 | AVX 与 NEON 区别 | ★★ |
| Q3 | CUDA warp / block / grid 关系 | ★★★ |
| Q4 | 内存墙与 roofline 模型 | ★★★ |
| Q5 | Tensor core 工作原理 | ★★★ |
| Q6 | Triton 与 CUDA 区别 | ★★ |
| Q7 | TPU 与 GPU 差异 | ★★★ |
| Q8 | Vulkan Compute 用途 | ★★ |
| Q9 | RISC-V 在 AI 边缘的角色 | ★★ |
| Q10 | Flash Attention 优化 | ★★★ |
五 · 与上下章连接¶
- Ch13 §02 架构 → Ch16 §01 硬件基础
- Ch13 §04 CUDA → Ch16 §04 GPU 编程
- Ch15 §05 K8s GPU → Ch16 §07 Vulkan 跨平台
- Ch17 §02 LLM 推理 → Ch16 §05 Triton 加速
六 · 一段话总结¶
SIMD 与 GPU 编程是 AI 性能优化的"内功": §00 C++ 与 ML 框架 (PyTorch C++ 后端) → §01 硬件基础 (内存层级 / Roofline) → §02 ARM NEON (移动端) → §03 x86 AVX (服务器) → §04 GPU CUDA (NVIDIA 主导) → §05 Triton/TPU (Python 风格 + 加速器) → §06 RISC-V 嵌入式 (IoT) → §07 Vulkan Compute (跨平台 GPU)。核心心智模型: 现代 AI = GPU 集群 + Triton DSL + 量化。