Unity 勉強メモ

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

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

オレオレ行列積ルーチンが微妙に速くなった。

プログラム

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

コンパイル

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

実行結果

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

回数
1回目 2.169028
2回目 2.131479
3回目 2.141985
4回目 2.138090 (中央値)
5回目 2.135505

速度の比較

BLAS 比率
OpenBLAS 1.475622 100%
Intel MKL 1.574675 93.7%
my_dgemm10 2.138090 69.0%
my_dgemm09 2.305811 64.0%
ATLAS 5.104218 28.9%

まとめ

あと少しで70%に届いていない。