C言語でオレオレ行列積ルーチンを作るプロジェクト (その11)
オレオレ行列積。まだ諦めていませんよ。
プログラム
プログラム全体は以下のGitHubリポジトリにあります。 今回利用するプログラムは、
main.c
とmy_dgemm11.c
です。
コンパイル
$ gcc -static -fopenmp -mavx -O3 main.c my_dgemm11.c -I/opt/OpenBLAS/include -L/opt/OpenBLAS/lib -lopenblas -lpthread -lrt
実行結果
プログラムを5回実行した結果を以下に示します。
回数 | 秒 |
---|---|
1回目 | 2.100111 (中央値) |
2回目 | 2.048678 |
3回目 | 2.105635 |
4回目 | 2.110453 |
5回目 | 2.078582 |
速度の比較
BLAS | 秒 | 比率 |
---|---|---|
OpenBLAS | 1.475622 | 100% |
Intel MKL | 1.574675 | 93.7% |
my_dgemm11 | 2.100111 | 70.3% |
my_dgemm10 | 2.138090 | 69.0% |
ATLAS | 5.104218 | 28.9% |
まとめ
祝!70%到達。