インテルのみ表示可能 — GUID: ipp1476408832230
Ixiasoft
2.8.1. Kernels
Intel® FPGA SDK for OpenCL™ Offline Compilerは、get_global_id()やget_local_id()などのビルトインのワークアイテム関数を使用しないカーネルを単一のワークアイテムカーネルとしてコンパイルします。 それ以外の場合、オフライン・コンパイラーはカーネルをNDRangeカーネルとしてコンパイルします。
組み込みのWork-Item関数の詳細については、OpenCL Specification version 1.0の6.11.1: Work-Item Functionsのいセクションを参照してください。
単一のWork-Itemカーネルの場合、オフライン・コンパイラーはカーネル内のすべてのループをパイプライン化して、複数のループ反復を同時に実行できるようにします。コンパイラーがループの一部を効果的にパイプライン化できない場合、またはループをパイプライン化できない場合、カーネルのパフォーマンスが低下する可能性があります。
オフライン・コンパイラーは、NDRangeカーネルでループをパイプライン化できません。ただし、これらのループは複数のWork-Itemを同時に受け入れることができます。カーネルには複数のループがあり、それぞれにネストされたループがあります。外側のループごとにネストされたループの反復の総数を表にすると、カーネルのスループットは、通常、テーブル化した最大の反復の合計値だけ減少します。
効率的にNDRangeカーネルを実行するには、通常、多数のスレッドが必要です。