1. 编程式依赖启动与同步
编程式依赖启动机制允许依赖性的次级内核在其依赖的主内核(位于同一CUDA流中)执行完成前启动。该技术自计算能力9.0及以上的设备开始支持,当次级内核可完成大量不依赖主内核结果的工作时,能显著提升性能。
1.1. 技术背景
CUDA应用程序通过向GPU启动并执行多个内核来利用其计算能力。图10展示了典型的GPU活动时间线。
在这里,secondary_kernel
在 primary_kernel
完成执行后启动。通常需要串行执行,因为 secondary_kernel
依赖于primary_kernel
生成的结果数据。如果 secondary_kernel
不依赖于 primary_kernel
,则可以使用 CUDA 流(Streams
)使它们并发运行。即使 secondary_kernel
依赖于 primary_kernel
,仍然存在一定的并发执行潜力。例如,几乎所有的内核在执