FC2カウンター FPGAの部屋 Vitis_Accel_Examples を Ultra96V2 のプラットフォームでやってみる2(array_partition 2)
FC2ブログ

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

FPGAの部屋

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

Vitis_Accel_Examples を Ultra96V2 のプラットフォームでやってみる2(array_partition 2)

Vitis_Accel_Examples を Ultra96V2 のプラットフォームでやってみる1(array_partition)”の続き。

前回は、Vitis_Accel_Examples の hello_world 以外のサンプルを Ultra96V2 のプラットフォームでやってみようということで、ccp_kernels/array_patition を Ultra96V2 のVitis アクセラレーション・プラットフォームでやってみた。今回は、array_partition をVivado や Vivado HLS のプロジェクトを見ながら詳しく見ていこう。

array_partition には、アクセラレーション・カーネルが 2 つ存在する matmul.cpp と matmul_partition.cpp だ。
Vitis_Accel_Examples_59_191125.png

matmul.cpp と matmul_partition.cpp の記述を比べてみると、 matmul_partition.cpp に array_partition の指示子が追加され、そして、ラベルの名前だけが異なることが分かる。
matmul_partition.cpp の方が pipeline 指示子の指定を実行できるように、配列をバラバラにしてデータのポート数を稼いでいることが分かる。つまりチューニングの度合いが違うのだ。
Vitis_Accel_Examples_60_191125.png

ここで、Vivado プロジェクトを見てみよう。
Vitis_Accel_Examples_61_191125.png

ブロックデザインを見ると、matmul と matmul_partition が IP として挿入されている。
Vitis_Accel_Examples_62_191125.png

Address Editor 画面を示す。
Vitis_Accel_Examples_67_191125.png

次に Vivado HLS プロジェクトを見ていこう。当然ながら、matmul と matmul_partition の 2 つのプロジェクトがある。
matmul プロジェクトを示す。
Vitis_Accel_Examples_63_191125.png

matmul_partition プロジェクトを示す。
Vitis_Accel_Examples_64_191125.png

matmul プロジェクトの C コードの合成結果を示す。
Vitis_Accel_Examples_65_191125.png

Latency は 28.45 us かかっている。原因は、nopart1_nopart2 Loop で Initiation Interval の achieved が 8 だったからだ、target は 1 になっている。

matmul_partition プロジェクトの C コードの合成結果を示す。
Vitis_Accel_Examples_66_191125.png

こちらの Latency は 10.52 us となっている。matmul に比べて約 2.7 倍速くなっている。
リソース使用量はBRAM は matmul の 7 個から 3 個に減っている。FF と LUT は増えている。

前回の結果を見てみよう。
| matmul: | 927760 | ( ns )
| matmul: partition | 134180 |
これだと性能差は 6.91 倍になっている。Vivado HLS の結果と違うのはなぜだろうか?
  1. 2019年11月25日 05:05 |
  2. Vitis
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


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

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