Python NumPy如何开启和关闭Intel MKL以对比运算性能
NumPy开启/关闭Intel MKL的测试方法
以下是适配Windows 10环境的几种操作方案:
方案1:临时环境变量控制(无需修改代码/环境,适合快速测试)
在运行测试脚本前,先在当前cmd/PowerShell窗口执行对应命令,生效范围仅为当前窗口,关闭后自动恢复:
- 关闭MKL加速:
set MKL_NUM_THREADS=1 set MKL_DISABLE_FAST_MM=1 - 开启MKL加速(默认状态,若之前改了变量可以执行恢复):
set MKL_NUM_THREADS=%NUMBER_OF_PROCESSORS% set MKL_DISABLE_FAST_MM=0
设置完成后直接运行你的测试脚本即可看到差异。
方案2:双虚拟环境对比(结果更准确,无变量干扰)
如果要完全排除环境干扰,建议创建两个独立的Python虚拟环境分别测试:
- 带MKL的测试环境:正常安装
numpy和mkl即可,就是你当前在用的环境 - 无MKL的测试环境:创建新虚拟环境后,执行
pip install numpy --no-binary :all:从源码编译安装不带MKL绑定的NumPy,或者直接安装预置OpenBLAS后端的NumPy版本
两个环境分别运行同一份测试代码,得到的差值就是MKL带来的性能提升。
验证MKL是否生效的方法
在Python交互界面执行以下代码,即可确认当前NumPy是否调用了MKL:
import numpy as np np.__config__.show()
如果输出内容中包含mkl相关字段,说明当前MKL处于启用状态。
测试注意事项
- 每次切换开关状态前重启终端,避免旧的环境变量残留影响结果
- 测试时关闭其他高CPU占用的软件,减少系统负载带来的误差
- 可以适当增大测试矩阵的尺寸、增加循环次数,让性能差异更明显
内容的提问来源于stack exchange,提问作者user40
相关产品推荐
相关产品推荐

