私は OpenBlas で numpy をコンパイルしましたが、なぜ einsum が dot よりもはるかに遅いのか疑問に思っています (3 つのインデックスの場合は理解していますが、2 つのインデックスの場合はパフォーマンスが低い理由もわかりません)。ここに例があります:
import numpy as np
A = np.random.random([1000,1000])
B = np.random.random([1000,1000])
%timeit np.dot(A,B)
Out: 10 loops, best of 3: 26.3 ms per loop
%timeit np.einsum("ij,jk",A,B)
Out: 5 loops, best of 3: 477 ms per loop
einsum に OpenBlas と numpy.dot のような並列化を使用させる方法はありますか? 内積に気付いた場合、np.einsum が単に np.dot を呼び出さないのはなぜですか?