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

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

7.3.1. キャッシュ・メモリー

コンスタント・メモリーはグローバルメモリー上にありますが、カーネルは実行時にすべてのワークグループが共有するオンチップキャッシュにロードします。 たとえば、すべてのワークグループが使用する読み出し専用データがあり、定数バッファーのデータサイズが定数キャッシュに収まる場合、データを定数メモリーに割り当てます。定数キャッシュは、カーネルのいくつかの呼び出しで一定の高帯域幅のテーブル検索に最も適しています。定数キャッシュは、高いキャッシュヒット性能のために最適化されています。

デフォルトでは、定数キャッシュサイズは16 KBです。定数キャッシュサイズを指定するには、 -const-cache-bytes = <N>aocコマンドのオプション<N>バイト単位の一定のキャッシュサイズです。

長いメモリーレイテンシーを許容するための余分なハードウェアを持つグローバル・メモリー・アクセスとは異なり、定数キャッシュはキャッシュミスに対して大きなパフォーマンス上の不利益を被ります。 OpenCL™カーネルコードの__constant引数がキャッシュに収まらない場合、代わりに__global const引数を使用するとパフォーマンスが向上する可能性があります。ホスト・アプリケーションが定数キャッシュに既にロードされている定数メモリーに書き込む場合、キャッシュされたデータは定数キャッシュから破棄されます(つまり、無効化される)。

-const-cache-bytes=<N> のオプションについて詳しくは インテル® FPGA SDK for OpenCL™ プログラミング・ガイド定数メモリーキャッシュサイズの設定 (-const-cache-bytes=<N>)のセクションを参照してください。