OpenCL ボード用 AN 824 FPGA SDK
サポートパッケージのフロアプラン
ユーザーガイド
インテル® FPGA SDK for OpenCL™ ボード サポート パッケージ フロアプラン最適化ガイド
Intel® FPGA SDK for OpenCL™ ボード サポート パッケージ (BSP) フロアプラン最適化ガイドは、OpenCL) BSP のフロアプランニング ガイドラインを提供します。また、最適な平均最大動作周波数でベース シードを取得し、BSP リソースの使用効率を評価する方法についても説明します。
このドキュメントは、Khronos Group の OpenCL 仕様バージョン 2 で説明されている OpenCL(1.0) の概念に精通していることを前提としています。
OpenCL BSP コンパイルフロー
OpenCL BSP は次のタイプのコンパイル フローをサポートしています。
- フラット コンパイル [–bsp-flow flat]: 設計全体 (BSP とカーネルで生成されたハードウェア) のフラット コンパイルを実行します。
- ベースコンパイル [–bsp-flow base]: base.qsf の LogicLock 制限を使用してベースコンパイルを実行します。 fileカーネル クロック ターゲットが緩和され、BSP ハードウェアがタイミングを満たすための自由度が高まります。静的領域である BSP ハードウェアを保持するために、base.qar データベースが作成されます。
- インポートコンパイル [ ]: base.qar データベースからタイミングのクローズド静的領域を復元し、カーネルによって生成されたハードウェアのみをコンパイルします。また、カーネル クロック ターゲットを増やして、最適なカーネル最大動作周波数 (fmax) を取得します。
OpenCL BSP フロアプラン パーティション
OpenCL BSP フロアプランは、主に次の 2 つの領域に分かれています。
- 静的領域: 静的なままの BSP 関連ハードウェアを持つ領域を表します。ベース コンパイル中にこの領域のタイミングは閉じられます。一般に、この領域で使用されるチップ リソースを最小限に抑えてタイミングを閉じることが目標です。
- カーネル領域: カーネルを含む freeze_wrapper_inst|kernel_system_inst モジュール用に予約されている部分再構成 (PR) 領域を表します。一般に、この領域用にチップ リソースを最大限に予約することが目標です。
- インテル FPGA SDK for OpenCL は、公開されている Khronos 仕様に基づいており、Khronos コンフォーマンス テスト プロセスに合格しています。 現在の適合状況は、次の場所にあります。 www.khronos.org/conformance.
- OpenCL および OpenCL ロゴは Apple Inc. の商標であり、Khronos Group™ の許可を得て使用されています。
Intel Corporation。無断複写・転載を禁じます。Intel、Intel ロゴ、その他の Intel マークは、Intel Corporation またはその子会社の商標です。Intel は、FPGA および半導体製品が Intel の標準保証に従って現在の仕様どおりに動作することを保証しますが、製品およびサービスは予告なく変更されることがあります。Intel は、Intel が書面で明示的に同意した場合を除き、ここに記載されている情報、製品、またはサービスを適用または使用したことに起因する責任または義務を一切負いません。Intel のお客様は、公開されている情報に依拠する前、および製品またはサービスを注文する前に、デバイスの最新版仕様を入手することをお勧めします。
*その他の名称およびブランドは、一般に各社の所有物である場合があります。
OpenCL BSPフロアプランニングのガイドライン
- フラットコンパイルから始めて、BSPのすべての主要コンポーネントが自然に配置される場所を理解します(特にPCIeやDDRなどのI/O接続を持つIPブロック)。BSPを設計する際には、パイプラインの確立を検討する必要があるかもしれません。tagタイミングを近づけるために、IP 間のパスを狭めます。最初にフラット コンパイル シード スイープを実行して、繰り返し失敗するパスを特定し、次にそれらの修正を試みる必要があります。
ヒント: — フラット コンパイル シード スイープでのタイミング クローズ率が良好であれば、ベース コンパイル タイミングがクローズする可能性が高くなります。
— mm_interconnect*(Qsysによって追加されたコンポーネント)で一貫した障害が見られる場合は、Qsysインターコネクトでシステムを開きます。 view故障した相互接続の複雑さを観察します。パイプラインフリップフロップを追加することができます。 viewer を使用するとタイミングが改善されます。それでも問題が解決しない場合は、Avalon パイプライン ブリッジを追加して mm_interconnect* クリティカル パスを分割する必要がある可能性があります。 - ベースコンパイル中に、freeze_wrapper_inst|kernel_system_inst を含むカーネル領域で LogicLock を開始します。他の制限がない場合、Intel Quartus Prime はチップの残りの静的領域に BSP ハードウェアを自由に配置できます。フラットコンパイルとチッププランナーを使用して、PCIe や DDR などの BSP ハードウェアのサイズと場所を特定します。次に、LogicLock を使用して、BSP ハードウェアのメインのクラスター領域を避けながらカーネル領域を予約します。
ヒント: 使用されているチップ ファミリがリファレンス プラットフォームと同じであり、BSP コンポーネントが類似している場合は、OpenCL リファレンス BSP に同梱されている freeze_wrapper_inst|kernel_system_inst の LogicLock 領域から開始して、障害に対処する方が速い場合があります。 - BSP に次の追加コンポーネントを追加できます。
— メモリ バンク: メモリ バンクを追加する場合は、タイミングを満たすためにパイプライン ブリッジを追加する必要がある場合があるため、I/O バンクの場所を特定する必要があります。
— I/O チャネル: ビデオ、イーサネット、シリアル インターフェイスなどの I/O チャネルを追加できます。I/O チャネルを追加する場合は、タイミングを閉じるのが難しい場合にパイプライン用に新しい LogicLock 領域を適用する必要がある場合があるため、I/O バンクの場所を特定する必要があります。
ヒント: パイプラインブリッジを追加する必要がある場合(例:amp大きな配線遅延によりタイミング障害が発生する可能性がある場合は、チップ内のソース ロジックから宛先ロジックまでの配線距離を考慮して、カーネル領域用に予約されているスペースの一部を解放します。 - カーネル用に LogicLock 領域を予約する場合は、次の一般的なガイドラインに従ってください。
— BSP で要求されない限り、すべての DSP 列を kernel_system に配置しようとします。
— kernel_system 用にさらにリソースを予約しようとします。
— カーネル領域のノッチの数を最小限に抑えるようにしてください。
次の図は、PCIe と DDR バンクの間にパイプライン ブリッジを配置するために追加されたノッチを示しています。
図 1. 10 リリースの Intel Arria® 17.0 GX 向け OpenCL BSP フロアプラン
最大動作周波数のガイドライン
カーネルによって達成される最大動作周波数 (fmax) は、ほとんどの IP がすでに最適化されているため、FPGA の速度に大きく依存します。ただし、BSP フロアプランによっては fmax が低下する可能性があります。例:ampつまり、通常、BSP のカーネル領域内のカットアウトの数はカーネル fmax に影響します。
次の図に示すように、最良の平均 fmax を生成する最良のベース シードを取得するには、次の手順を実行します。
- タイミングを満たす最初のベース シードを選択するのではなく、ベース コンパイルでシード スイープを実行します。
- インポートコンパイルを実行する(exからいくつかのカーネルを使用して)amp通過するすべてのベースシードに、さまざまなデザインを適用します。
- すべての基本シードの平均 fmax を計算します。
- 最も高い平均 fmax を生成するベース シードを選択します。
平均 fmax が最良のベース シードは、BSP でのリリースに適しています。推奨手順とは異なるアプローチを採用する場合は、カーネル インポート コンパイル プロセスの fmax に 5 ~ 10% の変動が見られる場合があります。
図2. 最適なベースシードの特定
- フロアプランの制限なしでカーネルがどれだけ速く実行できるかを理解するには:
1. カーネルのフラット コンパイルを実行し、fmax を観察します。
2. 同じカーネルでインポート コンパイルを実行し、fmax を観察します。
3. fmax の結果を比較します。
フロアプランの制限により、import compile fmax は常に flat compile fmax よりも低くなります。シード ノイズを回避するには、より多くのベース シードを使用してカーネルをコンパイルし、fmax 結果を比較する際に平均 fmax を考慮します。 - ベース コンパイルからのカーネル fmax をフラット コンパイルまたはインポート コンパイルと比較しないでください。カーネル クロック ターゲットはベース コンパイル中に緩和されるため、良い結果が得られることはありません。
- ベースまたはインポート コンパイルでカーネル クロックのクリティカル パスを観察します。クリティカル パスがフロアプランでカーネルから静的領域に渡っている場合は、フロアプランを変更するか、ベース シードをさらにいくつか実行して、このクリティカル パスを回避します。
BSP リソース利用効率を評価するためのガイドライン
リソース利用率が高いほどtagつまり、BSPの静的領域での領域利用率が向上します。リソース利用率が高いほど、tage は、カーネル領域に使用できるリソースが増えることも意味します。
リソース使用率を計算するには、以下の手順に従ってください。tagBSP の e:
- Fitter レポートのパーティション統計セクションで使用可能な top.fit.rpt または base.fit.rpt から FPGA 内のすべてのリソースの値を取得します。
- 「freeze_wrapper_inst|kernel_system_inst」(カーネル領域)の値を減算します。
ヒント:
他のリソースの値よりも、アダプティブロジックモジュール(ALM)の値に重点を置きます。リソース使用率がtagALMのeはOpenCLリファレンスBSPに近い。非常に高い割合tagALM の e は輻輳を引き起こす可能性があり、コンパイル時間が長くなり、複雑なカーネルでルーティング輻輳が発生する可能性があります。ただし、静的領域領域をいつでも増減して、コンパイル時間と fmax を観察できます。
次の表は、10 リリースにおける Arria ® 17.0 GX デバイスの OpenCL BSP リソース使用率を示しています。
表1.
10 リリースにおける IntelArria 17.0 GX デバイスの OpenCL BSP リソース使用率
利用可能な合計 | カーネル用に予約済み | BSPで利用可能 | BSP が使用 | 0/0 | |
ALM | 427200 | 393800 | 33400 | 23818. | 71.% |
レジスター | 1708800 | 1575200 | 133600 | 38913 | 29.% |
M2OK | 2713 | 2534 | 179 | 134 | 75.% |
DSP | 1518 | 1518 | 0 | 0 | 該当なし |
静的領域に DSP ブロックが存在しないような方法でフロアプランニングが実行されていることを確認します。
ドキュメントの改訂履歴
表2.
Intel FPGA SDK for OpenCL ボードサポートパッケージフロアプラン最適化ガイドのドキュメント改訂履歴
日付 | バージョン | 変更点 |
17月XNUMX日 | 初回リリース。 |
オンライン版
フィードバックを送信
ID: 683312
AN-824
バージョン: 2017.08.08
AN 824: Intel® FPGA SDK for OpenCL™ ボード
サポートパッケージフロアプラン最適化ガイド
ドキュメント / リソース
![]() |
intel AN 824 FPGA SDK for OpenCL ボード サポート パッケージ フロアプラン [pdf] ユーザーガイド AN 824 FPGA SDK for OpenCL ボード サポート パッケージ フロアプラン、AN 824、FPGA SDK for OpenCL ボード サポート パッケージ フロアプラン、OpenCL ボード サポート パッケージ フロアプラン、ボード サポート パッケージ フロアプラン、サポート パッケージ フロアプラン、パッケージ フロアプラン、フロアプラン |