如果numpy已经链接到BLAS(例如MKL),则值得使用cython

时间:2018-07-15 18:11:35

标签: python numpy cython gsl

当我将numpy链接到MKL时,我的代码得到了一些加速。它仍然不够快,因此我们正在考虑使用cython。我想到的方法是使用CythonGSL使用gsl的blas函数在cython中执行昂贵的功能。但是,这很可能会浪费时间,因为numpy已经使MKL做好了一些工作。

但是我不知道MKL到底要做什么。我的代码中昂贵的位是np.sums和np.dots。我怀疑通过链接MKL,代码已经是可以进行的最优化的操作,但是我不确定。那么知道Numpy + MKL行为的人能告诉我是否可能通过执行cython来浪费时间吗?

1 个答案:

答案 0 :(得分:1)

不要这样做!通过BLAS运营前往GSL,将获得0收益。它只是根据您的构建方式链接到其他实现。代码看起来像什么,为什么您认为它很慢?同时,请到这里看看。

https://github.com/cplusplus/draft/issues/2264

人们会做出各种各样的假设,为什么事情会快/慢。当问题出在哪里时,当您看到代码并意识到他们可能会不必要地复制矩阵等时,通常会变得显而易见。