在 Numba 中重新编译
Re-compilation in Numba
我有一个关于 numba 的基本问题,不幸的是我到目前为止找不到答案。考虑以下代码:
import numba
@numba.jit(nopython=True)
def f1(x):
y = 0
for _ in range(1000):
y += f2(x)
return y
@numba.jit(nopython=True)
def f2(x):
return x
函数f2是在循环中每次f1调用时都重新编译,还是只编译一次?
当f1
第一次被调用并被编译时,它必然会编译f2
并且包括f2
在内的整个编译函数将被缓存在内存中。 f1
的每个后续调用(除非使用与先前调用类型不同的值 x
调用)不会导致重新编译任何代码。
我有一个关于 numba 的基本问题,不幸的是我到目前为止找不到答案。考虑以下代码:
import numba
@numba.jit(nopython=True)
def f1(x):
y = 0
for _ in range(1000):
y += f2(x)
return y
@numba.jit(nopython=True)
def f2(x):
return x
函数f2是在循环中每次f1调用时都重新编译,还是只编译一次?
当f1
第一次被调用并被编译时,它必然会编译f2
并且包括f2
在内的整个编译函数将被缓存在内存中。 f1
的每个后续调用(除非使用与先前调用类型不同的值 x
调用)不会导致重新编译任何代码。