是否有任何方法从CUDA中的设备内核激发事件(出于基准测试目的,类似于CPU代码中的cudaEvents)?
例如,假设我想测量从内核启动到有史以来第一个启动计算的线程的时间,以及从最后一个离开计算的线程到CPU返回的时间。
我能做到吗?
设备运行时API(与动态并行一起使用)对流和事件的支持有限,但不支持事件计时。
所以,不,你不能那样做。
一个丑陋的解决方法是写入某个托管内存位置,并让主机端线程轮询该位置,并在值更改时触发事件。