MKL 优化¶
英特尔™ 数学内核库 (MKL) 专为科学、工程和金融计算而开发,是一组线程化和矢量化的数学例程,可用于加速各种数学函数和应用程序。Anaconda 已将一些最流行的数值/科学 Python 库的 MKL 驱动的二进制版本打包到 MKL 优化中,以提高性能。
- MKL 优化包括:
- 速度提升的 NumPy、SciPy、scikit-learn 和 NumExpr
- MKL 与 Anaconda 中的可再发行二进制文件的打包,以便于访问 MKL 运行时库。
- Python 绑定到低级 MKL 服务函数,允许修改运行时使用的线程数。
安装¶
在 Anaconda 2.5 及更高版本中,MKL默认在 Anaconda 中免费提供。
如果您已经安装了免费的Anaconda Python 发行版,请通过升级到最新版本来获取 MKL:
conda update conda
conda update anaconda
如果你没有安装 Anaconda,你可以在这里下载 。
可以使用图形 Anaconda Navigator 许可证管理器或通过操作系统手动查看和删除现有的 MKL 许可证。
配置¶
Anaconda 现在还包含一个名为mkl-service的小型实用程序包
,它为 中声明的一些有用的 MKL 函数提供 Python 接口mkl_service.h
,例如设置要使用的线程数。
卸载 MKL ¶
MKL 大约需要 100MB,有些用例不需要它,因此用户可以选择退出 MKL,转而使用适用于 Linux 的OpenBLAS或适用于 MacOSX 的本机 Accelerate Framework。要选择退出,运行
,然后使用安装程序包通常会包括MKL或取决于包括MKL包,如,和
。Conda 将安装这些软件包的非 MKL 版本及其依赖项。如果您使用的是 OS X 或 Linux,已经安装了这些软件包或已经安装了所有 Anaconda,并且希望从 MKL 切换,请使用
后跟.conda install nomkl
conda install
scipy
numpy
pandas
conda install nomkl numpy scipy scikit-learn numexpr
conda remove mkl mkl-service
解除 MKL 试验警告¶
因为 Anaconda 的过去版本默认不包含 MKL 链接的二进制文件,一些使用过的用户可能会看到 MKL 试用警告或许可证到期错误,即使 MKL 链接包现在是免费的并且默认安装。许可证到期错误消息可能会显示为“您无法再在没有许可证的情况下运行 MKL。”conda update --all
要解决此问题,请将您的安装设置为使用不需要许可证的 mkl 链接库:
conda remove mkl-rt
conda install -f mkl
然后使用您选择的特定软件包运行 conda install:
conda install numpy scipy scikit-learn numexpr
或所有 Anaconda:
conda install anaconda
许可协议¶
MKL 优化包含在免费的 Anaconda python 发行版中,并根据../anaconda/eula的条款提供。
以前版本的 MKL 优化不能在 Anaconda 中免费获得,而是根据MKL 优化最终用户许可协议的条款单独提供。