版本 0.60.0 (2024年6月13日)
这是一个主要的 Numba 版本。Numba 现在已二进制支持 NumPy 2.0。用户应注意,这尚不包括与 NEP 50 相关的类型级别更改,这些更改仍在进行中。此版本不保证与 NumPy 2.0 的执行级别兼容性,因此用户在使用 Numba 与 NumPy 2.0 时,应预期在类型和数值方面可能与正常的 Python 行为存在一些偏差。
请参阅以下所有值得注意的项的摘要。
亮点
NumPy 2.0 二进制支持
增加了对 NumPy 2.0 的二进制支持。然而,这尚不包括与 NEP 50 相关的类型级别更改,这些更改仍在进行中。
以下是面向用户的更改摘要:
之前可用于数组的
ptp()
方法已弃用。建议改用np.ptp(arr)
函数。数据类型
np.bool8
已弃用,并替换为np.bool
。函数
np.product
已弃用;建议用户改用np.prod
。从 NumPy 2.0 版本开始,
itemset()
方法已从ndarray
类中移除。要实现相同的功能,请使用赋值操作arr[index] = value
。弃用的常量
np.PINF
和np.NINF
应分别替换为表示正无穷的np.inf
和表示负无穷的-np.inf
。
(PR-#9466)
新功能
改进
扩展 isinstance()
对 NumPy datetime 类型的支持
在 isinstance()
中添加了对 numpy.datetime64
和 numpy.timedelta64
类型的支持。
(PR-#9455)
Numba 的调度器中添加了对 Python 3.12 sys.monitoring
的支持。
Python 3.12 引入了一个新模块 sys.monitoring
,它提供了一个事件驱动的监控 API,供需要监控执行的工具使用,例如调试器或性能分析器。Numba 的调度器类(处理 Python 解释器和编译代码之间控制流的代码)已更新,以适当地发出 sys.monitoring.events.PY_START
和 sys.monitoring.events.PY_RETURN
事件。这使得监听这些事件的工具能够识别何时控制进入并从编译代码中返回。由于这一更改,Numba 编译的代码现在可以像以前一样被 cProfile
识别,即它将出现在性能分析报告中。
(PR-#9482)
拉取请求:
PR #8984: 支持 @gufunc 在 @jit 内部使用 (guilhermeleobas)
PR #9239: ufunc.at (guilhermeleobas)
PR #9378: 添加 float(<string literal>) 构造函数 (guilhermeleobas)
PR #9394: 修复 TypeError: ‘_DeviceContextManager’ object is not callable (i7878)
PR #9411: 0.59.0 最终文档更新。 (stuartarchibald)
PR #9416: 添加 math.log2 支持 (guilhermeleobas)
PR #9417: 为 CUDA 添加 np.log* 绑定 (guilhermeleobas gmarkall)
PR #9482: 添加对 sys.monitoring 事件的支持。 (stuartarchibald)
PR #9568: 修复 parfors 测试中的 sigabrt (esc stuartarchibald)