NumPy 1.26.1 发布说明#
NumPy 1.26.1 是一个维护版本,修复了 1.26.0 发布后发现的 bug 和回归问题。此外,它还增加了用于在从源码构建时检测 BLAS 和 LAPACK 的新功能。亮点包括:
改进了 meson 构建时对 BLAS 和 LAPACK 库的检测
与即将发布的 NumPy 2.0 兼容的 Pickle.
1.26.x 系列是 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``,因为如果发生无法检测到已安装库的失败,我们希望收到 bug 报告,以便我们能够快速评估新的自动检测机制是否需要进一步改进。-Dmkl-threading:用于选择 MKL 的线程层。有四种选项:seq、iomp、gomp和tbb。默认值为auto,它会根据所选 MKL 的版本从这四种中选择合适的。-Dblas-symbol-suffix:手动选择库要使用的符号后缀 - 仅在链接到以非标准方式构建的库时才需要。
新功能#
numpy._core 子模块存根#
添加了 numpy._core 子模块存根,以提供与使用 NumPy 2.0 创建的 pickle 数组在 NumPy 1.26 上运行时兼容。
贡献者#
共有 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 个 pull requests。
#24742: MAINT: 更新 cibuildwheel 版本
#24748: MAINT: 修复使用 setup.py 构建的 wheel 中的版本字符串
#24771: BLD, BUG: 修复主机标志(例如
-march=native...)的构建失败#24773: DOC: 更新 f2py 文档以删除关于 -fimplicit-none 的说明
#24776: BUG: 修复 s390x 上 baseline 为 none 时 SIMD f32 截断测试
#24785: BLD: 将 libquadmath 添加到许可证和其他调整 (#24753)
#24786: MAINT: 为 Cirrus 启用
use-compute-credits。#24803: BLD: 更新 vendored-meson/meson 以修复 mips64 问题
#24804: MAINT: 修复 Windows 许可证路径
#24813: BUG: 修复 Windows OS 检测宏的顺序。
#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: 向后移植
numpy._core存根。删除NumpyUnpickler#24911: MAINT: 将 pypa/cibuildwheel 从 2.16.1 升级到 2.16.2
#24912: BUG: loongarch 不使用 REAL(10)