您可以使用不同的环境来比较带有和不带有 MKL 的 Numpy。在每个环境中,您可以使用软件包安装程序安装所需的软件包(带有或不带有 MKL 的 numpy)。然后,在该环境中,您可以运行程序来比较使用和不使用 MKL 的 Numpy 的性能。
NumPy 不依赖于任何其他 Python 软件包,但是,它依赖于加速线性代数库 - 通常是 Intel MKL 或 OpenBLAS。
-
PyPI 上的 NumPy 轮(即 pip 安装的)是使用 OpenBLAS 构建的。
-
在 conda 默认通道中,NumPy 是针对 Intel MKL 构建的。 MKL 是一个单独的包,将在用户安装 NumPy 时安装在用户环境中。
-
当用户从 conda-forge 安装 NumPy 时,该 BLAS 包会与实际库一起安装。但它也可以是 MKL(来自默认通道),甚至是 BLIS 或参考 BLAS。
请参考this https://numpy.org/install/链接了解有关安装 Numpy 的详细信息。
您可以创建两个不同的环境来比较使用 MKL 和不使用 MKL 时的 NumPy 性能。在第一个环境中安装独立的 NumPy(即不带 MKL 的 NumPy),在第二个环境中安装带 MKL 的 NumPy。
使用 NumPy 而不使用 MKL 创建环境。
conda create -n <env_name_1> python=<version>
conda activate <env_name_1>
pip install numpy
但根据您的操作系统,可能没有可用的发行版 (Windows)。
在 Windows 上,我们一直都是针对 MKL 进行链接。然而,在 Anaconda 2.5 版本中,我们将 MKL 运行时分离到自己的 conda 包中,以便在所有平台上统一执行操作。
一般来说,你可以创建一个新的环境:
conda create -n wheel_based python
activate wheel
pip install numpy-1.13.3-cp36-none-win_amd64.whl # or whatever the file is named
在其他环境中,使用以下命令安装带有 MKL 的 NumPy
conda create -n <env_name_2> python=<version>
conda activate <env_name_2>
pip install intel-numpy
在这些环境 和 中,您可以单独运行您的程序,以便您可以分别比较没有 MKL 和有 MKL 的 Numpy 的性能。