[英]How to know cython program is using numpy+MKL or not using MKL?
我有一个 cython 优化的速度程序,但仍然变慢。 我想知道我的 cython 程序是使用 OpenBLAS 还是 MKL(链接 openblas / mkl 库)? 怎么知道呢?
查看进程使用哪些 dll/共享库并没有什么不同。 启动 python 并导入你的 cython 模块:
import my_cython_module
Python 现在将动态加载您的模块和您的模块所需的所有共享库,这也意味着 MKL 或 BLAS。
在 Linux 上:
pgrep python
cat /proc/<PID>/maps
在 Windows 上:
现在,如果您同时加载了(blas 和 mkl)(可能是这种情况),我想您必须运行计算并使用调试器查看调用堆栈才能确定。
大多数情况下,您的 cython 模块不会直接与 MKL/BLAS 链接,而是通过 numpy。 在这种情况下,正如 DavidW 提供的问题链接中所示,您可以通过以下方式查找:
>>> numpy.show_config()
lapack_opt_info:
libraries = ['mkl_core_dll', 'mkl_intel_lp64_dll', 'mkl_intel_thread_dll']
...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.