📘 GPU指令集架构 & 编译器优化

🎯 30章 · 从入门到前沿
01
GPU计算模型概述
从图形渲染到GPGPU演进 · SIMT vs SIMD · 协处理器角色
02
现代GPU架构概览
Ampere/Hopper vs RDNA/CDNA · SM/CU · 内存层次
03
指令集架构基础
VLIW与标量指令 · 编码/解码 · 谓词寄存器
04
标量指令与向量指令
地址计算/控制流 · 向量算术 · 指令发射调度
05
内存指令详解
加载/存储 · 原子操作 · 地址空间差异
06
同步与通信指令
barrier/fence · shuffle · 协作组指令
07
控制流指令
分支与栈 · 谓词化 · 循环收敛性
08
特殊功能指令
SFU数学函数 · 纹理/采样器 · RT Core
09
指令级并行性
流水线阶段 · 发射宽度 · 依赖与停顿
10
编译器前端
词法/语法分析 · <<<内核语法>>> · AST构建
11
中间表示(IR)
LLVM IR · NVVM IR · PTX · SPIR-V
12
类型系统与类型推断
向量类型 · 地址空间限定符 · 类型转换
13
控制流分析
支配树 · 循环识别 · 控制流图
14
数据流分析
到达定义 · 活跃变量 · 别名分析
15
依赖分析
内存依赖 · 循环携带依赖 · 距离向量
16
标量优化
常量传播/折叠 · 死代码消除 · CSE
17
循环优化
循环展开 · 合并/分发 · 不变代码外提
18
向量化优化
自动向量化 · SIMD vs SIMT · 宽度匹配
19
内存优化
全局内存合并 · 共享内存bank · 寄存器溢出
20
线程束级优化
发散优化 · warp量化 · 指令重排
21
指令调度
列表调度 · 模调度 · 软件流水线
22
寄存器分配
图着色 · 线性扫描 · 寄存器压力管理
23
内联与函数优化
内联决策 · 设备函数 · 调用约定
24
PTX代码生成
指令选择 · 寄存器分配 · 控制流生成
25
SASS代码生成
指令编码 · 调度约束 · 二进制生成
26
编译器后端优化
窥孔优化 · 指令合并 · NOP/延迟槽
27
Profile-Guided Optimization
PGO · 分支预测 · 内联决策优化
28
GPU编译器工具链
NVCC流程 · Clang/CUDA · LLVM后端
29
调试与性能分析工具
cuobjdump · Nsight Compute · 性能计数器
30
前沿趋势与挑战
动态编译/JIT · AI驱动优化 · 多代兼容