提交一组asynchronous任务,然后用while(cudaEventQuery(stop)==cudaErrorNotReady)
{ counter ++ }
方式计时
若在提交任务之后、这段循环之前
加一些事让CPU做,貌似对counter最终取值几乎没有影响。
我试验了加这些任务
system(“pause”)
system(“copy XXXXX”)
以及循环做乘法并cout输出
都没影响
但是,如果在这些无聊任务之前加一句
cudaEventQuery(stop)
在玩这些任务之后
counter的输出就变成0了
这是否说明
asynchronous模式任务,在第一次查询任务状态后才开始执行?
参见CUDA自带的Samples,asyncAPI