【问题标题】:Numba ahead-of-time (AOT) compiling with dependent functions使用依赖函数进行 Numba 提前 (AOT) 编译
【发布时间】:2021-10-31 01:13:56
【问题描述】:

我有一个调用另一个函数的函数,我想使用 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 不喜欢依赖函数。 有关如何解决此错误的建议?

【问题讨论】:

    标签: python numba


    【解决方案1】:

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

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

    【讨论】:

    • 感谢您指出我的愚蠢疏忽!
    猜你喜欢
    • 2022-01-09
    • 2017-11-10
    • 2017-11-14
    • 2015-12-15
    • 2011-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多