cuda:共享';常数';中间螺纹块
我们正在使用CUDA CFD代码进行实验,在该代码中,三维场被分解为一维或二维螺纹块(三维场的水平切片)。在许多情况下,一个块内的所有线程共享一个循环计算,该计算仅取决于高度,即,一个线程块内的所有线程都类似。优化这种情况的最佳方法是什么(特别是如果循环计算是整个内核中最昂贵的计算)?是否有可能让一个线程进行计算,并与其他线程共享结果cuda:共享';常数';中间螺纹块,cuda,Cuda,我们正在使用CUDA CFD代码进行实验,在该代码中,三维场被分解为一维或二维螺纹块(三维场的水平切片)。在许多情况下,一个块内的所有线程共享一个循环计算,该计算仅取决于高度,即,一个线程块内的所有线程都类似。优化这种情况的最佳方法是什么(特别是如果循环计算是整个内核中最昂贵的计算)?是否有可能让一个线程进行计算,并与其他线程共享结果 以我有限的CUDA知识,我能想到的最好的方法是:如果(threadIdx x和y为0)计算循环值,放入共享内存(?),所有线程在计算中都使用共享内存中的该值。这是
以我有限的CUDA知识,我能想到的最好的方法是:如果(threadIdx x和y为0)计算循环值,放入共享内存(?),所有线程在计算中都使用共享内存中的该值。这是有效的,还是有更好的方法?有很多方法可以做你想做的事情,但是如果没有更多的信息,就不可能说哪种方法最好 一些选项大致从“昂贵的计算并不十分复杂”到“昂贵的计算极其复杂”: