NumPy 1.26.1 发行说明#
NumPy 1.26.1 是一个维护版本,修复了在 1.26.0 版本发布后发现的 bug 和回归.此外,它还添加了在从源代码构建时检测 BLAS 和 LAPACK 的新功能.亮点包括:
改进了 meson 构建对 BLAS 和 LAPACK 库的检测
与即将到来的 NumPy 2.0 的 Pickle 兼容性.
1.26 发布系列是 NumPy 2.0 之前的最后一个计划的小版本系列.此版本支持的 Python 版本为 3.9-3.12.
构建系统变更#
改进的 BLAS/LAPACK 检测和控制#
现在,Meson 实现了对许多 BLAS 和 LAPACK 的自动检测.默认情况下,构建系统将尝试检测 MKL,Accelerate(在 macOS >=13.3 上),OpenBLAS,FlexiBLAS,BLIS 和参考 BLAS/LAPACK.对 MKL 的支持得到了显着改进,并增加了对 FlexiBLAS 的支持.
现在可以使用新的命令行标志来进一步控制用于构建的 BLAS 和 LAPACK 库的选择.
要选择特定的库,请通过 pip 或 pypa/build 使用 config-settings 接口.例如,要选择 libblas / liblapack ,请使用:
$ pip install numpy -Csetup-args=-Dblas=blas -Csetup-args=-Dlapack=lapack
$ # OR
$ python -m build . -Csetup-args=-Dblas=blas -Csetup-args=-Dlapack=lapack
这不仅适用于上面命名的库,而且适用于 Meson 能够通过 pkg-config 或 CMake 以给定名称检测到的任何库.
除了 -Dblas 和 -Dlapack 之外,还有许多其他新标志可用于控制 BLAS/LAPACK 的选择和行为:
-Dblas-order和-Dlapack-order:一个库名称列表,用于按顺序搜索,覆盖默认搜索顺序.-Duse-ilp64:如果设置为true,则使用 ILP64(64 位整数)BLAS 和 LAPACK.请注意,在此版本中,ILP64 支持已扩展到包括 MKL 和 FlexiBLAS.之前的版本支持 OpenBLAS 和 Accelerate.-Dallow-noblas:如果设置为true,则允许 NumPy 使用其内部(非常慢)的回退例程进行构建,而不是链接到外部 BLAS/LAPACK 库.此标志的默认值可能会在未来的 1.26.x 版本中更改为true,但是对于 1.26.1,我们更希望将其保留为false,因为如果检测已安装的库失败,我们希望收到一个关于此的错误报告,以便我们能够快速评估新的自动检测机制是否需要进一步改进.-Dmkl-threading:选择 MKL 的线程层.有四个选项:seq,iomp,gomp和tbb.默认值为auto,它会根据所选的 MKL 版本从这四个选项中进行选择.-Dblas-symbol-suffix:手动选择用于库的符号后缀 - 仅在链接到以非标准方式构建的库时才需要.
新功能#
numpy._core 子模块存根#
添加了 numpy._core 子模块存根,以便在使用 NumPy 1.26 运行时提供与使用 NumPy 2.0 创建的 pickle 数组的兼容性.
贡献者#
总共有 13 个人为此版本做出了贡献.名字旁边带有“+”的人是第一次贡献补丁.
Andrew Nelson
Anton Prosekin +
Charles Harris
Chongyun Lee +
Ivan A. Melnikov +
Jake Lishman +
Mahder Gebremedhin +
Mateusz Sokół
Matti Picus
Munira Alduraibi +
Ralf Gommers
Rohit Goswami
Sayed Adel
合并的拉取请求#
此版本总共合并了 20 个拉取请求.
#24742 : MAINT: 更新 cibuildwheel 版本
#24748 : MAINT: 修复使用 setup.py 构建的 wheels 中的版本字符串
#24771 : BLD, BUG: 修复主机标志(例如
-march=native)的构建失败…#24773 : DOC: 更新 f2py 文档以移除关于 -fimplicit-none 的说明
#24776 : BUG: 修复当基线为 none 时 s390x 上的 SIMD f32 trunc 测试
#24785 : BLD: 添加 libquadmath 到许可证和其他调整 (#24753)
#24786 : MAINT: 为 Cirrus 激活
use-compute-credits.#24803 : BLD: 更新 vendored-meson/meson 以修复 mips64
#24804 : MAINT: 修复许可证路径 win
#24813 : BUG: 修复 Windows 操作系统检测宏的顺序.
#24831 : BUG, SIMD: 在错误的 Apple clang x86_64 上使用标量 cmul (#24828)
#24840 : BUG: 修复 f2py 的 DATA 语句
#24870 : API: 添加
NumpyUnpickler用于向后移植#24872 : MAINT: Xfail 在 PyPy 上失败的测试.
#24879 : BLD: 修复数学函数特性检查,修复 FreeBSD 构建,添加 CI…
#24899 : ENH: meson: 实现 BLAS/LAPACK 自动检测和许多 CI…
#24902 : DOC: 为 BLAS/LAPACK 构建添加 1.26.1 发行说明部分…
#24906 : MAINT: Backport
numpy._core存根.移除NumpyUnpickler#24911 : MAINT: 将 pypa/cibuildwheel 从 2.16.1 升级到 2.16.2
#24912 : BUG: loongarch 不使用 REAL(10)