【发布时间】:2019-11-09 15:55:17
【问题描述】:
给定一些 numba 不知道的类型的全局非变异对象:
from types import SimpleNamespace
a = SimpleNamespace(b=2)
我希望能够将此对象的成员作为编译时常量引用到 jitted 函数中,如下所示:
@numba.njit
def foo():
# return a.b # fails, because numba tries to evaluate at runtime
return numba.mark_this_as_constant(a.b)
mark_this_as_constant 是否已经以不同的名称存在于 numba 中?是否可以自己编写,也许使用自定义类型?
我今天可以得到我想要的东西:
def foo(a_b=a.b):
@numba.njit
def foo():
return a_b
return foo
foo = foo()
但这很粗略,需要我在顶部列出每个闭包,而不是在使用点。
【问题讨论】:
-
提交功能请求upstream here