インテル® FPGA SDK for OpenCL* を利用して OpenCL カーネル・プログラムを記述する際に、動的インデックスを必要とする配列を宣言する場合、レジスタとブロック RAM どちらで実装されますか?

OpenCL

カテゴリ:OpenCL*
ツール:-
デバイス:Arria® V


変数をレジスタで実装するか、ブロック RAM で構成するかは Altera Offline Compiler (AOC) がコンパイル時に決定します。
レジスタで実装する事でシングル・サイクルでデータ・アクセスが可能なため性能面で利点がありますが、通常 AOC は行列の要素に変数でアクセスするコードにおいてはその行列変数をブロック RAM で実装します。

これをレジスタで実装させるには、AOC がコンパイル時(回路生成時)にアクセスが確定的である必要があり、その場合に限り、AOC はその行列の変数をレジスタとして実装します。

参考情報
https://www.altera.com/en_US/pdfs/literature/hb/opencl-sdk/aocl_programming_guide.pdf
(Inferring a Register で検索してください。)


経験豊富なFAEが
無料でご相談を承ります。

特定製品の仕様からパーツの選定まで、当社のFAEが皆様のテクニカルなお悩みに無料で回答します。ぜひ、お気軽にご相談ください。