Commit Graph
10385 Commits
Author SHA1 Message Date
Martin Kroeker fb4e77d379 Query correct (larger) workspace for VL=N,VR=V (Reference-LAPACK PR 1274) 2026-06-24 13:27:17 +02:00
Martin Kroeker a36e22cbb2 Merge pull request #5850 from martin-frbg/lapack1271
Update EXTERNAL declarations in various files (Reference-LAPACK PR 1271)
2026-06-24 10:36:37 +02:00
Martin Kroeker 1afb4c9ba1 Merge pull request #5849 from martin-frbg/lapack1270
Fix wrong workspace in DGEJSV potentially corrupting memory in DGESVJ (Reference-LAPACK PR 1270)
2026-06-24 10:36:15 +02:00
Martin Kroeker 6d648c6b4d Merge pull request #5848 from martin-frbg/lapack1269
Fix wrong JOBA type in SGESVJ call of SGEJSV (Reference-LAPACK PR 1269)
2026-06-24 10:35:54 +02:00
Martin Kroeker 648a53b5cb Merge pull request #5847 from martin-frbg/lapack1268
Fix wrong name in XERBLA call of ZLA_SYRFSX_EXTENDED (Reference-LAPACK PR 1268)
2026-06-24 10:35:34 +02:00
Martin Kroeker 7fdd58a7d6 Merge pull request #5846 from martin-frbg/lapack1265
Fix typo in ?ORBDB3/?UNBDB3 use of INCY (Reference-LAPACK PR 1265)
2026-06-24 10:35:11 +02:00
Martin Kroeker cfeb270288 Update EXTERNAL declarations in various files (Reference-LAPACK PR 1271) 2026-06-23 22:20:46 +02:00
Martin Kroeker 9f6c07c5a8 Fix workspace argument if DGESVJ call (Reference-LAPACK PR 1270) 2026-06-23 21:55:15 +02:00
Martin Kroeker 8f2b1e8c7c Fix wrong JOBA type in SGESVJ call (Reference-LAPACK PR 1269) 2026-06-23 21:51:22 +02:00
Martin Kroeker a08b1aa853 Fix wrong function name in XERBLA call (Reference-LAPACK PR 1268) 2026-06-23 21:44:14 +02:00
Martin Kroeker 5da71f5c5b Fix typo in passing leading dimension of Y to ?ROT (Reference-LAPACK PR 1265) 2026-06-23 21:25:17 +02:00
Martin Kroeker 5135d5c96c Merge pull request #5844 from kumaraditya303/develop
fix data races in blas_server and level3_thread
2026-06-23 20:56:40 +02:00
Kumar Aditya ea2a52d014 use OPENBLAS_NUM_THREADS=8 in tsan CI 2026-06-23 18:59:26 +05:30
Kumar Aditya 298d53c061 fix data races in blas_server and level3_thread 2026-06-23 18:42:25 +05:30
Martin Kroeker f986fd3322 Merge pull request #5843 from artem-dmitriev/omatcopy
AArch64: NEON omatcopy CT/RT kernels (s/d)
2026-06-21 23:09:45 +02:00
zhir 46aa158dcc AArch64: NEON omatcopy CT/RT kernels 2026-06-20 22:54:04 +03:00
Martin Kroeker 6773c85b16 Merge pull request #5842 from artem-dmitriev/patch-1
bench.h: fix getsec() double time conversion on Apple Silicon
2026-06-20 15:02:18 +02:00
artem dmitriev 2d9cbfc9e9 bench.h: fix getsec() double time conversion on Apple Silicon 2026-06-20 16:01:47 +04:00
Martin Kroeker 7ac17f4b6b Merge pull request #5819 from trg-rgb/docs/riscv-zvl-target-selection
docs: clarify RISC-V RVV target selection and GCC 14+ requirement for ZVL128B/ZVL256B
2026-06-18 10:10:28 +02:00
Martin Kroeker cf627715d9 Merge pull request #5840 from martin-frbg/issue5831
Add support for QEMU's virtual AMD cpu to avoid misdetection as  Opteron
2026-06-15 20:48:56 +02:00
Martin Kroeker 7126fcf40c fix extraneous brace 2026-06-15 15:42:16 +02:00
Martin Kroeker 18e2fe9fa4 Add support for QEMU's virtual AMD cpu to avoid misdetection as Opteron 2026-06-15 14:54:24 +02:00
Martin Kroeker 9bdf051b96 Merge pull request #5838 from ngoldbaum/fix-level3-thread-locks-2
Fix corruption due to lock sharding issues by centralizing locking
2026-06-15 12:35:35 +02:00
Martin Kroeker ef20ea1644 Merge pull request #5828 from amritahs-ibm/fix_dcbt_constraints
Fix incorrect inline assembly constraints in dcbt prefetch instructions
2026-06-15 11:22:10 +02:00
Nathan Goldbaum 7c7c65e692 fix windows build slowness and test errors 2026-06-14 17:09:44 -06:00
Nathan Goldbaum 9363452742 Fix corruption due to lock sharding issues by centralizing locking 2026-06-14 15:32:51 -06:00
Martin Kroeker 7aa79fbdff Merge pull request #5835 from changangela/fix-lapacke-nancheck-overflow
Fix 32-bit integer overflow in LAPACKE nancheck index arithmetic
2026-06-12 09:29:24 +02:00
Yue ChangandClaude Fable 5 ede136ee4e Fix 32-bit integer overflow in LAPACKE nancheck index arithmetic
The optional NaN checks performed by LAPACKE front-ends computed array
offsets and lengths in 32-bit lapack_int arithmetic, which overflows for
large matrices (e.g. LAPACKE_dpotrf with n = lda >= 46341 overflows
j*lda in LAPACKE_dtr_nancheck, leading to out-of-bounds reads and
crashes). Several nancheck helpers (ge, gb, tp, tf) already cast to
size_t; this applies the same treatment to the ones that were missed:

- ?tr_nancheck: cast a[i+j*lda] index to size_t (also covers po/sy/he
  checks, i.e. the POTRF/Cholesky path)
- ?_nancheck (vector): iterate by element count instead of n*inc, with
  size_t indexing
- ?sp/?pp/?pf/?hp/?tp/?tf_nancheck: compute n*(n+1)/2 length in size_t
- ?tz_nancheck: widen the part offsets to int64_t (keeping the -1
  sentinel) and compute them with a widening cast

Verified with UBSan: LAPACKE_str_nancheck at n = lda = 47000 previously
reported signed integer overflow and crashed with SEGV at -O0; it now
passes and still detects the NaN. Old and new code produce identical
results across 1907 enumerated small-size cases (all layouts, uplo,
diag, shapes and NaN positions for tr/tz/vector/packed variants).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-11 23:42:28 -04:00
Martin Kroeker a033631ee8 Merge pull request #5833 from ayappanec/fix-aix-build
Fix AIX build with OpenXL (ibm-clang)
2026-06-10 13:57:02 +02:00
Ayappan Perumal faf7ddbbea Fix AIX build with OpenXL (ibm-clang) 2026-06-10 04:22:48 -05:00
Martin Kroeker 94f85eb6b1 Merge pull request #5822 from ErnstPeng/la-dev
optimize zgemm, ic/zamin and sdot lsx kernel for 2k3000 cpu
2026-06-09 18:15:48 +02:00
amritahs-ibm 7e3877f263 Merge branch 'develop' into fix_dcbt_constraints 2026-06-09 14:45:02 +05:30
Martin Kroeker 901c214a9b Merge pull request #5827 from amritahs-ibm/use_lxvp_builtins
Power10: Replace vector pair loads with __builtin_vsx_lxvp
2026-06-09 09:41:47 +02:00
pengxu 4850f86e3d optimize sdot lsx kernel 2026-06-08 14:26:03 +08:00
pengxu d1df5928ae optimize ic/zamin lsx kernel 2026-06-08 14:25:26 +08:00
Martin Kroeker 16a5ea5b4c Merge pull request #5829 from martin-frbg/issue5825
Fix OpenMP reentrancy issues in LLVM compilations with gmake on ARM64
2026-06-06 10:55:52 +02:00
Martin Kroeker 7006a422b6 Merge pull request #5826 from ChipKerchner/fasterRVVGEMV
Faster GEMV for RVV
2026-06-05 23:56:49 +02:00
Martin Kroeker 1145c75a96 Comment out the libclang_rt.builtins kludge in preparation for removal 2026-06-05 23:06:28 +02:00
Martin Kroeker 8a767975b0 Comment out the libclang_rt kludge, for future removal 2026-06-05 20:37:28 +02:00
Martin Kroeker 7a08010406 Fix trashing of $data that breaks the check for C11 atomics 2026-06-05 19:22:10 +02:00
Amrita H S 831b822b94 Fix incorrect inline assembly constraints in dcbt prefetch instructions
Corrected the register constraints for the PowerPC dcbt (Data Cache Block
Touch) instruction in Power10 kernel implementations. The dcbt instruction
has special behavior where if the first operand (RA) is r0, it uses the
value 0 instead of the register contents. Therefore, RA must use the "b"
constraint (any GPR except r0), while RB can use "r" (any GPR including r0).

Changes:
- Changed first operand constraint from "r" to "b" to exclude r0
- Changed second operand constraint from "b" to "r" for flexibility

This ensures correct prefetch behavior and compliance with PowerPC ISA
specifications, preventing potential issues where r0 might be incorrectly
used as the base address register.

Signed-off-by: Amrita H S <amritahs@linux.vnet.ibm.com>
2026-06-04 01:49:08 -05:00
Amrita H S 3863a7778d Power10: Replace vector pair loads with __builtin_vsx_lxvp
Replace normal vector pair pointer dereferences with the optimized
__builtin_vsx_lxvp builtin across DGEMM, ZGEMM, and DGEMV kernels.

Also done some identation corrections in dgemm_kernel_power10.c.
This is done as part of POWER code cleanup and may not have any
performance impact.

Signed-off-by: Amrita H S <amritahs@linux.vnet.ibm.com>
2026-06-03 02:34:53 -05:00
Chip Kerchner 6a23c36313 Unroll inner loop - 2 rows at a time. Up to 1.5X faster. 2026-06-02 16:39:16 +00:00
Martin Kroeker 91f97c667e Merge pull request #5824 from mathomp4/bugfix/5823-fix-for-nag
Fix shared lib build with NAG Fortran on macOS
2026-05-30 20:50:42 +02:00
Matthew Thompson 7a2b8b5aa6 cmake: fix shared lib build with NAG Fortran on macOS
On Apple, the shared library link rule for Fortran used GCC-specific flags:
  -x f95-cpp-input   (GCC preprocessing flag; NAG does not support it)
  -Wl,-shared        (Linux linker flag; macOS needs -dynamiclib)

The fix is NAG-specific — other non-GNU compilers (Intel, flang, Cray,
etc.) are left alone since they may handle the existing code paths fine.

Fix in two places (both already inside if(APPLE) / if(APPLE AND BUILD_STATIC_LIBS)):

1. Before add_library() (affects the main CMake Fortran shared lib rule):
   For NAG Fortran, substitute CMAKE_C_CREATE_SHARED_LIBRARY so the
   C compiler link rule is used instead.

2. Inside the APPLE AND BUILD_STATIC_LIBS block (the static->shared
   conversion trick for long argument lists): add an elseif(NAG) branch
   that uses the C compiler with -dynamiclib and auto-detects the NAG
   Fortran runtime (libf72rts) from the compiler's directory so that
   NAGf90_* symbols resolve.

Tested with NAG 7.2.7243 on macOS/arm64.
2026-05-29 11:29:39 -04:00
pengxu 6731dac68b optimize zgemm lsx kernel for 2k3000 cpu 2026-05-29 10:05:39 +08:00
Chip Kerchner 5b22140dfc Merge branch 'develop' of https://github.com/OpenMathLib/OpenBLAS into develop 2026-05-28 15:11:22 +00:00
Tanmay GulhaneandVaibhav805 601ff0ef2a docs: clarify RISC-V RVV target selection and GCC 14+ requirement for ZVL128B/ZVL256B
Add a RISC-V subsection to docs/install.md inside 'Building from source',
between the existing MIPS and FreeBSD sections, covering:

  - Target selection table (RISCV64_GENERIC / RISCV64_ZVL128B /
    RISCV64_ZVL256B / C910V / x280) and what each is for.
  - The general property that GENERIC / ARCH_GENERIC targets across
    all architectures map to the non-vectorized plain-C reference
    path, with the Makefile.riscv64 scalar -march override noted as
    the RISC-V-specific compounding factor.
  - GCC 14+ requirement for the ZVL targets on current OpenBLAS
    releases (GCC 13 does not implement the __riscv_vsseg* intrinsics
    used by the _rvv.c kernels and falls back to scalar silently,
    detectable only by disassembly).
  - Reference objdump-based verification command and expected
    opcode-count range for a correct RISCV64_ZVL128B build.

README.md now keeps a single one-line pointer to the new install.md
section at the spot where users encounter the RISC-V build commands,
so the signposting is preserved without bloating the page that GitHub
renders by default.

v2 of this PR, addresses review feedback from @martin-frbg on
relocation and on the broader GENERIC framing.

Co-authored-by: Vaibhav805 <Vaibhav805@users.noreply.github.com>
2026-05-25 13:29:39 +00:00
Martin Kroeker 1bd74ad3d1 Merge pull request #5820 from martin-frbg/issue5818
Fix misoptimization of C/ZGETF2 by Clang on Apple M
2026-05-25 09:20:56 +02:00
Martin Kroeker 1f2ae720af Make temp1 volatile to keep Clang on AppleM from optimizing out the division guards 2026-05-25 00:35:40 +02:00