多个CPU内核无法实现Numpy(MKL)矩阵乘法

时间:2018-07-04 16:25:00

标签: python numpy matrix-multiplication intel-mkl

我有一个矩阵乘法测试来做[MxN] * [Nx1]乘法。它在Windows中使用Numpy(和MKL):

import timeit

import numpy as np
from numpy.random import random_sample

NUMBER_OF_SAMPLES = 1000000
NUMBER_OF_DIMENSIONS = 128

dataset = random_sample((NUMBER_OF_SAMPLES, NUMBER_OF_DIMENSIONS)).astype(np.float32)
feature = random_sample((NUMBER_OF_DIMENSIONS, 1)).astype(np.float32)
print("Finished Generating the Data...")

numbers = 1000
total_time = timeit.timeit('np.dot(dataset, feature)', globals=globals(), number=numbers)
print("Average Time %.3f" % float(total_time / numbers))

我在Core i7 7700 CPU(4核/ 8线程)上对其进行了基准测试,并再次在Core i7 7820X(8核/ 8线程)上进行了基准测试,同时禁用和启用了HyperThreading(禁用Hyperthreading并没有真正改变基准) :

Core i7 7700 (4 Cores) || Data Count 1.000.000 || 128 Dimensional || Time 0.021 s

Core i7 7820X (8 Cores) || Data Count 1.000.000 || 128 Dimensional || Time 0.019 s

我希望增加CPU数量将使时间减少一半,但几乎什么也没做。

有什么办法可以提高这个速度?谢谢。

0 个答案:

没有答案