高性能计算应用开发人员、算法工程师、计算机视觉开发者及科学计算研究人员。
掌握 CUDA 编程模型与线程层次结构(Grid、Block、Thread)。
理解 GPU 内存层次(全局内存、共享内存、寄存器)与优化策略。
能够独立编写并优化 CUDA 内核函数,解决实际计算问题。
GPU 计算概述:GPU 与 CPU 架构对比(多核并行 vs 众核并行);GPU 适合处理的并行模式(数据并行);CUDA 生态系统简介(CUDA Toolkit、cuBLAS、cuFFT)。
CUDA 编程模型:主机与设备的区分;内核函数(Kernel)的定义与启动;线程层次结构(Grid、Block、Thread)。
内存模型:全局内存(Global Memory);共享内存(Shared Memory);寄存器(Registers);常量内存(Constant Memory);纹理内存(Texture Memory)。
线程索引与数据映射:内置变量(threadIdx、blockIdx、blockDim、gridDim);线程与数据的映射策略;处理任意大小数据的方法。
共享内存与同步:共享内存的声明与使用;块内同步(__syncthreads());线程束(Warp)的概念与线程束级编程。
合并访问:全局内存的合并访问条件;数组结构体 vs 结构体数组;对齐要求对性能的影响。
原子操作:原子函数的种类(atomicAdd、atomicMin、atomicCAS);原子操作的性能代价;无原子操作的替代方案。
CUDA 流与并发:CUDA 流的概念;内存传输与计算的重叠;多个内核的并发执行;事件管理。
性能分析工具:NVIDIA Nsight Systems 的使用;NVIDIA Nsight Compute 的指标分析;热点识别与瓶颈诊断。
CUDA 库的使用:cuBLAS 线性代数库;cuFFT 快速傅里叶变换库;Thrust 模板库;与自定义内核的混合编程。
动态并行与高级特性:CUDA 动态并行(在 GPU 上启动新内核);CUDA 统一内存(Unified Memory);CUDA Graphs 优化内核启动开销。
综合实战项目:实现并优化矩阵乘法(GEMM)或卷积运算,对比不同优化策略(共享内存、合并访问、向量化)的性能提升。