来自for循环内部的CUDA内核调用

来自for循环内部的CUDA内核调用,cuda,Cuda,我有一个CUDA内核,它是从for循环中调用的。差不多 for(i=0; i<10; i++) { myKernel<<<1000,256>>>(A,i); } for(i=0;i对同一流中的内核启动进行序列化。如果有足够的资源(SMs、共享内存等),来自不同流的内核调用可能会重叠对同一个流的操作进行序列化。在流中的前一项工作完成之前,GPU无法读取pushbuffer中的下一项。CC2.x-3.0可以支持16个并发内核(如果从不同的流发出,并且

我有一个CUDA内核,它是从for循环中调用的。差不多

for(i=0; i<10; i++) {
   myKernel<<<1000,256>>>(A,i);
}

for(i=0;i对同一流中的内核启动进行序列化。如果有足够的资源(SMs、共享内存等),来自不同流的内核调用可能会重叠

对同一个流的操作进行序列化。在流中的前一项工作完成之前,GPU无法读取pushbuffer中的下一项。CC2.x-3.0可以支持16个并发内核(如果从不同的流发出,并且没有虚假依赖项或重大状态更改)。GPU将按照内核通过驱动程序提交的顺序将工作分发给SMs。这意味着并行工作可以无序完成,但始终会按顺序分发。有关更多信息,请参阅