Python(Numpy)とC++の行列の掛け算の実行速度テスト
もうこのシリーズはたぶん最後です。
この前に、iOSにおいて行列積の速度テストを行いました。
iOSのBLAS(Accelerate.framework)とEigenの行列の掛け算の実行速度テスト - 開発のヒホ
結果、C++のBLASバージョンは速いことと、C++のEigenバージョンもそこそこ速いことがわかりました。
そして先日、MacOS上でPython(Numpy)とOctaveの速度テストを行いました。
OctaveとPython(Numpy)の行列の掛け算の実行速度テスト - 開発のヒホ
結果、大体同じぐらいの速度を出していることがわかりました。
では、膨大な計算が必要な研究によく使われているらしいPythonと、本気のC++の実行時間を比べたらどうなのでしょうか。
調べてみました!
Pythonの方は上の記事1つ目のものを流用、C++の方は記事2つ目の、iOS用に作ったものをMac用に移植してみました。
実行環境はCore i7なMacBookProで、1000×1000の行列積を100回求めます。
結果はこちら!
Python : 平均 4.31秒 Octave : 平均 4.21秒 C++(Eigen) : 13.34秒 C++(BLAS) : 1.90秒
C++(BLAS)
が本気のC++ですが、やっぱり一番早いです。
C++(Eigen)
がそこそこ本気なC++なのですが、Pythonはこれよりも圧倒的に速いですね。
確かMATLABはPythonの2倍ぐらい速かったから・・・
行列関連の計算は、MATLABはC++の性能をかなり引き出していることになりそうです。さすが。
すごく気力が残っていたら、MATLABとも実行速度を比べてみたいと思います。
では!