我想要测试和比较Numpy矩阵乘法和Eigen分解在使用和未使用Intel MKL的性能。
我已经使用pip install mkl
安装了MKL(Windows 10 (64-bit), Python 3.8)。
然后我使用这里的示例来进行矩阵乘法和Eigen分解。
我现在该如何启用和禁用MKL以便检查Numpy在使用MKL和不使用MKL时的性能?
参考代码:
import numpy as np
from time import time
def matrix_mul(size, n=100):
# reference: https://markus-beuckelmann.de/blog/boosting-numpy-blas.html
np.random.seed(112)
a, b = np.random.random((size, size)), np.random.random((size, size))
t = time()
for _ in range(n):
np.dot(a, b)
delta = time() - t
print('Dotted two matrices of size %dx%d in %0.4f ms.' % (size, size, delta / n * 1000))
def eigen_decomposition(size, n=10):
np.random.seed(112)
a = np.random.random((size, size))
t = time()
for _ in range(n):
np.linalg.eig(a)
delta = time() - t
print('Eigen decomposition of size %dx%d in %0.4f ms.' % (size, size, delta / n * 1000))
#Obtaining computation times:
for i in range(20):
eigen_decomposition(500)
for i in range(20):
matrix_mul(500)