FC2カウンター FPGAの部屋 SDx 2016.3 のプラグマによるハードウェアと性能の違い2
fc2ブログ

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

SDx 2016.3 のプラグマによるハードウェアと性能の違い2

SDx 2016.3 のプラグマによるハードウェアと性能の違い1”の続き。

前回は、ラプラシアンフィルタを使用して、デフォルトの場合とSDS data zero_copy プラグマを入れた状態でどのようにVivado のブロックデザインが異なるかとその性能を調べた。今回は、SDS data access_pattern にSEQUENTIAL を指定したときのVivado のブロックデザインとその性能を調べた。

まずは、lap_filter2.c の lap_filter_axim() の前に、

#pragma SDS data access_pattern(cam_fb:SEQUENTIAL, lap_fb:SEQUENTIAL)

を追加した。
SDx_v2016_3_77_170103.png

SDRelease でビルド後に生成された workspace\lap_filter2\SDRelease\_sds\p0\ipi のVivado 2016.3 プロジェクトを開いて結果を見た。
SDx_v2016_3_78_170103.png

前回のデフォルトの時と LUT, LUTRAM, FF は同じパーセンテージだが、BRAM が53 % から 33 % になっている。DSP も20 % が 13 % だった。

ブロックデザインを示す。
SDx_v2016_3_79_170104.png
SDx_v2016_3_80_170104.png

前回のデフォルトの時と同様の回路図だが、リソース使用量が違うので、どこか違うのだろうと思う。

workspace\lap_filter2\SDRelease\sd_card の内容をMicro SD カードにコピーした。
ZYBO に挿入して電源ONした。
Linux が立ち上がった。
cd /mnt./lap_filter2.elf を実行した。
SDx_v2016_3_81_170104.png

性能的には前回のデフォルトの場合と変化がない。ソフトウェアに対してハードウェアが10倍程度遅いときもあれば、6倍程度遅いときもある。性能にむらがある。

性能にむらがあるのはACP ポートを使っているためかもしれないので、SDS data sys_port プラグマの AFI ポートを指定して、AXI_HP ポートを使うようにしてみよう。なお、AFI ポートはAXI_HP ポートのことを指すようだ。

lap_filter2.c の lap_filter_axim() の前に、

#pragma SDS data sys_port(cam_fb:AFI, lap_fb:AFI)

を追加した。
SDx_v2016_3_83_170104.png

SDRelease でビルド後に生成された workspace\lap_filter2\SDRelease\_sds\p0\ipi のVivado 2016.3 プロジェクトを開いて結果を見た。
SDx_v2016_3_84_170104.png

SDS data sys_port プラグマを指定する前と変化はない。

ブロックデザインを示す。
SDx_v2016_3_85_170104.png

使用しているPS のスレーブ・ポートがAXI_ACP ポートからAXI_HP ポートに変更になった。

workspace\lap_filter2\SDRelease\sd_card の内容をMicro SD カードにコピーした。
ZYBO に挿入して電源ONした。
Linux が立ち上がった。
cd /mnt と ./lap_filter2.elf を実行した。
SDx_v2016_3_86_170104.png

やはり、性能的にはむらがあるのは変わらない。どうしてだろう?
  1. 2017年01月05日 04:49 |
  2. SDSoC
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック URL
https://marsee101.blog.fc2.com/tb.php/3684-fb16b968
この記事にトラックバックする(FC2ブログユーザー)