Skip to content

2.3。提前编译

原文: http://numba.pydata.org/numba-doc/latest/reference/aot-compilation.html

class numba.pycc.CC(extension_name, source_module=None)

用于从 Numba 编译的 Python 函数生成编译扩展的对象。 extension_name 是要生成的扩展名。 source_module 是包含这些函数的 Python 模块;如果None,则通过检查调用堆栈来推断。

CC 实例具有以下属性和方法:

name

(只读属性)要生成的扩展模块的名称。

output_dir

(读写属性)扩展模块将写入的目录。默认情况下,它是 source_module 所在的目录。

output_file

(读写属性)扩展模块将写入的文件的名称。默认情况下,这遵循当前平台的 Python 命名约定。

target_cpu

(读写属性)为其生成代码的 CPU 模型的名称。这将选择适当的指令集扩展。默认情况下,选择通用 CPU 以生成可移植代码。

此属性的已识别名称取决于当前体系结构和 LLVM 版本。如果安装了 LLVM,llc -mcpu=help将为您提供一个列表。 x86-64 的例子是"ivybridge""haswell""skylake""broadwell"。您还可以给出值"host",它将选择当前的主机 CPU。

verbose

(读写属性)如果为 true,则在编译扩展时打印输出信息。默认为 False。

@export(exported_name, sig)

使用签名 sig 标记要编译的修饰函数。编译的函数将在生成的扩展模块中作为 exported_name 公开。

给定 CC 实例中的所有导出名称必须是不同的,否则会引发异常。

compile()

编译所有导出的函数并生成 output_diroutput_file 指定的扩展模块。

distutils_extension(**kwargs)

返回 distutils.core.Extension 实例,允许在传统的setup.py驱动的构建过程中集成扩展模块的生成。可选的 kwargs 允许您将可选参数传递给 Extension 构造函数。

在这种操作模式下,没有必要自己调用 compile() 。此外, output_diroutput_file 将被忽略。



回到顶部