使用 Pythran 作为 Numpy 后端¶
使用标志 --np-pythran
,可以将 Pythran 的 numpy 实现用于与 numpy 相关的操作。使用此后端的一个优势是,Pythran 实现使用 C++ 表达式模板来节省内存传输,并且可以从现代 CPU 的 SIMD 指令中获益。
在某些情况下,这会导致非常显著的加速,速度提高 2 到 16 倍,具体取决于目标 CPU 架构和原始算法。
请注意,此功能尚处于实验阶段。
使用 setuptools 的示例¶
首先,您需要安装 Pythran。有关更多信息,请参见其 文档。
然后,只需在需要使用 Pythran numpy 支持编译的 Python 文件顶部添加 cython: np_pythran=True
指令。
以下是一个使用 setuptools 的简单 setup.py
文件示例
from setuptools import setup
from Cython.Build import cythonize
import numpy
import pythran
setup(
name = "My hello app",
ext_modules = cythonize('hello_pythran.pyx'),
include_dirs = [numpy.get_include(), pythran.get_include()]
)
然后,在 hello_pythran.pyx
中使用以下头文件
# cython: np_pythran=True
hello_pythran.pyx
将使用 Pythran numpy 支持进行编译。
请注意,可以通过在 $HOME/.pythranrc
文件中添加设置来进一步调整 Pythran。例如,这可以用于启用 Boost.SIMD 支持。有关更多信息,请参见 Pythran 用户手册。