【发布时间】:2021-07-22 11:33:46
【问题描述】:
安装 MKL、OPENBLAS 后,什么样的 numpy 工作负载会产生最高的速度?嗯?二维码? SVD?我已经尝试过使用 MMM,但我没有看到加速,相反它变得更糟。我的测试代码如下:
import numpy as np
import time
import gc
sizes = [2000, 20000]
samples = np.zeros(5)
for n in sizes:
# allocate outside the benchmark
X = np.random.normal(size=(n, n))
Y = X
for i in range(2):
Z = X @ Y
# run 5 times
for r in range(5):
start_time = time.process_time()
Z = X @ Y
samples[r] = time.process_time() - start_time
X = Y = Z = None
# remove unnecessary memory consumption
gc.collect()
print(np.mean(samples))
print(np.std(samples))
当我重新运行此程序时,可用线程数增加(此框中的最大内核数为 8),我看到响应时间增加而不是减少。
没有抓住任何机会,所以我每次都更改所有这些环境变量(这里是 1,但我改为 2、4、8):
export MKL_NUM_THREADS=1
export OMP_NUM_THREADS=1
export OPENBLAS_NUM_THREADS=1
export NUMEXPR_MAX_THREADS=1
export VECLIB_MAXIMUM_THREADS=1
【问题讨论】:
标签: python numpy lapack intel-mkl