From 3c382538f666fca0cc40203067b27815d80992d2 Mon Sep 17 00:00:00 2001 From: Martin Kroeker Date: Thu, 9 Jul 2026 00:28:11 +0200 Subject: [PATCH 1/2] Update for 0.3.34 --- Changelog.txt | 94 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 94 insertions(+) diff --git a/Changelog.txt b/Changelog.txt index ee7701de1d..ca9a45e3d3 100644 --- a/Changelog.txt +++ b/Changelog.txt @@ -1,5 +1,99 @@ OpenBLAS ChangeLog ==================================================================== +Version 0.3.34 +9-Jul-2026 + +general: + - Fixed potential race conditions between concurrent calls to level3 BLAS + functions (inadvertent use of non-unified locks) + - Fixed potential race condition in GETRF + - Added or improved multithreading thresholds in SPR,SPR2,SYR,SYR2,TBMV,TPMV + - Added multithreading thresholds to GETRS, LAED3, LASWP, LAUUM, TRTRS, ZTRTRI + - Guarded against spurious NaN values in the reimplemented ?LAED3 + - Fixed spurious and conflicting setting of job numbers in gmake builds + - Fixed a potential linking issue with the fortran runtime in the BLAS tests + - Fixed potential access to unrelated memory in the C fallback versions of LAPACK + functions ILAENV and IPARMQ + - Fixed the generated pkgfile to support spaces in path names + - Added support for compilation with the experimental, LLVM-based memory-safe C toolchain + known as Fil-C + - Imported recent updates from Reference-LAPACK to realign with its upcoming 3.13.0 release: + - Added non-trivial terminating case to ?LARFT calculation (Reference-LAPACK PR 1163) + - Fixed workspace calculation for CUNMLQ with K=0 (Reference-LAPACK PR 1225) + - Fixed wrong Y increment used in ?ORDB3/?UNBDB3 (Reference-LAPACK PR 1265) + - Fixed wrong name reported in XERBLA call of ZLA_SYRFSX_EXTENDED (PR 1268) + - Fixed wrong JOBA type in SGESVJ call of SGEJSV (Reference-LAPACK PR 1269) + - Fixed wrong workspace in DGEJSV corrupting memory in DGESVJ (PR 1270) + - Fixed wrong or missing EXTERNAL declarations (Reference-LAPACK PR 1271) + - Fixed wrong operand number in errors of GGSVD3,UN/ORBDB4,UN/ORCSD (PR 1272) + - Fixed sign of error flag in LWORK check of LAQZ0 (Reference-LAPACK PR 1273) + - Fixed too small workspace query result from SGGEV3 (Reference-LAPACK PR 1274) + - Fixed DLASWLQ not rejecting NB=0 (Reference-LAPACK PR 1275) + - Avoid immediate overflows in GEJSV,GESVJ,GESVDX,GEDMD (Reference-LAPACK PR 1283) + - Ignore LDU value when U unused in LAPACKE_?GESVD_WORK (Reference-LAPACK PR 1284) + - Fixed premature return before fallback code in BDSQR (Reference-LAPACK PR 1285) + - Increased tolerance in LASD2 to improve BDSDC stability (Reference-LAPACK PR 1286) + - Fixed row-major A dimension for SIDE=R in LAPACKE_?TPRFB_WORK (PR 1287) + - Avoid immediate overflows in ?LARFGP (Reference-LAPACK PR 1290) + - Added handling of degenerate cases in OR/UNCSD2BY1 (Reference-LAPACK PR 1291) + - Fixed workspace for tiny inputs in ORM/UNM-L/R-Q and -Q-L/R (PR 1292) + - Scaled convergence thresholds in ?BBCSD to improve accuracy (PR 1293) + - Fixed integer overflow in the LAPACKE nancheck helpers (Reference-LAPACK PR 1294) + - Relaxed eigenvalue consistency checks in testsuite (Reference-LAPACK PR 1297) + - Switched to QR algorithm in ?BDSDC for bidiagonal SVD with vectors (PR 1300) + - Corrected description of QMAX parameter in ?LASQ3 (Reference-LAPACK PR 1307) + - Fixed bad scaling in ?LARFF that slowed down DSYEVR/ZHEEVR (PR 1309) + - Fixed handling of negative increments in ?LARF/?LARF1F/?LARF1L (PR 1315) + - Increased tolerances in ?LAED to match changes in ?LASD (PR 1317) + - Fixed LAPACKE_?lacpy_work destroying data in row-major mode (PR 1318) + +arm: + - Added a significantly faster SGEMM kernel + +arm64: + - Added optimized kernels for OMATCOPY_CT and OMATCOPY_RT on all targets + - Fixed miscompilation of CGETF2/ZGETF2 by LLVM on Apple M + - Fixed SSYRK miscalculation on Apple M systems bigger than the Mac mini + - Fixed remaining cases of CMake build failure due to long argument lists on OSX + - On OSX, reduced the list of DYNAMIC_ARCH targets to those relevant for this os + - Fixed platform detection and cross-builds to iOS on OSX with AppleClang + - Fixed gmake builds for SME targets on OSX with AppleClang + - Improved the compiler test for SME compatibility in the CMake build files + - Fixed runtime detection of SME in DYNAMIC_ARCH builds made with CMake + - Restored a fix for building DYNAMIC_ARCH under Windows on Arm that was inadvertently + dropped in 0.3.33) + - Corrected the selection criteria for the SME-based SGEMM kernel on Apple M + - Fixed DYNAMIC_ARCH builds on hosts without SVE capability + - Fixed building a shared library with NAG Fortran on OSX + - Fixed misdetection of C11 capability (and resulting race conditions during concurrent + calls) in Clang builds under OSX + - Fixed miscalculation of Apple M cpu time leading to benchmarks 40 times too slow + +loongarch64: + - Corrected generation of the LSX/LASX status flags in the configuration files + - Added optimized SDOT, ICAMIN/IZAMIN and ZGEMM kernels for 2K3000 + +power: + - Fixed an incompatibility in the assembly kernels for SCAL on FreeBSD + - Fixed a potentially spurious check for gfortran in gmake builds with LLVM + that could make POWER9/10 builds fall back to POWER8 kernels + - Improved build flags and cpu register constraints for POWER10 + - Fixed linking issues on BSD + +riscv64: + - Fixed compilation for DYNAMIC_ARCH with BUILD_BFLOAT16 defined + - Fixed SGEMM and DGEMM errors on ZVL256 introduced in 0.3.33 + - Sped up GEMV on C910V and ZVL256B targets + - Improved the x280 S/DROTM kernel and enabled it on ZVL128B/ZVL256B + - Added optimized STRSM kernels for ZVL128B/ZVL256B + - Added optimized D/C/ZTRSM kernels (RN and RT cases) for ZVL128B/ZVL256B + +x86_64: + - Fixed remaining cases of CMake build failure due to long argument lists on OSX + - Improved cpu capability check for recent Zhaoxin cpus + - Fixed wrong TRSM results on AMD Barcelona (and Ryzen systems in 32bit builds) + - Added autodetection support for the fake Opteron-like CPUID used by QEMU on AMD hardware +==================================================================== Version 0.3.33 23-Apr-2026 From 53e0030bc2846e4264f2e9391f4782bc27cc3636 Mon Sep 17 00:00:00 2001 From: Martin Kroeker Date: Thu, 16 Jul 2026 21:38:40 +0200 Subject: [PATCH 2/2] Update to final state of 0.3.34 --- Changelog.txt | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/Changelog.txt b/Changelog.txt index ca9a45e3d3..708db6a042 100644 --- a/Changelog.txt +++ b/Changelog.txt @@ -1,7 +1,7 @@ OpenBLAS ChangeLog ==================================================================== Version 0.3.34 -9-Jul-2026 +16-Jul-2026 general: - Fixed potential race conditions between concurrent calls to level3 BLAS @@ -9,7 +9,11 @@ general: - Fixed potential race condition in GETRF - Added or improved multithreading thresholds in SPR,SPR2,SYR,SYR2,TBMV,TPMV - Added multithreading thresholds to GETRS, LAED3, LASWP, LAUUM, TRTRS, ZTRTRI + - Added a BLAS extension for overriding the default error handler (XERBLA) function + - Reimplemented the BLAS extension GEADD to support independent transposition of + both matrices (unlike the previous, ATLAS-like implementation) - Guarded against spurious NaN values in the reimplemented ?LAED3 + - Fixed compilation of the BLAS extension tests with CMake - Fixed spurious and conflicting setting of job numbers in gmake builds - Fixed a potential linking issue with the fortran runtime in the BLAS tests - Fixed potential access to unrelated memory in the C fallback versions of LAPACK @@ -20,6 +24,7 @@ general: - Imported recent updates from Reference-LAPACK to realign with its upcoming 3.13.0 release: - Added non-trivial terminating case to ?LARFT calculation (Reference-LAPACK PR 1163) - Fixed workspace calculation for CUNMLQ with K=0 (Reference-LAPACK PR 1225) + - Rearranged computations in C/ZLARTG to avoid large intermediates (PR 1245) - Fixed wrong Y increment used in ?ORDB3/?UNBDB3 (Reference-LAPACK PR 1265) - Fixed wrong name reported in XERBLA call of ZLA_SYRFSX_EXTENDED (PR 1268) - Fixed wrong JOBA type in SGESVJ call of SGEJSV (Reference-LAPACK PR 1269) @@ -34,13 +39,17 @@ general: - Fixed premature return before fallback code in BDSQR (Reference-LAPACK PR 1285) - Increased tolerance in LASD2 to improve BDSDC stability (Reference-LAPACK PR 1286) - Fixed row-major A dimension for SIDE=R in LAPACKE_?TPRFB_WORK (PR 1287) + - Fixed seed advancement in SLARUV/DLARUV (Reference-LAPACK PR 1288) + - Fixed workspace queries for TZRZF/UNMRZ in GELSY (Reference-LAPACK PRs 1289/1325) - Avoid immediate overflows in ?LARFGP (Reference-LAPACK PR 1290) - Added handling of degenerate cases in OR/UNCSD2BY1 (Reference-LAPACK PR 1291) - Fixed workspace for tiny inputs in ORM/UNM-L/R-Q and -Q-L/R (PR 1292) - Scaled convergence thresholds in ?BBCSD to improve accuracy (PR 1293) - Fixed integer overflow in the LAPACKE nancheck helpers (Reference-LAPACK PR 1294) - Relaxed eigenvalue consistency checks in testsuite (Reference-LAPACK PR 1297) - - Switched to QR algorithm in ?BDSDC for bidiagonal SVD with vectors (PR 1300) + - Fixed test failures in ?CHKLQ with NB=1 and M=N (Reference-LAPACK PR 1298) + - Switched to QR algorithm in ?BDSDC for bidiagonal SVD with vectors (PR 1300) + - Replaced HUGE intrinsic in ?TGSJA with parameter for consistency (PR 1305) - Corrected description of QMAX parameter in ?LASQ3 (Reference-LAPACK PR 1307) - Fixed bad scaling in ?LARFF that slowed down DSYEVR/ZHEEVR (PR 1309) - Fixed handling of negative increments in ?LARF/?LARF1F/?LARF1L (PR 1315) @@ -52,6 +61,7 @@ arm: arm64: - Added optimized kernels for OMATCOPY_CT and OMATCOPY_RT on all targets + - Fixed SDOT/DDOT on non-SVE-capable cpus not initializing the result correctly - Fixed miscompilation of CGETF2/ZGETF2 by LLVM on Apple M - Fixed SSYRK miscalculation on Apple M systems bigger than the Mac mini - Fixed remaining cases of CMake build failure due to long argument lists on OSX @@ -71,6 +81,7 @@ arm64: loongarch64: - Corrected generation of the LSX/LASX status flags in the configuration files + - Fixed potential reads of memory beyond the array bounds in the LA464 SGEMM kernel - Added optimized SDOT, ICAMIN/IZAMIN and ZGEMM kernels for 2K3000 power: @@ -87,12 +98,17 @@ riscv64: - Improved the x280 S/DROTM kernel and enabled it on ZVL128B/ZVL256B - Added optimized STRSM kernels for ZVL128B/ZVL256B - Added optimized D/C/ZTRSM kernels (RN and RT cases) for ZVL128B/ZVL256B + - Added a dedicated target for the SiFive U74 with optimized SGEMM and DGEMM kernels + - Made L2 cache size available at runtime for scaling GEMM block sizes x86_64: - Fixed remaining cases of CMake build failure due to long argument lists on OSX - Improved cpu capability check for recent Zhaoxin cpus - Fixed wrong TRSM results on AMD Barcelona (and Ryzen systems in 32bit builds) - Added autodetection support for the fake Opteron-like CPUID used by QEMU on AMD hardware + - Fixed automatic setting of the BINARY=32 option when building with 32bit toolchains + - Fixed miscompilation of GEMM,SYR2K and TPMV kernels with gcc15/gcc16 on 32bit FreeBSD + ==================================================================== Version 0.3.33 23-Apr-2026