比方说,我有一个需要随机访问1024个元素数组的32个线程块。我想通过将块从全局转移到共享来减少全局内存调用的次数。我有两个想法去做:将全局复制到共享内存的最佳方法
答:
my_kernel()
{
CopyFromGlobalToShared(1024/32 elements);
UseSharedMemory();
}
或B:
my_kernel()
{
if (first thread in block)
{
CopyFromGlobalToShared(all elements);
}
UseSharedMemory();
}
哪个更好?还是有另一种更好的方法?
我想说的第一个可能会更快,如果正确实施,原因很简单,所有其他线程将等待第一个线程完成加载。 – JackOLantern