NumPy 1.26.1 版本说明#
NumPy 1.26.1 是一个维护版本,修复了在 1.26.0 版本发布后发现的错误和回归问题。此外,它还增加了从源代码构建时检测 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 构建的轮子中的版本字符串
#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:向后移植
numpy._core
存根。删除NumpyUnpickler
#24911: MAINT:将 pypa/cibuildwheel 从 2.16.1 提升到 2.16.2
#24912: BUG:loongarch 不使用 REAL(10)