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

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

2.5.2. Kernel Memory Viewer の特長

多くのアルゴリズムでは、データ移動がボトルネックになることがよくあります。High Level Design レポート (report.html) 内の Kernel memory viewer は、 Intel® FPGA SDK for OpenCL™オフライン・コンパイラーカーネルのメモリーシステム上のデータ接続をどのように解釈するかを示しています。 kernel memory viewer を使用すると、 カーネルデザインのデータ移動のボトルネックの特定に役立ちます。

更に、メモリーアクセスの一部のパターンは LSU ( ロードストアー・ユニット ) で望まない調停を引き起こし、 カーネルのスループット性能に影響を与える可能性があります。 Kernel memory viewer を使用すると、LSU で望ましくない調停が発生する可能性のある位置を見つけることができます。

Kernel Memory Viewer には次のペインがあります。
Memory List
Memory List ペインは、 カーネルの階層、その カーネル内のメモリー、および対応するメモリーバンクを表示します。

リストにあるメモリー名をクリックすると、 Kernel memory viewer ペイン内のメモリーがグラフィック表示されます。また、メモリーを宣言したコード内のラインは、Source Code ペインでハイライトで表示されます。

メモリーバンクでのチェックボックスをクリアーすると、そのバンクが Kernel Memory Viewer ペインに表示され、複雑なメモリーデザインを表示する際に特定のメモリーバンクに焦点を当てるのに役立ちます。デフォルトでは、 カーネルメモリー内のすべてのバンクが選択され、 Kernel Memory Viewer ペインで表示されます。

Kernel Memory Viewer
Kernel Memory Viewer ペインは、メモリーシステム内のバンク上のロジックポートを特定するためにロードとストアー間の接続を表示します。次のノードのタイプは Kernel Memory Viewer ペイン内で表示される可能性があり、 kernelメモリーシステムによります。
  • Memory node: メモリー
  • Bank node: メモリー内のバンク。Memory List ペインで選択されているバンクのみ表示されます。Memory List ペイン内でのバンクの選択は複雑なメモリーデザインの表示に役立ちます。
  • Port node: バンクでのロジックポート。次の 3 種類のポートがあります。
    • R: 読み取り専用ポート
    • W: 書き込み専用ポート
    • RW: 読み取りおよび書き込みを有するポート
  • LSU node: メモリーに接続されるストアー (ST) またはロード (LD) ノード
  • Arbitration node: アービトレーション (ARB) ノードは LSU が共有ポートノードへのアクセスを競合していることを示します。
  • Port-sharing node: ポートシェアリング (SHARE) ノードは LSU が共有ポートノードへの排他的なアクセスを持つことを示しているため、ロードストアー・ユニットにはストールがありません。

任意のノードにカーソルを置くと、そのノードの属性が表示されます。

LSU ノードにカーソルを置くと、LSU ノードから LSU が接続するすべてのポートまでのパスがハイライトで表示されます。

ポートノードにカーソルを置くと、ポートノードからポートノードに格納されているすべての LSU までのパスがハイライトで表示されます。

ノードを選択するためにクリックし、Details ペインにノード属性を表示します。

Details
Details ペインは Kernel Memory Viewer ペインで選択されたノードの属性を表示します。例えば、 カーネル内のメモリーを選択する際、 ペインはソースコードで指定した任意のユーザー定義の属性と同様に、メモリーバンクの幅や深さなどの情報を表示します。

Details ペインの内容は Kernel Memory Viewer ペイン内で異なるノードを選択するまで保持されます。