インテル® FPGA SDK for OpenCL™プロ・エディション: プログラミング・ガイド

ID 683846
日付 4/01/2019
Public
ドキュメント目次

2.2. 複数のステップによる インテル® FPGA SDK for OpenCL™ プロ・エディション・デザイン・フロー

デザインの最適化に向けたイタレーションや、その他の修正を繰り返し行う場合は、複数のステップによるインテル FPGA SDK for OpenCLプロ・エディションのデザインフローを選択してください。

次の図は、SDKのデザインフローを段階で表しています。デザインフローの各ステップは、機能的なエラーとパフォーマンスのボトルネックを特定するためのチェックポイントとしての役割を果たします。これにより、イタレーションごとにフルコンパイルを実行することなく、OpenCLのカーネルコードを修正することができるようになります。コンパイルステップは一部、もしくはすべてを実行することのどちらも可能です。

図 5. 複数のステップによる インテル® FPGA SDK for OpenCL™ プロ・エディション・デザイン・フロー

SDKのデザインフローには次のステップがあります。

  1. エミュレーション

    x86-64ホストシステムの1つもしくは複数のエミュレーション・デバイスでOpenCLカーネルを実行し、その機能性を評価します。Linuxシステムでは、エミュレーターはシンボリック・デバッグのサポートを提供します。シンボリック・デバッグを使用すると、カーネルコードの機能的なエラーの原因を特定できます。

  2. 中間コンパイル

    中間コンパイルを行う方法は2つあります。デザインフローにはこの2つの方法のうち1つ、もしくは両方を含むことが可能です。

    • -cフラグを使用し1つもしくは複数の.clカーネル・ソース・ファイルをコンパイルする方法。これにより、OpenCLパーサーからの出力を含む.aocoオブジェクト・ファイルを生成するよう、オフライン・コンパイラーに命令が出されます。
    • -rtlフラグを使用し1つもしくは複数の.clカーネル・ソース・ファイルまたは.aocoファイルをコンパイルする方法。ただし、コンパイルはどちらか一方のファイルになります。これにより、オフライン・コンパイラーに以下のタスクを実行するよう命令が出されます。
      • 入力ファイルが.clファイルの場合、オフライン・コンパイラーは.aocoファイルを各カーネル・ソース・ファイルに生成し、それらをリンクし.aocrファイルを生成します。
      • 入力ファイルが.aocoファイルの場合、オフライン・コンパイラーはそれらをリンクし.aocrファイルを生成します。
      • <your_kernel_filename> ディレクトリーを作成します。
      オフライン・コパイラーは、.aocrファイルを使用し最終的な.aocxハードウェア・コンフィグレーション・ファイルを生成します。
      注: デフォルトのボードがXの環境において-cフラグでカーネルをコンパイルし、デフォルトのボードがYの環境において.aocoファイルを-rtlフラグでコンパイルする場合、オフライン・コンパイラーは.aocoファイルからボードXを読み出し、それを続くコンパイルの段階へ渡します。

  3. HTMLレポートのレビュー

    OpenCLアプリケーションの <your_kernel_filename>/reports/report.htmlファイルをレビューし、概算のカーネルのパフォーマンス・データが許容できるかを判断します。HTMLレポートでは、パフォーマンスを向上させるためのカーネルの修正案も提供されます。

  4. シミュレーション (プレビュー)

    OpenCLカーネルをシミュレーションで実行し、その機能性を評価します。シミュレーションでは、コンパイルに長時間を費やすことなくカーネルの機能の正確性および動的なパフォーマンスの評価を行うことができます。カーネルのデバッグに向け、カーネルの波形をキャプチャーし表示することが可能です。

  5. 高速コンパイル

    ハードウェアでのOpenCLカーネルの機能性を評価します。高速コンパイルステップは、フルコンパイルに比べわずかな時間で.aocxファイルを生成します。 インテル® FPGA SDK for OpenCL™オフライン・コンパイラーは簡単な最適化のみを実行し、コンパイル時間を削減します。

  6. インクリメンタル・コンパイル

    ハードウェアでのOpenCLカーネルの機能性を評価します。インクリメンタル・コンパイルでは、修正したカーネルのみをコンパイルし.aocxファイルを生成します。 インテル® FPGA SDK for OpenCL™オフライン・コンパイラーは、デザイン全体のサイズではなく、変更したデザインのサイズによってコンパイル時間をスケーリングし、生産性を向上させます。

  7. プロファイリング

    FPGAプログラミング・イメージにパフォーマンス・カウンターを挿入するようインテル FPGA SDK for OpenCL オフライン・コンパイラーに命令します。実行中、カウンターは性能情報を集めます。その情報は、 インテル® FPGA Dynamic Profiler for OpenCL™ GUIで確認することが可能です。

  8. フル・デプロイメント

    デザインフロー全体におけるOpenCLカーネルのパフォーマンスに納得したら、フルコンパイルを実行します。実行後、デプロイメントに適した.aocxファイルが生成されます。

HTMLレポートとカーネルのプロファイリングについては、 インテル® FPGA SDK for OpenCL™ : ベスト・プラクティス・ガイドを参照ください。