⚡ CUDA 原子操作 & 同步机制

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