gpt4 book ai didi

python - 如何知道 cython 程序正在使用 numpy+MKL 还是不使用 MKL?

转载 作者:太空宇宙 更新时间:2023-11-03 14:40:33 28 4
gpt4 key购买 nike

我有一个 cython 优化的速度程序,但速度仍然很慢。我想知道我的 cython 程序是否使用 OpenBLAS 还是 MKL(链接 openblas/mkl 库)?如何知道这一点?

最佳答案

这与查看进程使用哪些 dll/共享库没有什么不同。启动 python 并导入你的 cython 模块:

import my_cython_module

Python 现在将动态加载您的模块以及模块所需的所有共享库,这也意味着 MKL 或 BLAS。

在 Linux 上:

  1. 获取程序的pid:pgrep python
  2. 看一下加载的共享库:cat /proc/<PID>/maps

在 Windows 上:

  • 您可以使用ProcessExplorer ,选择 python 进程并查看加载的 dll (Ctrl+D)。
  • 您可以使用 VisualStudio-Debugger 附加到 python 进程并查看模块 (Ctrl+Alt+U)。

现在,如果您同时加载了(blas 和 mkl)(可能是这种情况),我想您必须运行计算并使用调试器查看调用堆栈以确保确定。

<小时/>

大多数时候,您的 cython 模块不会直接链接到 MKL/BLAS,而是通过 numpy。在本例中,如 question 的链接所示。由DavidW提供,您可以通过以下方式查找:

>>> numpy.show_config()
lapack_opt_info:
libraries = ['mkl_core_dll', 'mkl_intel_lp64_dll', 'mkl_intel_thread_dll']
...

关于python - 如何知道 cython 程序正在使用 numpy+MKL 还是不使用 MKL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46577326/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com