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

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

4. パフォーマンスのボトルネックを特定するためのカーネルのプロファイリング

Intel FPGA Dynamic Profiler for OpenCLは、OpenCL™カーネルのパフォーマンスを評価するのに役立つデータを生成します。 Intel FPGA Dynamic Profiler for OpenCLはパフォーマンス・カウンターを備えたカーネル・パイプラインを計測します。これらのカウンターは、カーネルのパフォーマンスデータを収集します。このデータは、プロファイラGUIで確認できます。

次のOpenCLカーネルプログラムを検討してください。

__kernel void add (__global int * a,
                   __global int * b, 
                   __global int * c)
{
    int gid = get_global_id(0);
    c[gid] = a[gid]+b[gid];
}

下の図に示すように、Profiler計測器は、カーネルプログラム用に生成されたパイプライン全体で、デイジーチェインでパフォーマンス・カウンターを接続します。ホストは、これらのカウンターによって収集されたデータを読み出します。たとえば、 PCI Express® ( PCIe® )ベースのシステムでは、ホストはPCIe制御レジスターアクセス(CRA)または制御およびステータスレジスター(CSR)ポートを介してデータを読み出します。

図 62.  Intel FPGA Dynamic Profiler for OpenCL: パフォーマンス・カウンターの定数

Work-Itemの実行停止は、 インテル® FPGA SDK for OpenCL™ パイプラインのさまざまな段階で発生する可能性があります。大量のメモリーアクセスまたはロードおよびストア動作を伴うアプリケーションは、メモリー転送の完了を可能にするために頻繁に停止することがあります。Profilerは、カーネル・パイプライン内の大部分の停止を引き起こすロードおよびストア動作またはチャネルアクセスを識別するのに役立ちます。

Intel FPGA Dynamic Profiler for OpenCLの使用方法については、 インテル® FPGA SDK for OpenCL™ プログラミング・ガイドの「OpenCLカーネルのプロファイリングのセクションを参照してください。