私は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. MKLを使用したcaffe
- 3. IMSLを使用しているときのMKLエラー
- 4. NumpyとNumpy-MKLの違いは?
- 5. Intel MKLでScipyをインストールできない
- 6. Anaconda 4.0.2は既にMKLでnumpy実行されています
- 7. Visual StudioでのMKLライブラリの使用
- 8. MKLからmkl_domatcopyを正しく使うには?
- 9. インテル®MKLとインテル®IPPを使用したFFT
- 10. PythonからMKLを呼び出す:DSTEVR
- 11. MKL関数をユーザー割り当てのデータで使用できますか?
- 12. なぜインテルのMKL NumpyはATLASビルドより遅くビルドされているのですか?
- 13. iccまたはgccを介してmklライブラリをコンパイルしてリンクする際に、パフォーマンスが異なりますか?
- 14. MKLライブラリを用いた固有値決定の性能
- 15. numpyのは、私がActivePythonのを使用してnumpyのインストールされている
- 16. OpenMPとMKLスレッディング
- 17. OpenMP(GILなし)を使用したCython numpy配列
- 18. 誰が機能を使用したか知っている
- 19. mpiC++を使用しているがg ++を使用していないバスエラー
- 20. NumpyがBLASライブラリを使用しているかどうか調べる
- 21. プログラムが何をしているかを知るには?
- 22. Fortranでmkl lapackライブラリを使用した固有値と固有ベクトル
- 23. プロセスを使用しているときにプログラムが終了しない
- 24. Cythonを使用してnumpyグリッドでC関数を評価する
- 25. 私はプログラムをデバッグするGDBを使用していたプログラム
- 26. Windowsを使用しているときにプログラムがハングアップする
- 27. ブラウザがどのフォントを使用していてCSSを使用しているかを確認しますか?
- 28. AJAXを使用しているファミリーツリーについて知っている人はいますか?
- 29. マルチスレッドMKL cblas_sgemmとG ++エラー
- 30. MVVMがViewModelに通知していないINotifyPropertyChangedモデルの使用
の可能性のある重複した[BLASライブラリはnumpyので使用されている/どうかを調べます]( https://stackoverflow.com/questions/37184618/find-out-if-which-blas-library-is-used-by-numpy) – DavidW
@ eadの回答はうまくいくと思いますし、もう一つの質問。 – DavidW