当我将numpy链接到MKL时,我的代码得到了一些加速。它仍然不够快,因此我们正在考虑使用cython。我想到的方法是使用CythonGSL使用gsl的blas函数在cython中执行昂贵的功能。但是,这很可能会浪费时间,因为numpy已经使MKL做好了一些工作。
但是我不知道MKL到底要做什么。我的代码中昂贵的位是np.sums和np.dots。我怀疑通过链接MKL,代码已经是可以进行的最优化的操作,但是我不确定。那么知道Numpy + MKL行为的人能告诉我是否可能通过执行cython来浪费时间吗?
答案 0 :(得分:1)
不要这样做!通过BLAS运营前往GSL,将获得0收益。它只是根据您的构建方式链接到其他实现。代码看起来像什么,为什么您认为它很慢?同时,请到这里看看。
https://github.com/cplusplus/draft/issues/2264
人们会做出各种各样的假设,为什么事情会快/慢。当问题出在哪里时,当您看到代码并意识到他们可能会不必要地复制矩阵等时,通常会变得显而易见。