私はcythonに最適化されたスピードプログラムを持っていますが、速度は遅いです。私は私のcythonプログラムがOpenBLASまたはMKL(リンクopenblas/mklライブラリ)を使用しているかどうかを知りたいですか? これを知るには?cythonプログラムがnumpy + MKLを使用しているか、MKLを使用していないかを知るには?
答えて
どのDLL /共有ライブラリがプロセスで使用されているかは、違いはありません。 pythonを起動し、cythonモジュールをインポートします。
import my_cython_module
Pythonは動的にもMKLやBLASを意味し、あなたのモジュールと、モジュールのために必要とされるすべての共有ライブラリをロードします。 Linuxの
:
- はプログラムのPIDを取得します:
pgrep python
- は、ロードされた共有ライブラリを見てみましょう:Windowsでは
cat /proc/<PID>/maps
を:
- ProcessExplorerを使用して、python-processを選択し、ロードされたdll(Ctrl + D)を見てください。
- VisualStudio-Debuggerでpython-processに接続して、モジュール(Ctrl + Alt + U)を見ることができます。
ここで(blasとmkl)が両方ともロードされている場合は、計算を実行し、デバッガを使用してコールスタックを確認する必要があります。
ほとんどの場合、あなたのcythonモジュールはMKL/BLASと直接リンクするのではなくnumpy経由でリンクされます。それはDavidWによって提供さquestionへのリンクに示されたように、このケースでは、あなただけを経由して、それを調べることができます。
>>> numpy.show_config()
lapack_opt_info:
libraries = ['mkl_core_dll', 'mkl_intel_lp64_dll', 'mkl_intel_thread_dll']
...
numpy.show_config()は次のように表示します:libraries = ['mkl_core_dll'、 'mkl_intel_lp64_dll'、 'mkl_intel_thread_dll']は既にMKL/BLASの成功とリンクしていることを意味しますか? – machen
実行中のMyプログラムでProcessExplorerを使用していますが、mkl dllの名前がProcessExplorerのPythonプログラムに表示されています。これはMKLが実際にリンクされていることを意味しますか? – machen
@machenすべてのケースの99.9%で十分です。 blas-libraryがロードされていますか?それ以外の場合は、mklだけを使用することができます - あなたのコードがmklを使用するかどうかは別の質問ですが、blasは使用しません。 – ead
- 1. OS X用Numpy-MKL
- 2. Anacondaのnon-mkl NumPyの使い方は?
- 3. MKLを使用したcaffe
- 4. IMSLを使用しているときのMKLエラー
- 5. NumpyとNumpy-MKLの違いは?
- 6. Intel MKLでScipyをインストールできない
- 7. Gohlkeのnumpy + mklインストール - Windows上のMKLインストールディレクトリを変更する
- 8. Matlab fft2とMKL DftiComputeForwardを使用した結果が異なる
- 9. python 3.5 numpy + mklインストールエラー
- 10. Fortranプログラムで-mkl Lapackルーチンを使用する
- 11. Anaconda 4.0.2は既にMKLでnumpy実行されています
- 12. Visual StudioでのMKLライブラリの使用
- 13. 私が使用するコードでMKLライブラリー(ICCバージョン17.0.4)とリンクEIGENライブラリをしようとしています
- 14. MKL `dgesvd`とMKL` LAPACKE_dgesvd`のパフォーマンス?
- 15. MKLからmkl_domatcopyを正しく使うには?
- 16. gfortranでIntel MKLモジュールを使用するコードをコンパイルする
- 17. インテル®MKLとインテル®IPPを使用したFFT
- 18. MKLスパース行列ベクトル乗算を使用する
- 19. MKL関数をユーザー割り当てのデータで使用できますか?
- 20. なぜ私の共有オブジェクトファイルがeclipse cdt(intel mklを使用している)で見つからないのですか?
- 21. PythonからMKLを呼び出す:DSTEVR
- 22. CythonがvdMulを使って要素ごとの乗算でMKLをクラッシュさせる
- 23. なぜインテルのMKL NumpyはATLASビルドより遅くビルドされているのですか?
- 24. iccまたはgccを介してmklライブラリをコンパイルしてリンクする際に、パフォーマンスが異なりますか?
- 25. CythonでNumpyのPyArray_IsScalarを使用する
- 26. MKLを使ったEigen3のコンパイル
- 27. MKLライブラリを用いた固有値決定の性能
- 28. numpyのは、私がActivePythonのを使用してnumpyのインストールされている
- 29. 私が使用しているCrafterCMSのバージョンを知るには?
- 30. 誰が機能を使用したか知っている
の可能性のある重複した[BLASライブラリはnumpyので使用されている/どうかを調べます]( https://stackoverflow.com/questions/37184618/find-out-if-which-blas-library-is-used-by-numpy) – DavidW
@ eadの回答はうまくいくと思いますし、もう一つの質問。 – DavidW