⚡ CUDA 动态并行 · 递归深潜 🧩 30 章 · 从入门到异构实战
🎒 友好色系 · 专业内核
01
什么是CUDA动态并行?为什么需要它?与传统内核调用的区别。
02
支持动态并行的GPU架构 (Kepler+),编译选项 -rdc=true,运行时API。
03
在GPU上启动内核 (cudaLaunchDevice),父子内核概念。
04
__global__函数在设备端的调用限制,__device__修饰符的作用。
05
cudaDeviceSynchronize在设备端的使用,隐式同步与显式同步。
06
GPU递归的可行性,栈空间限制,递归深度与性能。
07
使用动态并行实现树形归约,每个线程块处理子问题。
08
GPU上的QuickSort,递归划分与基准选择。
09
空间划分与动态并行,光线追踪中的应用。
10
全局内存分配 (cudaMallocFromDevice),内存池。
11
通过指针传递数据,共享内存的限制。
12
设备端错误码 (cudaError_t),cudaGetLastError在设备端的使用。
13
动态并行的开销,启动延迟,与CPU递归的对比。
14
动态并行中的死锁场景,循环依赖,资源耗尽。
15
最大嵌套层数 (24层),如何检测与避免溢出。
16
在设备端创建流 (cudaStreamCreate),多流并发。
17
设备端事件 (cudaEvent_t),记录事件与等待。
18
在子内核中使用纹理,只读缓存优化。
19
常量内存的只读特性,在递归中的使用。
20
原子加、原子CAS在递归中的应用。
21
图遍历,层级扩展,动态并行实现。
22
递归回溯,路径记录,GPU加速。
23
树构建与遍历,动态并行加速。
24
动态网格划分,递归加密。
25
BVH遍历,递归求交,动态并行。
26
使用cuda-gdb调试动态并行程序,断点设置。
27
NVIDIA Nsight分析动态并行,可视化嵌套调用。
28
过度递归导致栈溢出,未同步导致数据竞争。
29
减少启动次数,合并内存访问,使用共享内存。
30
动态并行的未来,与CUDA Graphs的结合,异构计算趋势。