⚡ CUDA 原子操作 & 同步机制
🎯 30 章 · 深度解析
友好色系 · 从入门到性能分析
📘 点击卡片跳转对应章节 (01.html ~ 30.html)
01
CUDA 并行计算基础
GPU架构概览 · CUDA编程模型 · 线程层次结构 (Grid-Block-Thread)
02
环境搭建与工具链
NVIDIA驱动安装 · CUDA Toolkit配置 · Nsight调试工具简介
03
第一个CUDA程序
向量加法实现 · 核函数编写 · 内存分配与数据传输
04
CUDA内存模型
全局/共享/寄存器/本地/常量/纹理内存
05
共享内存与Bank Conflict
共享内存布局 · Bank冲突原理 · 优化技巧
06
原子操作基础
原子操作概念 · 为什么需要原子操作 · 原子函数列表
07
全局内存原子操作
atomicAdd · atomicSub · atomicExch · atomicMin · atomicMax
08
共享内存原子操作
在共享内存中使用原子操作 · 性能考量
09
原子操作的性能陷阱
串行化问题 · 竞争条件 · 避免过度使用原子操作
10
Warp级同步
__syncwarp() · Warp Shuffle指令 · Warp级归约
11
Block级同步
__syncthreads()屏障 · 同步代价 · 死锁风险
12
Grid级同步
隐式同步(cudaDeviceSynchronize) · 显式同步(事件/流)
13
CUDA事件与计时
事件创建/销毁 · 事件记录 · 计算核函数执行时间
14
CUDA流 (Stream)
流的概念 · 默认流与非默认流 · 流同步 · 流并发
15
多流并发与重叠
计算与数据传输重叠 · 多核函数并发 · 深度/广度优先调度
16
动态并行 (Dynamic Parallelism)
GPU启动GPU核函数 · 父子核函数同步
17
原子锁与自旋锁
GPU互斥锁实现 · 自旋锁代价 · Ticket锁实现
18
无锁编程技巧
原子操作实现无锁数据结构 · 无锁队列 · 无锁计数器
19
归约 (Reduction) 优化
树形归约 · Warp级归约 · 共享内存归约 · 原子操作归约
20
扫描 (Scan) 算法
并行扫描(Prefix Sum) · Kogge-Stone · Blelloch算法
21
直方图计算
原子操作直方图 · 私有化直方图 · 合并写入优化
22
稀疏矩阵运算
CSR格式 · SpMV (稀疏矩阵向量乘) CUDA实现
23
图算法中的原子操作
BFS的CUDA实现 · 原子操作管理Frontier
24
排序算法
奇偶排序 · 双调排序 · 归并排序的CUDA实现
25
内存合并访问
全局内存合并条件 · 对齐与步长 · SoA / AoS
26
Occupancy优化
Block大小选择 · 寄存器压力 · 共享内存与Occupancy权衡
27
CUDA错误处理
错误码检查 · cudaGetLastError · 同步/异步错误
28
多GPU编程
多GPU环境检测 · 点对点通信 · 多GPU同步策略
29
CUDA与深度学习
cuDNN简介 · Tensor Core基础 · 混合精度训练
30
CUDA性能分析
NVIDIA Nsight Compute · 性能瓶颈定位 · 优化迭代流程