当我在Python中使用np.matmul(A, b)
和在c++中使用xtensor-blas
的xt::linalg::dot(A, b)
时,我没有获得相同的结果。
我正在调查原因,因为当保存并从磁盘读取时,A
和b
在Python中执行np.allclose(A, b)
时是相同的。
这两次乘法(在Py和c++中)的结果是一个包含250个元素的1D数组。第一个元素是相同的,中间的元素是不同的,最后的元素是相同的。如下:
[ True True True True True True True True True True True True
True True True True True True True True True True True True
True True True True True True True True True True True True
False False False False False False False False False False False False
False False False False False False False False False False False False
False False False False False False False False False False False False
False False True True False False False False False False False False
False False False False False False False False False False False False
False False False False False False False False False False False False
False False False False False False False False False False False False
False False False False False False False False False False False False
False False False False False False False False False False False True
True True True True True True True True True True True True
True True True True True True True True True True True True
True True True True True True True True True True True True
True True True True True True True True True True True True
True True True True True True True True True True True True
True True True True True True True True True True True True
True True True True True True True True True True True True
True True True True True True True True True True True True
True True True True True True True True True True]
我确定了xtensor-blas
到底叫什么:它是BLAS
的gemv
。
我想看看np.matmul(A, b)
叫什么。有没有人知道在做np.matmul(A, b)
时如何找到BLAS调用的确切内容?
谢谢!
这似乎是有问题的函数,因此调用的CBLAS函数似乎是cblas_?syrk
(在特殊情况下)和cblas_?gemm
(一般情况下)。