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

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

10.1. パフォーマンス・カウンターを使用したカーネル・パイプラインの測定 (-profile)

パフォーマンス・カウンターでOpenCLカーネルのパイプラインを測定するには、aocコマンドの-profile=(all|autorun|enqueued)オプションをカーネルをコンパイルする際に含めます。
重要: パフォーマンス・カウンターでVerilogコードを測定すると、ハードウェアのリソース使用率が増加 (つまりFPGAのエリア使用率が増加) し、通常パフォーマンスが低下します。
  • <your_kernel_filename>.aocxファイルのVerilogコードをパフォーマンス・カウンターで測定するには、 aoc -profile=(all|autorun|enqueued) <your_kernel_filename>.clコマンドを呼び出します。以下に詳細を説明します。
    • all引数は、 <your_kernel_filename>.clファイルのすべてのカーネルをパフォーマンス・カウンターで測定します。これは引数が指定されていない場合のデフォルトのオプションです。
    • autorun引数は、自動実行のカーネルのみをパフォーマンス・カウンターで測定します。
    • enqueued引数は、自動実行以外のカーネルのみをパフォーマンス・カウンターで測定します。
    重要:
    • 複数の異なるカーネルをプロファイリングする際は、異なる.aocxファイルに同じカーネル名を使用しないでください。同じカーネル名が付けられている場合、それらのカーネルのプロファイル・データは正確なものになりません。
    • clGetProfileDataDeviceIntelFPGAホスト・ライブラリー呼び出しへの入力にかかわらず、 インテル® FPGA Dynamic Profiler for OpenCL™ は、コンパイル中に示したカーネルタイプのみをプロファイルします。
    • すべてのカーネルまたはエンキューされたカーネルのOpenCLカーネル・パイプラインをパフォーマンス・カウンターで測定すると、OpenCLランタイム環境でのハードウェアのカーネル呼び出しキューの使用が無効になります。そのため、プロファイルの時間が異なる場合があります。
    注意:
    自動実行カーネルをプロファイルすると、カウンターに対するハードウェアのオーバーヘッドが発生します。大規模なデザインの場合、オーバーヘッドによってfmaxおよびデザイン周波数が低下する可能性があります。また、 インテル® FPGA Dynamic Profiler for OpenCL™ がすべてのカーネルをプロファイルすると、デザインがチップに収まらなくなる可能性もあります。
  • ローカルディスクからホスト・アプリケーションを実行し、 <your_kernel_filename>.aocxファイルをFPGAで実行します。カーネルの実行中、カーネル・パイプライン全体のパフォーマンス・カウンターはプロファイル情報を収集します。ホストは現在の作業ディレクトリーのprofile.monモニター記述ファイルにその情報を保存します。
    注意:
    ネットワーク・ディスクのアクセスが遅いため、ネットワークのディレクトリーからホスト・アプリケーションを実行すると、各カーネルの実行に遅れをもたらす可能性があります。この遅れにより、ホスト・アプリケーションの全体的な実行時間が長くなる可能性があります。さらに、ランタイムがプロファイル出力データをディスクに格納している間に、カーネルの起動に遅れが発生する可能性もあります。