我有一個cython優化的速度程序,但仍然放慢。我想知道我的cython程序是使用OpenBLAS還是MKL(鏈接openblas/mkl庫)? 如何知道?如何知道cython程序是使用numpy + MKL還是不使用MKL?
回答
這與查看進程使用哪些dlls /共享庫不同。啓動Python和導入用Cython模塊:
import my_cython_module
的Python現在動態加載模塊,併爲您模塊,它需要所有的共享庫,這也意味着MKL BLAS或。
在Linux上:pgrep python
cat /proc/<PID>/maps
在Windows上:
-
程序的
- 獲取PID
- 您可以使用ProcessExplorer,選擇python進程並查看加載的dll(Ctrl + D)。
- 您可以使用VisualStudio-Debugger附加到python進程並查看模塊(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()顯示:庫= ['mkl_core_dll','mkl_intel_lp64_dll','mkl_intel_thread_dll']意味着它已經鏈接到MKL/BLAS成功了嗎? – machen
我在Process程序運行時使用ProcessExplorer,在運行過程中,我發現mkl dll名字出現在ProcessExplorer python程序中,這是否意味着MKL實際上是鏈接成功? – machen
@machen在所有情況下,99.9%就夠了。你看到任何blas-library加載了嗎?如果不是那麼,如果只有mkl可以使用 - 你的代碼是否使用mkl是另一個問題,但它不使用bla。 – ead
- 1. Numpy-MKL for OS X
- 2. 蟒蛇numpy的MKL錯誤
- 3. 如何從MKL正確使用mkl_domatcopy?
- 4. MKL:調用?gbtrf
- 5. NumPy的和numpy的-MKL之間的區別是什麼?
- 6. MKL`dgesvd`與MKL`LAPACKE_dgesvd`的表現?
- 7. VS2012 + MKL的應用程序分配
- 8. 如何知道PDF是隻讀還是不使用IText
- 9. 確保numpy在mac pro上使用MKL庫
- 10. OpenMP和MKL線程
- 11. EPD免費發佈使用MKL嗎?
- 12. 星火不MKL DLL
- 13. 使用MKL從複數到實數IFFT
- 14. 使用英特爾MKL的3D卷積
- 15. 使用IMSL時發生MKL錯誤
- 16. anaconda mkl/openplas和IPOPT
- 17. python 3.5 numpy + mkl安裝錯誤
- 18. Eigen和MKL 11.2
- 19. Anaconda 4.0.2是否已在MKL上運行numpy
- 20. 如何知道是使用OnComplete還是OnSuccess?
- 21. 與MKL庫
- 22. 如何鏈接英特爾MKL庫,只是cblas_dgemm功能用於
- 23. Facebook - 如何知道用戶是否使用應用程序?
- 24. 如何檢查Tensorflow圖表是否重寫使用MKL的情況?
- 25. 我們如何知道我們是僅使用WSS還是使用MOSS?
- 26. MPICC和MKL編譯
- 27. 直接從python調用intel的mkl時使用多個線程
- 28. 如何知道「.exe」進程是用C++還是C#編寫的?
- 29. 當使用IBM Mobilefirst收到推送通知時,如何知道應用程序是在後臺還是前臺
- 30. 我如何知道用戶是「升級」還是「安裝」android應用程序?
的[找出是否有/哪個BLAS庫由numpy的]可能的複製( https://stackoverflow.com/questions/37184618/find-out-if-which-blas-library-is-used-by-numpy) – DavidW
@ead的答案看起來不錯,並建議一個稍微不同的方法另一個問題。 – DavidW