在我的CPU代码上,我在同一个循环上执行所有这些转换,但我想知道在cuda中应用它的最好方法。所以我设法摆脱了最外层的循环:循环1和循环2,并用一个cuda线程替换了每个cicle,但现在我不确定什么是更好的设计cuda_kernel{
DOcuda_kernel 1{
DO JUST FIRST OPERATION}
cuda
如果我使用相同的输入运行同一个内核几次,如下所示for(int i = 0; i < 2000; i++) {
mykernel<<<1,120>>>(...);然而,我认为它只是运行了2000次内核,这是有点谨慎的,因为从非CUDA代码到非CUDA代码的速度是如此惊人(~900秒~0.9秒)。那么,在这种情况下,CUDA会做什么样的优化呢?缓存结果?设置CUDA_LAUNCH_BLOCKING=1并没有改