01
CUDA内存模型全景
从全局内存到寄存器,一张图看懂GPU存储层次。
全景层次
02
cudaMalloc与cudaFree
设备内存的申请与释放,基础但容易踩坑。
内存管理基础
03
cudaMemcpy基础
主机到设备、设备到主机、设备到设备的三种传输模式。
传输模式核心
04
cudaMemcpy的同步语义
默认是同步的,但你真的理解它的阻塞行为吗?
同步阻塞
05
cudaMemcpyAsync与流
异步拷贝如何实现计算与传输的重叠。
异步流
06
固定内存(Pinned Memory)
为什么它能加速主机-设备传输?原理与实战。
固定内存加速
07
零拷贝内存(Zero-Copy)
什么时候该用?什么时候不该用?
零拷贝场景
08
统一内存(Unified Memory)
CUDA 6引入的“魔法”,自动迁移数据。
统一内存自动
09
统一内存的页错误与性能陷阱
为什么有时候它比手动拷贝还慢?
页错误陷阱
10
cudaMemcpy2D与cudaMemcpy3D
处理二维/三维数组的正确姿势。
2D/3D数组
11
cudaMemcpyPeer与Async
同一节点内多GPU之间的直接拷贝。
多GPUPeer
12
GPUDirect RDMA
绕过CPU,GPU与网卡/存储设备直接通信。
RDMA直通
13
cudaHostAlloc的四种模式
Default, Portable, Mapped, WriteCombined
主机分配模式
14
cudaMallocHost与cudaFreeHost
固定内存的另一种分配方式。
固定内存API
15
cudaMallocManaged惰性分配
内存不会立即分配,直到第一次访问。
惰性统一内存
16
cudaMemPrefetchAsync
手动预取数据到指定设备,优化统一内存性能。
预取性能
17
cudaMemAdvise
给驱动程序提供内存访问模式提示,提升效率。
提示驱动
18
cudaMemset与cudaMemsetAsync
设备内存的初始化与异步清零。
初始化异步
19
内存拷贝的带宽测量
如何准确计算实际传输速度?
带宽测量
20
带宽瓶颈分析:PCIe Gen3/4/5
理论值与实测值对比。
PCIe瓶颈
21
双缓冲(Double Buffering)
用两个缓冲区隐藏传输延迟。
双缓冲延迟隐藏
22
多流并发拷贝
如何用多个流同时传输不同数据块?
多流并发
23
cudaEvent与内存拷贝同步
用事件精确控制拷贝与计算的时序。
事件同步
24
协作组与内存拷贝
cudaLaunchCooperativeKernel的特殊内存需求。
协作组特殊
25
内存拷贝的错误处理
cudaError_t常见返回值与调试技巧。
错误调试
26
CUDA 12新特性
cudaMemcpy3DPeer与增强异步拷贝API。
CUDA12新API
27
性能调优工具
nsys、ncu、nvprof的使用方法。
工具调优
28
实战:向量加法优化
从朴素到极致的内存拷贝优化。
实战向量加法
29
实战:矩阵转置与拷贝
合并与非合并访问的博弈。
矩阵转置合并访问
30
实战:流水线并行与多GPU
多GPU通信的工程实践。
流水线多GPU