グローバルデバイスメモリのバッファからプロセッシングコアのローカルメモリにデータをコピーしたいのですが、ひねりがあります。
私はasync_work_group_copyについて知っています、そしてそれは素晴らしいです(というか、それは不格好で面倒ですが、機能しています)。ただし、私のデータは連続していません。つまり、コピーしたい 2 つの連続する Y バイトごとに X バイトが存在する可能性があります。
明らかに、役に立たないデータをすべてコピーするつもりはありません。また、ローカル メモリに収まらない可能性もあります。代わりに何ができますか?コピーを行うために実際のカーネルコードを書くことを避けたい、例えば
threadId = get_local_id(0);
if (threadId < length) {
unsigned offset = threadId * stride;
localData[threadId] = globalData[offset];
}