Intel® FPGA SDK for OpenCL™: ベスト・プラクティス・ガイド

ID 683521
日付 12/08/2017
Public
ドキュメント目次

4.3.4.5. ノーストール、低占有率、低帯域幅効率

ループに依存する依存関係は、LSUまたはチャネルの占有率が低く、帯域幅が狭くなる原因となるボトルネックとなります。
要確認: 理想的なカーネル・パイプライン条件は、ストール・パーセンテージが0%、占有率が100%、ボードの使用可能帯域幅に等しい帯域幅を持ちます。
図 71. OpenCLカーネルとプロファイラ解析の例

この例では、dst[]は、 FACTOR2ループの20回の反復とFACTOR1ループの回4回の繰り返しが実行されます。したがって、FACTOR2ループがボトルネックの原因となります。

ループボトルネックを解決するソリューションは以下の通りです。

  • FACTOR1をアンロールし、 FACTOR2は均等にループします。 FACTOR1ループをさらに展開するだけでは、ボトルネックは解消されません
  • カーネルをベクトル化し、各ループ反復中にMultiple Work-Itemを実行できるようにする