我有一个cython优化的速度计划但仍然放慢速度。我想知道我的cython程序是使用OpenBLAS还是MKL(链接openblas / mkl库)? 怎么知道?
答案 0 :(得分:1)
查看进程使用哪些dll /共享库并没有什么不同。启动python并导入你的cython-module:
import my_cython_module
Python现在将动态加载模块和模块所需的所有共享库,这也意味着MKL或BLAS。
在Linux上:
pgrep python
cat /proc/<PID>/maps
在Windows上:
现在,如果你同时加载了(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']
...