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 建立的 pickled 陣列相容。
貢獻者#
總共有 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
合併的 Pull Request#
此版本總共合併了 20 個 pull request。
#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: 為 mips64 修復更新 vendored-meson/meson
#24804: MAINT: 修復授權路徑 win
#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)