NumPy 1.26.1 发行说明#
NumPy 1.26.1 是一个维护版本,修复了在 1.26.0 版本发布后发现的错误和回归.此外,它还添加了在从源代码构建时检测 BLAS 和 LAPACK 的新功能.亮点包括:
改进了 meson 构建的 BLAS 和 LAPACK 库的检测
与即将到来的 NumPy 2.0 的 Pickle 兼容性.
1.26.release 系列是在 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 截断测试
#24785 : BLD: 将 libquadmath 添加到许可证和其他调整 (#24753)
#24786 : MAINT: 为 Cirrus 激活
use-compute-credits.#24803 : BLD:更新了为mips64修复的vendored-meson/meson
#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 test 在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)