比方說,我有一個需要隨機訪問1024個元素數組的32個線程塊。我想通過將塊從全局轉移到共享來減少全局內存調用的次數。我有兩個想法去做:將全局複製到共享內存的最佳方法
答:
my_kernel()
{
CopyFromGlobalToShared(1024/32 elements);
UseSharedMemory();
}
或B:
my_kernel()
{
if (first thread in block)
{
CopyFromGlobalToShared(all elements);
}
UseSharedMemory();
}
哪個更好?還是有另一種更好的方法?
我想說的第一個可能會更快,如果正確實施,原因很簡單,所有其他線程將等待第一個線程完成加載。 – JackOLantern