行列演算プログラムの結果がソフトウェアと自作IPコアで一致しない
CQ出版社発行の雑誌「インターフェース」(2019年1月号) を参考に、Ultra96でYOLOv3の高速化をしようと考えています。
現在、高速化用の行列乗算ロジック回路を組み込み、本に乗っていたプログラムをgccでコンパイルして実行ファイルmatrixを作りました。実行すると以下のようになりました。
root@xilinx-ultra96-reva-2018_2:/uio_irq_sample# ./matrix
NG: hw 0.000000, sw 55551.996094
NG: hw 0.000000, sw 55634.667969
NG: hw 0.000000, sw 55717.335938
省略
NG: hw 0.000000, sw 2830176.000000
NG: hw 0.000000, sw 2835549.500000
NG: hw 0.000000, sw 2840922.750000
NG: hw 0.000000, sw 2846296.000000
OK: 0, NG: 1024, Total: 1024
このように結果が一致しませんでした。
もしやられた方がいらっしゃったらアドバイスをお願いします。