假设我有一个包含 32 个线程的块,需要随机访问 1024 个元素的数组。我想通过最初将块从全局转移到共享来减少全局内存调用的数量。我有两个想法:
A:
my_kernel()
{
CopyFromGlobalToShared(1024 / 32 elements);
UseSharedMemory();
}
或 B:
my_kernel()
{
if (first thread in block)
{
CopyFromGlobalToShared(all elements);
}
UseSharedMemory();
}
哪个更好?或者还有其他更好的方法吗?