インテルのみ表示可能 — GUID: mwh1391806065304
Ixiasoft
3.1.3. チャネルまたはパイプのバッファー推論の最適化
バッファーされたチャネルまたはパイプの手動による追加に加えて、 Intel® FPGA SDK for OpenCL™オフライン・コンパイラーは可能な限りバッファーサイズを調整してカーネルのスループットを向上させます。
コンパイル時に、オフライン・コンパイラーは、相互作用するチャネルまたはパイプ間のスケジューリングの不一致を計算します。これらの不一致は、読み出しと書き込みの動作の不均衡を引き起こす可能性があります。オフライン・コンパイラーは、不均衡を修正するためにバッファー推論最適化を自動的に実行します。
次の例を検討してみましょう。
チャンネル付きカーネル | パイプ付きカーネル |
---|---|
|
|
オフライン・コンパイラーは、カーネル間のチャネルまたはパイプがサイクルを形成できない場合、バッファー推論の最適化を実行します。カーネル間のcyclは、カーネルから、書き込みチャネルまたは書き込みパイプ呼び出しを経由して元のカーネルに戻るパスです。この例では、カーネルproducerのライトチャネルまたはライトパイプコールが10サイクル離れてスケジュールされ、リードチャネルまたはリードパイプコールが15サイクル離れてスケジュールされているとします。C1への読み出し動作が発生する前に、5つの余分な書き込み動作が発生するかもしれないのであり、読み出しが一時的に不一致が存在するとC1に書き込み動作を。この不均衡を修正するために、オフライン・コンパイラーは、ストールを避けるためにc1に5サイクルのバッファーサイズを割り当てます。追加のバッファー容量は、 producerカーネルのc1書き込み動作とconsumerカーネルのc1読み出し動作を切り離します。