Unity 勉強メモ

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

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

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

プログラム

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

コンパイル

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

実行結果

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

回数
1回目 2.295725
2回目 2.305811 (中央値)
3回目 2.298528
4回目 2.363331
5回目 2.333508

速度の比較

BLAS 比率
OpenBLAS 1.475622 100%
Intel MKL 1.574675 93.7%
my_dgemm09 2.305811 64.0%
my_dgemm08 2.374885 62.1%
ATLAS 5.104218 28.9%

まとめ

今回の改善は微妙だけど、確実に70%に近づいている。