C言語でオレオレ行列積ルーチンを作るプロジェクト (その10)
オレオレ行列積ルーチンが微妙に速くなった。
プログラム
プログラム全体は以下のGitHubリポジトリにあります。 今回利用するプログラムは、
main.c
とmy_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%に届いていない。