FPGA開発日記

FPGAというより、コンピュータアーキテクチャかもね! カテゴリ別記事インデックス https://msyksphinz.github.io

RISC-V BOOMv2 で命令レイテンシ・スループットを測定する環境の構築 (2. レイテンシ・スループットをRocket-Chipと比較する)

Rocket-Chip で測定したベンチマークプログラムを、アウトオブオーダプロセッサであるBOOMでも測定してみたい。

BOOMはVersion1 (BOOMv1) と Version2 (BOOMv2) が存在しているのだが、とりあえずBOOMv2 で試してみよう。

レイテンシとスループットを測定し、Rocket-Chipと比較したのでまとめておく。

f:id:msyksphinz:20180313224018p:plain
図. BOOMv1 と BOOMv2 のパイプライン構成の違い。BOOMv2 の方が動作周波数が高いが、性能は落ちる傾向がある。

とりあえず測定した印象としては、

  • 倍精度浮動小数点の加減算・乗算

    • スループット Rocket-Chip / BOOMv2 ともに1
    • レイテンシ Rocket-Chip = 6, BOOMv2 = 7 。Rocket-Chipのほうがレイテンシが短い。BOOMv2は周波数を上げる目的?
  • 倍精度浮動小数点除算

    • レイテンシ Rocket-Chip = 4, BOOMv2 = 6。 なぜかRocket-Chipのほうがレイテンシは短い?
    • っていかBOOMv2の場合、何故か加減算よりも除算のほうがレイテンシが短い... 測定方法間違えたかな?
  • 倍精度浮動小数点積和演算

    • スループット Rocket-Chip / BOOMV2 ともに1
    • レイテンシ Rocket-Chip = 6, BOOMv2 = 7
  • 単精度浮動小数点の加減算・乗算

    • スループット Rocket-Chip / BOOMv2 ともに1
    • レイテンシ Rocket-Chip = 4, BOOMv2 = 7
  • 単精度浮動小数点除算

    • レイテンシ Rocket-Chip = 4, BOOMv2 = 6。 これもなぜかRocket-Chipのほうがレイテンシは短い...
  • 単精度浮動小数点積和演算

    • スループット Rocket-Chip / BOOMv2 ともに1
    • レイテンシ Rocket-Chip = 6, BOOMv2 = 7

以上のように、レイテンシの観点からみると、BOOMv2は動作周波数を挙げることを目的にしているのか、レイテンシが大きい傾向にある。

ってかよく見るとDIV命令とか、ちゃんとベンチマークを取れていないな... 一部取り直そう...

f:id:msyksphinz:20180314225212p:plain
グラフ. Rocket-Chip / BOOMv2 の命令毎のレイテンシ・スループット測定結果