假设我已经向设备发送了两个连续的内核调用。是等待完成第一个还是同时执行它们?如果它们是并行执行的,它们是否相互交叉,例如用于存储器访问?在CUDA中用于此类案例的范例是什么?
答案 0 :(得分:3)
同一个CUDA设备的两个连续内核启动将同时运行如果:
有关详细信息,请参阅this section in the CUDA C Programming Guide。
正如sgar91评论的那样,如果这些内核共享全局内存,那么程序员有责任编写正确同步的程序以避免竞争条件。如果两个内核只是读取相同的内存,那么就没有竞争条件。