1024 要素の配列にランダム アクセスする必要がある 32 個のスレッドのブロックがあるとします。最初にブロックをグローバルから共有に転送することで、グローバル メモリ呼び出しの数を減らしたいと考えています。私はそれについて2つのアイデアがあります:
A:
my_kernel()
{
CopyFromGlobalToShared(1024 / 32 elements);
UseSharedMemory();
}
または B:
my_kernel()
{
if (first thread in block)
{
CopyFromGlobalToShared(all elements);
}
UseSharedMemory();
}
どちらが良いですか?または、別のより良い方法はありますか?