带相关函数的Numba提前(AOT)编译



我有一个函数调用另一个函数,我想使用numba的提前(AOT)编译器。

简化的例子:

from numba.pycc import CC
cc = CC('test')
cc.verbose = True

@cc.export('calc', 'f8(f8, f8)')
def calc(a, b):
return a + b

@cc.export('calc2', 'f8(f8, f8)')
def calc2(a, b):
return a * calc(a, b)

if __name__ == "__main__":
cc.compile()
当我运行这段代码时,我得到以下错误:

Untyped global name 'calc': Cannot determine Numba type of <class 'function'>

我认为这意味着Numba不喜欢依赖函数。关于如何解决这个错误的建议?

需要在依赖函数前面添加@njit()装饰器。对于当前的情况,代码将变成:

@nb.njit()
@cc.export('calc', 'f8(f8, f8)')
def calc(a, b):
return a + b

相关内容

  • 没有找到相关文章

最新更新