Python Numba - 如何调试缓存以查看编译何时发生

Python Numba - How to debug caching to see when compilation happens

我正在尝试确定 Numba 何时编译或使用缓存函数。

示例:

import numpy as np
from numba import njit

@njit(cache=True)
def sq(x):
    return x**2

@njit(cache=True)
def f(x):
    return sq(x)*sq(x);

# scalar signature
x = 1
y = f(x)
# vector signature
x = np.asarray([1,2,3])
y = f(x)

有没有办法让 numba 指示它何时编译函数或使用缓存?

您可以设置环境变量 NUMBA_DEBUG_CACHE 以获取更多信息,请参阅 https://numba.pydata.org/numba-doc/dev/reference/envvars.html#caching-options

这可以通过添加

来完成
import os
os.environ['NUMBA_DEBUG_CACHE'] = "1"

在你的脚本前。

当 运行 你的脚本时,你会发现输出行如下:

[cache] index saved to '/path/to/cache/script_name.something.nbi'
[cache] data saved to '/path/to/cache/script_name.something.nbc'

这就是您要找的东西