FPGA開発日記

カテゴリ別記事インデックス https://msyksphinz.github.io/github_pages , English Version https://fpgadevdiary.hatenadiary.com/

Rocket ChipのChiselを使ってアクセラレータを作る(3. Dot Productアクセラレータのデバッグ)

前回Dot Productアクセラレータを作ったのだが、正しく動作していなかったのでデバッグしていた。

よく考えたら、行列積A\times B を求めるにあたり、メモリのフェッチアドレスのとび幅を決めるのに、行列Bの列サイズも必要だったので、それを設定するファンクションも追加して再測定。

今回は、A(17,23)\times B(23,27) の行列積を実行して、シミュレーション上でデバッグした。

f:id:msyksphinz:20170926011255p:plain

結果は正しく動作したようだ。次にFPGAに同じデザインをインプリメントして実機での動作を確認する。実機では、さらに大きな行列を使用してみようと思う。 まず、A(50, 203)\times B(203, 172) のサイズの行列を用意してみたが、正しく動作してくれなかった。具体的には数値がソフトウェアでの結果とずれている。

そこで再度A(17,23)\times B(23,27)で実行してみたのだが、先頭の要素だけずれている。これは何でだろう?まだデバッグが必要だ。

f:id:msyksphinz:20170926015308p:plain