Pythran 作为 Numpy 后端

原文: http://docs.cython.org/en/latest/src/userguide/numpy_pythran.html

使用标志--np-pythran,可以将 Pythran numpy 实现用于与 numpy 相关的操作。使用此后端的一个优点是 Pythran 实现使用 C ++表达式模板来节省内存传输,并且可以受益于现代 CPU 的 SIMD 指令。

在某些情况下,这可以带来非常有趣的加速,从 2 到 16,具体取决于目标 CPU 架构和原始算法。

请注意,此功能是实验性的。

使用 distutils 的用法示例

你首先需要安装 Pythran。有关更多信息,请参见其文档

然后,只需在 Python 文件的顶部添加一个cython: np_pythran=True指令,该指令需要使用 Pythran numpy 支持进行编译。

以下是使用 distutils 的简单setup.py文件的示例:

  1. from distutils.core import setup
  2. from Cython.Build import cythonize
  3. setup(
  4. name = "My hello app",
  5. ext_modules = cythonize('hello_pythran.pyx')
  6. )

然后,使用hello_pythran.pyx中的以下标题:

  1. # cython: np_pythran=True

hello_pythran.pyx将使用 Pythran numpy 支持编译。

请注意,可以通过在$HOME/.pythranrc文件中添加设置来进一步调整 Pythran。例如,这可以用于启用 Boost.SIMD 支持。有关更多信息,请参见 Pythran 用户手册