(1)现代GPU微架构深度解析:深入理解NVIDIA GPU微架构的演进历程(Fermi/Kepler/Maxwell/Pascal/Volta/Turing/Ampere/Hopper/Blackwell)及其核心设计理念。掌握流式多处理器(SM)的内部结构:Warp调度器、指令分发单元、寄存器文件、共享内存、张量核心(Tensor Core)、RT Core的组织方式。理解计算核心与显存子系统的层次结构(L1/L2缓存、显存控制器、NVLink互连)及其对性能的影响。
(2)CUDA高级调试技术:掌握CUDA-GDB的核心功能与扩展命令,包括多GPU调试、远程调试、条件断点、观察点、CUDA内建变量的运行时检查。学习调试信息生成(-G -g选项)、PTX/SASS汇编级调试技巧。掌握使用cuda-memcheck工具检测内存越界、未初始化访问、并发错误等问题。了解核心转储(core dump)的生成与分析技术。
(3)NVIDIA Nsight Systems系统级性能分析:掌握Nsight Systems的使用方法,进行CPU与GPU协同执行轨迹的捕获与分析。识别系统级性能瓶颈:CPU/GPU饥饿、PCIe数据传输重叠度、内核启动开销、内存拷贝与内核执行的非重叠问题。学习使用NVTX(NVIDIA Tools Extension API)在应用中添加自定义标记和范围,精细化分析特定代码区域的性能特征。
(4)NVIDIA Nsight Compute内核级深度剖析:掌握Nsight Compute(ncu)对CUDA内核进行指令级性能分析的方法。学习解读关键性能指标:计算吞吐量、内存吞吐量、指令执行停顿、线程束发散率、bank conflict计数。使用源码关联分析工具精确定位性能热点,理解GPU动态指令调度对性能的影响。
(5)GPUView与Windows图形栈分析:掌握GPUView工具的使用方法,基于ETW事件分析CPU与GPU交互细节。识别线程调度延迟、DPC(延迟过程调用)队列积压、图形驱动排队等问题。理解WDDM(Windows显示驱动模型)的UMD(用户态驱动)和KMD(内核态驱动)交互过程,分析图形应用程序的CPU开销。
(6)内存子系统优化技术:深入理解GPU内存层次结构(全局内存、L2缓存、L1缓存/共享内存、寄存器、常量内存)的延迟与带宽特性。掌握全局内存合并访问的实现条件与优化技巧,利用共享内存减少冗余全局内存访问。学习bank conflict的识别与避免策略,寄存器压力的管理与溢出处理。
(7)线程束发散与执行模式优化:深入理解SIMT执行模型下线程束(Warp)内分支发散的产生原因与性能代价。掌握减少发散的技术:数据重组、谓词执行、线程束级函数(__shfl_sync, __ballot_sync)。学习着色器执行重排序(SER)技术的原理与应用,通过光线追踪等场景中的实时状态优化提升线程束活性。
(8)CUDA流与并发执行优化:掌握CUDA流(Streams)的高级用法,实现计算与数据传输的重叠、多内核的并发执行。学习使用CUDA事件进行精细化同步与性能计时。理解默认流阻塞行为与多流调度的最佳实践。掌握动态并行(Dynamic Parallelism)的原理与应用场景,实现GPU内核中启动新的内核。
(9)多GPU编程与通信优化:掌握多GPU系统的编程模型,学习使用CUDA API进行多设备管理与任务划分。深入理解点对点通信(Peer-to-Peer Access)的实现机制与性能特征。学习使用NCCL(NVIDIA集合通信库)实现多GPU间的高效全局归约、广播等集合通信操作。了解NVLink与PCIe的不同通信路径选择策略。
(10)高级内核调优与自动调整技术:掌握基于CUTLASS库的GEMM内核自动调整方法。学习使用nvMatmulHeuristics启发式算法预测最优内核配置,减少暴力搜索的时间开销。理解GEMM内核元参数(CTA形状、Warp形状、指令级Tile大小、split-K因子、集群维度)对性能的影响规律。掌握静态编译与JIT编译的性能权衡策略。
(11)图形与光线追踪管线优化:理解现代图形管线(DirectX 12/Vulkan)在GPU上的执行模型与性能分析。掌握使用Nsight Graphics分析图形应用程序的性能特征:顶点处理、像素着色、光线追踪。学习光线追踪实时状态的分析与优化技术,减少RT实时状态溢出带来的性能损失。掌握着色器执行重排序(SER)在路径追踪中的应用。
(12)综合项目实战:端到端性能优化:结合所学知识,完成一个完整的GPU应用程序性能优化项目(如深度学习推理服务、科学计算模拟、游戏引擎渲染管线)。涵盖性能评估、瓶颈识别、优化方案设计、代码重构、效果验证和迭代优化的全流程,形成规范的性能优化报告。