Commit Graph

10667 Commits

Author SHA1 Message Date
Martin Kroeker b6ee68da06
Merge pull request #5955 from moluopro/fix-riscv64-gemm-gemv-forwarding
Fix RISC-V GEMM/GEMV forwarding in Make builds
2026-08-04 15:40:38 +02:00
Martin Kroeker acfe406eb7
Merge pull request #5957 from uuiitwp/develop
Fix pointer comparison in laed3.c threading threshold
2026-08-04 14:22:11 +02:00
Martin Kroeker 914f3ae6a8
Merge pull request #5949 from martin-frbg/issue5947
Prevent accidental increase of the thread count inside a parallel region
2026-08-04 14:21:05 +02:00
uuiitwp d591836293
Fix pointer comparison in laed3.c threading threshold 2026-08-04 14:36:18 +08:00
moluopro ecc04e57cf Fix RISC-V GEMM/GEMV forwarding in Make builds 2026-08-03 22:05:43 +08:00
Martin Kroeker c3db185d6c
Merge pull request #5879 from amritahs-ibm/BGEMM_PPC
BGEMM Kernel implementation for Power PC Architecture
2026-07-31 00:04:15 +02:00
Martin Kroeker 80920a3242
Merge pull request #5944 from lujiaweics/fix/zrotg-missing-profile-end
Fix build error in zrotg.c with FUNCTION_PROFILE=1 from Makefile.rule
2026-07-30 23:34:06 +02:00
Martin Kroeker 2621df71d5
Merge pull request #5952 from pkubaj/patch-3
system.cmake: mirror recent Makefile.power commits
2026-07-29 19:40:30 +02:00
Martin Kroeker 2a921cfe85
Merge pull request #5951 from martin-frbg/fixup5577
Make get/set_affinity visible again and export functions in the OpenMP blas server too
2026-07-29 11:02:40 +02:00
Piotr Kubaj 76e12db33b
system.cmake: mirror recent Makefile.power commits
Fixes builds with clang when using cmake.
2026-07-29 08:48:25 +00:00
Martin Kroeker 28e75a8530
Tag get/set_affinity with OPENBLAS_EXPORT 2026-07-28 20:52:15 +02:00
Martin Kroeker 4230fe472e
Tag openblas_set_num_threads and get/set_affinity with OPENBLAS_EXPORT 2026-07-28 20:45:46 +02:00
Martin Kroeker e7363c16c1
Merge pull request #5948 from martin-frbg/issue5946
Copy PROLOGUE into PROLOGUE_EXPORT for other arch/os combinations that have assembly kernels
2026-07-28 20:41:25 +02:00
Martin Kroeker 842189bf3f
Prevent accidental increase of the thread count inside a parallel region 2026-07-28 14:27:26 +02:00
Martin Kroeker e17e958a09
Copy PROLOGUE into PROLOGUE_EXPORT 2026-07-28 11:59:54 +02:00
Martin Kroeker e231f4bb89
Copy PROLOGUE to PROLOGUE_EXPORT 2026-07-28 11:57:24 +02:00
Martin Kroeker 876310b12c
Define PROLOGUE_EXPORT (same as PROLOGUE for now) 2026-07-28 11:49:25 +02:00
Martin Kroeker c6aeca0365
Define PROLOGUE_EXPORT for AIX and OSX (same as PROLOGUE) 2026-07-28 11:46:30 +02:00
Martin Kroeker 181aadf226
Merge pull request #5945 from OpenMathLib/revert-5921-issue5905
Revert "Mark temporaries as volatile to avoid SIGBUS in multithreaded builds with gcc15+ on 32bit FreeBSD/x86"
2026-07-27 07:48:58 +02:00
Martin Kroeker b080247a21
Revert "Mark temporaries as volatile to avoid SIGBUS in multithreaded builds with gcc15+ on 32bit FreeBSD/x86" 2026-07-26 22:51:58 +02:00
lujiaweics b6ad3e2079 Fix build error in zrotg.c with FUNCTION_PROFILE=1 from Makefile.rule
Add missing FUNCTION_PROFILE_END / IDEBUG_END after all return
paths to properly close the brace opened by FUNCTION_PROFILE_START.
Use a do { … } while(0) wrapper so the macros stay outside any
nested block.
2026-07-27 01:58:17 +08:00
Martin Kroeker 8766886cfc
Merge pull request #5577 from mattip/attrib-hidden
add visibility=default to exported functions, visibility=hidden to most assembler
2026-07-24 00:16:00 +02:00
Martin Kroeker 15a14842a1
Expressly add visibility=default to override the "hidden" in CFLAGS 2026-07-23 20:14:14 +02:00
Martin Kroeker 0ddb20ffea
Merge pull request #5940 from martin-frbg/lapack1332
Fix memory freeing on error paths of LAPACKE C/ZGEJSV,C/ZGESVDX (Reference-LAPACK PR 1332)
2026-07-23 10:34:28 +02:00
Martin Kroeker a543bd5d07
Export openblas_cancel and openblas_xerbla_handler 2026-07-23 10:33:28 +02:00
Amrita H S 8d439717c5 power/sbgemm_kernel_power10.c: reformat to 4-space indentation
Pure cosmetic cleanup; no functional changes.

Convert all tab-indented code to 4-space indent, align macro
continuation backslashes, switch brace placement to consistent K&R
style, reformat multi-line vector initialisers, and remove trailing
whitespace on SAVE4x2_ACC1_SCALAR.

Signed-off-by: Amrita H S <amritahs@linux.vnet.ibm.com>
2026-07-23 02:14:01 -05:00
Amrita H S 0d6d459161 power/bgemm: add BFloat16-in, BFloat16-out GEMM kernel for POWER10
Add BGEMM (BF16 input → BF16 output) for POWER10 by reusing the
existing SBGEMM kernel infrastructure. A -DBGEMM compile flag switches
only the store path; the xvbf16ger2pp MMA instruction and BF16 packing
routines are shared with SBGEMM unchanged.

Changes
-------
kernel/power/KERNEL.POWER10
  - Register BGEMM kernel and copy-routine targets, reusing the
    sbgemm_ncopy/tcopy sources (packing layout is identical).

kernel/power/sbgemm_kernel_power10.c
  - Under BGEMM: force v4sf_t to float so accumulators stay in
    float32; add STORE4_BF16/STORE2_BF16 macros (read BF16 C, widen,
    apply alpha*acc, convert back via xvcvspbf16, store); add
    f32_to_bf16_scalar() for m&1/n&1 tails; add BGEMM variants of
    all SAVE_ACC macros covering the full m/n tile hierarchy.

param.h
  - Add BGEMM_DEFAULT_UNROLL_M=16, UNROLL_N=8, P/Q/R blocking
    parameters for POWER10, matching the 16x8 kernel tile.

Unit test (utest/test_extensions/test_bgemm.c)
  - Uses SBGEMM as a trusted reference. 21 test cases cover all four
    transpose combinations, all m/n remainder paths, odd-k, alpha=0,
    beta=0/1, and the m>=32 fast path. Tolerance 0.01 to account for
    the one extra BF16 rounding on the BGEMM store.

Performance (POWER10, single-threaded, Transa=N Transb=N)
----------------------------------------------------------
Step=1 (sizes 1–200):
  - Sizes 1–80:   baseline 0.1–128 MFlops (scalar fallback);
                  patch 0.1–39,656 MFlops (up to ~350x faster at M=80).
  - Sizes 81–200: patch 3x–24x faster (avg ~10x) with 16×8 MMA tile
                  engaged.

Step=8 (sizes 8–1024):
  - Baseline peaks at ~2,950 MFlops (avg ~1,746 MFlops).
  - Patch sustains 75,000–1,009,866 MFlops for sizes 384–960,
    exceeding 1 TFlops at large sizes.
  - Median speedup ~99x; average speedup ~140x across all sizes.

Signed-off-by: Amrita H S <amritahs@linux.vnet.ibm.com>
2026-07-23 02:13:31 -05:00
Martin Kroeker 2a9e09faad
Merge pull request #5941 from martin-frbg/issue5937
Fix C/C++ atomics conflict in compilation of the cpp_thread_tests
2026-07-23 08:58:14 +02:00
Martin Kroeker 52f0572564
Guard use of C11 atomics against C++ compilation 2026-07-23 00:08:50 +02:00
Martin Kroeker c3de327dd5
Add CX factorization (expert) routines ?GECXX (Reference-LAPACK PR 1161) (#5938)
* Add CX factorization (expert) routines ?GECXX (Reference-LAPACK PR 1161)
2026-07-23 00:02:28 +02:00
Martin Kroeker 251169b710
Fix invalid deallocations on error paths (Reference-LAPACK PR 1332) 2026-07-22 23:59:08 +02:00
Martin Kroeker cf8a045b0e
Merge pull request #5939 from martin-frbg/lapack1331
Avoid computing ONE/HUGE unless needed (Reference-LAPACK PR 1331)
2026-07-22 21:58:57 +02:00
Martin Kroeker b6df159a67
Avoid computing ONE/HUGE unless needed (Reference-LAPACK PR 1331) 2026-07-22 17:49:20 +02:00
Martin Kroeker 8c1535b8d9
Merge pull request #5936 from martin-frbg/fixup-5883
Use QR for bidiagonal SVD with vectors in ?BDSDC (Reference-LAPACK PR 1300)
2026-07-22 11:40:52 +02:00
Martin Kroeker 39cdbe6a3c
expose openblas_set_xerbla 2026-07-22 00:07:43 +02:00
Martin Kroeker 63ad298a67
Merge branch 'develop' into attrib-hidden 2026-07-21 20:00:16 +02:00
Martin Kroeker 1c6f5f4efd
Use QR for bidiagonal SVD with vectors in ?BDSDC (Reference-LAPACK PR 1300) 2026-07-21 18:50:28 +02:00
Martin Kroeker efab2a2fde
Merge pull request #5929 from moluopro/remove-misspelled-bdsdc-sources
Fix CMake dynamic-arch fallback and remove unused BDSDC source copies
2026-07-21 18:40:25 +02:00
Martin Kroeker 0b54dd1154
Merge pull request #5933 from martin-frbg/issue5932
Fix compilation with MinGW-W64-Clang under Windows-Arm64
2026-07-20 07:50:42 +02:00
Martin Kroeker d496ab17c2
Merge pull request #5882 from KenoAIStaging/kf/cancellation
Add an asynchronous cancellation API for in-flight operations
2026-07-20 00:25:16 +02:00
Martin Kroeker 4ab4f1eae9
Fix identification of MinGW64 on WoA 2026-07-20 00:20:05 +02:00
Martin Kroeker 96d60aa6a8
Fix version check and prefix llvm backend option 2026-07-20 00:14:23 +02:00
Martin Kroeker 0d928ca275
stack-hazard-size is a llvm backend option 2026-07-20 00:09:07 +02:00
Martin Kroeker 544afb15d6
stack-hazard-size is a llvm backend option 2026-07-20 00:06:48 +02:00
Martin Kroeker f959027a06
Merge pull request #5925 from martin-frbg/fix_getarch_woa
Fix getarch build error in Windows-on-Arm
2026-07-19 17:57:39 +02:00
moluopro 1b64851291 RISCV64-CI: Backport QEMU clone_lock fix 2026-07-19 23:32:40 +08:00
moluopro 43f18d82f5 AzureCI: Parallelize macOS CMake build 2026-07-19 23:32:22 +08:00
moluopro 6421c17643 AzureCI: Restore SkylakeX fallback coverage
Keep SkylakeX in the dynamic list with NO_AVX512 so the CMake job verifies that it is demoted to Haswell.
2026-07-19 20:48:28 +08:00
moluopro 2f21ad9282 CMake: Use effective core for fallback kernels
Keep the logical target for dynamic dispatch names while selecting kernel sources and capabilities from the core chosen by getarch after ISA restrictions.
2026-07-19 20:48:10 +08:00
moluopro e21bffc882 AzureCI: Align dynamic list with NO_AVX512 2026-07-19 18:59:06 +08:00