1
2
1-将内容放入共享内存(SM)并在其中进行计算比使用全局内存更快。加载SM后同步线程非常重要,因此需要\uu同步线程。 2-这些变量可能用于澄清算法中的颠倒顺序。它只是用于切换某些部分:
第一次迭代;pout=1,pin=0。第二次迭代;pout=0,pin=1。 它在奇数迭代时偏移N个数量的输出,在偶数迭代时偏移输入。回到您的问题上来,使用threadId无法实现同样的效果。因为它在循环中不会改变。 3和;4-CUDA执行线程来运行内核。这意味着每个线程分别运行该代码。如果您查看伪代码并与CUDA代码进行比较,那么您已经使用CUDA并行化了外部循环。因此,每个线程将在内核中运行循环,直到循环结束,并等待每个线程完成,然后再写入全局内存。 希望有帮助。 |