Unity 勉強メモ

ゲームエンジンのUnityを勉強するブログです。

C言語でオレオレ行列積ルーチンを作るプロジェクト (その8)

オレオレ行列積ルーチンがまた少しだけ速くなった。

プログラム

プログラム全体は以下のGitHubリポジトリにあります。 今回利用するプログラムは、 main.cmy_dgemm08.cです。

コンパイル

$ gcc -static -fopenmp -mavx -O3 main.c my_dgemm08.c 
  -I/opt/OpenBLAS/include   -L/opt/OpenBLAS/lib -lopenblas -lpthread -lrt

実行結果

プログラムを5回実行した結果を以下に示します。

回数
1回目 2.362352
2回目 2.398940
3回目 2.374885 (中央値)
4回目 2.364634
5回目 2.396504

速度の比較

BLAS 比率
OpenBLAS 1.475622 100%
Intel MKL 1.574675 93.7%
my_dgemm08 2.374885 62.1%
my_dgemm07 2.743161 53.8%
ATLAS 5.104218 28.9%

まとめ

ついにOpenBLASのスピードの60%超を達成した。