私はOpenCLで作業しています。そして、次の例で作業項目がどのように実行されるかに興味があります。
ワークグループのサイズが 512 で、1 次元の範囲が 10000 です。カーネルは次のとおりです。
__kernel void
doStreaming() {
unsigned int id = get_global_id(0);
if (!isExecutable(id))
return;
/* do some work */
}
ここでは、次の ID を持つ要素を続行する必要があるかどうかを確認します。
512 サイズの最初のワークグループで実行が開始され、そのうちの 20 が によって拒否されたとしisExecutable
ます。GPU は最初の 492 要素を待たずに他の 20 要素を実行し続けますか?
関連する障壁やその他の同期技術はありません。