github OpenMathLib/OpenBLAS v0.3.34
OpenBLAS 0.3.34 version

6 hours ago

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
  • Added a BLAS extension for overriding the default error handler (XERBLA) routine
  • Reimplemented the BLAS extension GEADD to support independent transposition of
    both matrices (not available with 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
    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)
    • 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)
    • 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)
    • 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)
    • 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)
    • 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 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
  • 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
  • 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:

  • 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
  • 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 miscompilations with gcc15/gcc16 on 32bit FreeBSD

md5sums:
ae9a0c2945f91b6f91747fd89a301d36 OpenBLAS-0.3.34.tar.gz
ba82478e775039d265241bcf87fbbc93 OpenBLAS-0.3.34.zip

Download OpenBLAS

Don't miss a new OpenBLAS release

NewReleases is sending notifications on new releases.