首页
›
AI算力与GPU工程
›
017-Nsight
›
《CUDA核函数优化与算子调优实战》
VIP20
本课程属于:017-Nsight
AI算力与GPU工程 · 共 20 门相关课程,组合学习更完整。
查看所属VIP全部课程 →
← 返回所属目录
咨询 / 购买
CUDA核函数优化与算子调优实战
📚 共计 30 章节
01
CUDA编程模型与GPU架构基础
GPU硬件架构概览(SM、Warp、Memory Hierarchy)、CUDA编程模型(Grid-Block-Thread层次结构)、Host与Device内存管理、第一个CUDA程序:向量加法。
入门
GPU架构
02
线程束发散与优化
Warp执行模型详解、分支发散的原因与代价、通过数据重排避免发散、使用__syncwarp()与协作组、实战:规约操作的Warp优化。
Warp
分支
03
共享内存与Bank Conflict
共享内存架构(32 Banks)、Bank Conflict的产生机制、解决Bank Conflict的常用模式(Padding、Swizzle)、动态共享内存分配、实战:矩阵转置优化。
共享内存
Bank
04
全局内存合并访问
全局内存的访问粒度(32/128字节)、合并访问的条件与判断、结构体数组(AoS)vs 数组结构体(SoA)、使用cudaMallocPitch与cudaMemcpy2D、实战:图像滤波的合并访问优化。
内存合并
SoA
05
常量内存与纹理内存
常量内存的特点与使用场景、__constant__与cudaMemcpyToSymbol、纹理内存的缓存特性、纹理对象与表面内存、实战:光线追踪中的纹理查找。
纹理
常量
06
寄存器压力与本地内存
寄存器文件分配策略、寄存器溢出(Spilling)的原因、使用__launch_bounds__控制寄存器数量、本地内存(Local Memory)的代价、实战:减少寄存器压力的技巧。
寄存器
Spilling
07
Occupancy与Launch Configuration
Occupancy计算公式、CUDA Occupancy Calculator的使用、Block Size与Grid Size的选择策略、动态并行(Dynamic Parallelism)简介、实战:找到最优Launch Configuration。
Occupancy
配置
08
原子操作与锁
全局内存原子操作(atomicAdd等)、共享内存原子操作、原子操作的性能瓶颈、使用Warp级原语替代原子操作、实战:直方图统计的原子操作优化。
原子
同步
09
Stream与异步并发
CUDA Stream的概念与创建、Host与Device异步操作、使用Event进行同步与计时、多Stream并发执行Kernel、实战:流水线数据加载与计算。
Stream
异步
10
CUDA Graph与Kernel Launch优化
CUDA Graph的引入背景、Graph的构建与实例化、捕获与回放Kernel、Graph的更新与重放、实战:减少Launch Overhead。
Graph
Launch
11
CUDA统一内存(Unified Memory)
统一内存的编程模型、页面错误与迁移机制、使用cudaMallocManaged、Prefetching与Advise优化、实战:简化大规模图数据处理。
统一内存
UM
12
CUDA库(cuBLAS/cuFFT/cuDNN)的使用与调优
cuBLAS的Handle与API风格、cuFFT的Plan与Batch处理、cuDNN的Tensor与Op Graph、选择合适的算法(cublasGemmEx)、实战:使用cuBLAS加速矩阵乘法。
cuBLAS
cuDNN
13
NVIDIA Nsight Systems性能分析
Nsight Systems的安装与配置、Timeline视图解读、Kernel执行与API调用分析、识别CPU-GPU同步瓶颈、实战:分析并优化端到端应用。
Nsight
分析
14
NVIDIA Nsight Compute性能分析
Nsight Compute的Kernel Profiling、Roofline模型分析、Memory与Compute Workload分析、Scheduler Statistics解读、实战:使用Nsight Compute定位矩阵乘法的瓶颈。
Nsight Compute
Roofline
15
CUDA C++核心语法进阶
C++11/14/17在CUDA中的应用、Lambda表达式与设备函数、模板与SFINAE在CUDA中的使用、constexpr与设备常量、实战:编写泛型Kernel。
C++
模板
16
CUDA中的Tensor Core编程
Tensor Core硬件原理(MMA指令)、Warp Matrix Multiply-Accumulate(wmma)API、使用nvcuda::wmma命名空间、布局与数据类型要求、实战:使用Tensor Core加速HGEMM。
Tensor Core
wmma
17
CUDA中的半精度与混合精度训练
FP16与BF16格式介绍、使用half与__half类型、混合精度训练的数学原理(Loss Scaling)、使用cublasHgemm与cublasGemmEx、实战:混合精度训练一个简单网络。
FP16
混合精度
18
稀疏矩阵与稀疏计算
稀疏矩阵存储格式(CSR、COO、ELL)、cuSPARSE库的使用、SpMV(稀疏矩阵向量乘)的CUDA实现、使用CUSP或cuSPARSE进行优化、实战:图算法中的SpMV优化。
稀疏
SpMV
19
归约与扫描操作优化
树形归约的Warp与Block实现、使用Shuffle指令优化归约、并行扫描(Prefix Sum)的Blelloch算法、使用CUB库进行归约与扫描、实战:实现高效的Softmax Kernel。
归约
扫描
20
排序与选择算法
Bitonic Sort的CUDA实现、Radix Sort的并行化、使用CUB的DeviceRadixSort、Selection与Top-K算法、实战:大规模数据排序。
排序
Radix
21
卷积操作的CUDA优化
im2col算法与GEMM、Winograd算法简介、使用cuDNN进行卷积、手写卷积Kernel的优化(共享内存tiling)、实战:优化一个3x3卷积层。
卷积
im2col
22
Transformer模型中的CUDA优化
Attention机制的CUDA实现(Flash Attention思想)、LayerNorm与Softmax的融合、GELU激活函数的优化、使用FasterTransformer库、实战:实现一个高效的Attention Kernel。
Transformer
Attention
23
CUDA中的图神经网络(GNN)优化
GNN计算模式(Gather-Apply-Scatter)、消息传递的并行化、使用cuGraph库、邻居采样的CUDA优化、实战:GCN的CUDA实现。
GNN
图神经网络
24
多GPU编程
使用cudaSetDevice管理多GPU、Peer-to-Peer(P2P)访问与cudaMemcpyPeer、多GPU Stream与Event同步、使用NCCL进行集合通信、实战:多GPU并行训练。
多GPU
NCCL
25
CUDA与MPI混合编程
MPI基础概念与CUDA-Aware MPI、使用MPI分发数据到多节点、GPU Direct RDMA简介、混合并行策略(Data Parallelism + Model Parallelism)、实战:多节点分布式训练。
MPI
分布式
26
CUDA中的错误处理与调试
CUDA错误码与cudaGetLastError、使用cuda-gdb进行调试、CUDA-MEMCHECK检测内存错误、使用compute-sanitizer工具、实战:调试一个内存越界的Kernel。
调试
错误处理
27
CUDA中的数学库与自定义函数
使用__device__数学函数(sinf、expf等)、快速近似函数(__sinf、__expf)、使用CUDA Math API、自定义设备函数的内联与优化、实战:实现一个快速Sigmoid函数。
数学函数
Sigmoid
28
CUDA中的随机数生成
cuRAND库的使用(Philox、MRG32k3a)、设备端随机数生成、并行随机数生成的状态管理、使用cuRAND生成不同分布、实战:蒙特卡洛模拟的CUDA实现。
cuRAND
随机
29
CUDA中的FFT与信号处理
cuFFT库的Plan与Execution、批量FFT与多维FFT、实部FFT与卷积、使用cuFFT进行信号滤波、实战:使用cuFFT加速图像卷积。
cuFFT
信号处理
30
CUDA算子融合与Kernel合并
算子融合的原理与收益、Element-wise算子的融合、Reduce与Element-wise的融合、使用JIT编译(NVRTC)实现动态融合、实战:实现一个LayerNorm的融合Kernel。
算子融合
JIT
所属VIP或分类
同VIP:AI训练CUDA算子开发与性能优化实战
同VIP:CUDA多卡同步、NCCL通信与性能调优
同VIP:CUDA算子优化与显存管理实战