Numba AOT使用函数参数编译函数



我试图在Numba中AOT编译一个有函数参数的函数,但我找不到正确指定其签名的方法。使用一个非常基本的例子,使用标准的numba@njit装饰器,我会写:

import numba as nb
@nb.njit(nb.f8(nb.f8, nb.f8))
def fcn_sum(a, b): 
return a + b
@nb.njit(nb.f8(nb.typeof(fcn_sum), nb.f8, nb.f8))
def test(fun, a, b): 
return fun(a, b)

其中CCD_ 2返回仅对CCD_ 3函数有效的调度器对象。不幸的是,AOT编译的相同策略会生成NameError错误,因为nbtypeof都无法识别:

@cc.export('test', 'f8(nb.typeof(fcn_sum), f8, f8)')
def test(fun, a, b):
return fun(a, b)

如何指定函数参数的签名以使此示例起作用?

使用与@njit情况相同的签名时没有错误:

@cc.export('test', nb.f8(nb.typeof(fcn_sum), nb.f8, nb.f8))
def test(fun, a, b):
return fun(a, b)

相关内容

  • 没有找到相关文章