178 Commits
Author SHA1 Message Date
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
Keno FischerandClaude Fable 5 7a07c8e1f4 Add an asynchronous cancellation API for in-flight operations
Long-running BLAS calls (a large gemm can run for minutes) cannot
currently be interrupted: callers embedding OpenBLAS (e.g. the Julia
runtime responding to a user's ^C) can only wait for completion or kill
the process. Add a minimal cooperative cancellation protocol:

Every thread owns a pointer-sized generation slot in thread-local
storage, whose stable address is returned by openblas_cancel_token().
Instrumented compute drivers advance the slot to a fresh even
generation at operation entry on the issuing thread (forwarding the
slot and generation to worker threads through blas_arg_t) and poll it
at block granularity. openblas_cancel(token, loaded_token) - callable
from any thread - sets the cancel bit (bit 0) iff the slot still holds
loaded_token, so a canceller that loaded the value while an operation
was in flight stops exactly that operation, while stale or racing
requests either miss or dirty an already-dead generation, both
harmless. There is no object lifecycle: nothing to allocate, bind,
reset, or free.

A cancelled operation returns quickly, leaving its output buffer in an
unspecified partially-updated state that the caller must discard; every
synchronization point in the threaded driver is still executed, so
sibling threads never stall and the library remains consistent for
subsequent calls. Coverage: the level-3 gemm/symm/hemm drivers
(level3.c and level3_thread.c).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012nCkyKUguncLLJrH9K5o7m
2026-07-19 04:20:28 +00:00
moluopro f07e6a3d0d exports: preserve Windows ordinals in Perl generator 2026-07-10 15:39:22 +08:00
moluopro 490721cbd9 exports: preserve Windows ordinals for new symbols 2026-07-10 15:38:26 +08:00
moluopro 8da645954b exports: expose the XERBLA handler setter 2026-07-10 14:56:48 +08:00
Michael Cho 59da821b0d build: fix Makefile build with LLVM flang on macOS 2026-02-01 15:16:11 -05:00
lujiaweics 879497990f Fix bug where openblas_set_threads_callback_function does not support modyfing symbol prefix and suffix in shared library 2026-01-05 21:49:04 +08:00
Chris Sidebottom 37fc3bbca0 Add Infrastructure for SHGEMV
This adds all the relevant bits and pieces to add a `shgemv` path as
well as a future `hgemm`/`hgemv` path in a similar model to `sb` and `b`
interfaces.

I've also fixed a few bits and pieces around `shgemm` which didn't build
in a few situations.
2025-10-07 15:03:24 +00:00
Chris Sidebottom e105411460 Add infrastructure for bgemv/bscal
- Sets up all the various entrypoints for `bgemv`
- Adds `bscal` for use in the `bgemv` interface
- Adds test cases for comparing `sgemv` and `bgemv`
- Adds generic kernels for `bgemv_n` and `bgemv_t` which are accurate
enough to pass above tests
2025-07-15 14:48:57 +01:00
Chris Sidebottom 73bf0b941a Add bgemm to gensymbol 2025-07-08 16:22:43 +01:00
Srangrang ec14e1648c fix: resolve non-RISCV host build failed issue
- adjust interface to disable "small matrix" pathway
- separate HFLOAT16 from BFLOAT16
- remove SHGEMM_UNROLL_M and SHGEMM_UNROLL_N equal conditions

Related to PR#5290
Co-authored-by Martin
2025-06-15 20:25:15 +08:00
gkdddd 670ec6f757 Added shgemm_kernel_8x8 for RISCV64_ZVL128B and shgemm_kernel_16x8 for RISCV64_ZVL256B
Added HFLOAT16 support for RISCV64
Added shgemm_kernel_8x8 for RISCV64_ZVL128B and shgemm_kernel_16x8 for RISCV64_ZVL256B based on HFLOAT16
The instruction sets used are ZVFH and ZFH, which need to be supported by RVV1.0

Related to issue #5279
Co-authored-by Linjin Li <linjin_li@163.com>
2025-06-03 20:14:30 +08:00
Martin Kroeker 3ca1ba1be3 resynchronize with the posix shell version 2025-03-26 18:37:11 +01:00
Harishmcw c0a5c9655e Fix missing commas in gensymbol.pl 2025-03-24 13:49:55 +05:30
Martin Kroeker ebcab90976 Handle flang-new runtime library linking on Linux like classic-flang 2025-02-17 23:12:58 +01:00
Martin Kroeker 61d5aec7c1 remove typo 2024-12-11 00:41:56 +01:00
Martin Kroeker 5aea097df0 add missing lapack 3.11+ symbols 2024-12-10 23:52:05 +01:00
Martin Kroeker c3e7d08fb4 Copy GEMMT to its new name GEMMTR 2024-10-30 12:56:16 +01:00
Martin Kroeker f6469e21bc move gelqs and geqrs to lapack-deprecated 2024-08-14 16:00:43 +02:00
Martin Kroeker 833a8880c6 add cblas_?gemm_batch 2024-05-29 15:47:50 +02:00
frjohnst 87026ac1b1 Revert "fix conlict between PR 4515 and AIX shared obj support"
This reverts commit bdaa6705ca.

It turns out that PRs 4515 and 4520 break the tests under
lapack-netlib/TESTING which require SECOND and DSECND. IBM
has decided this is a bigger biger problem than the conflict
between lapack second_ and the xlf run time.
2024-05-15 09:45:17 -04:00
Martin Kroeker 35d84ad012 Merge pull request #4658 from mattip/remove-extra-suffix
do not add LIBNAMESUFFIX to dylib
2024-04-23 11:03:33 +02:00
Matti Picus 94feadf242 do not add LIBNAMESUFFIX to dylib 2024-04-21 13:16:40 +10:00
Matti Picus 4d96e0ce18 remove extraneous suffix from shared object SONAME 2024-04-11 10:36:30 +10:00
Chip Kerchner 0e0d0bce1a Fix global (static) constructor priorty so that OpenBLAS gets initialized before other libraries. Other unit test AIX fix. 2024-03-25 15:11:55 -05:00
frjohnst bdaa6705ca fix conlict between PR 4515 and AIX shared obj support 2024-02-23 10:20:48 -05:00
Martin Kroeker 2e86faa657 Merge branch 'develop' into issue4468 2024-02-23 11:39:49 +01:00
Ayappan Perumal 892f8ff3e5 Shared library support for AIX 2024-02-22 07:05:37 -06:00
Martin Kroeker 179527f622 Merge branch 'OpenMathLib:develop' into issue4468 2024-02-15 12:15:39 +01:00
Martin Kroeker 10ea3fb742 fix duplication of name parts 2024-02-09 17:09:55 +01:00
Martin Kroeker 93872f4681 drop the ?laqz? symbols for now (not translatable by f2c) 2024-02-08 23:02:09 +01:00
Martin Kroeker 83bec51355 Update with recently added CBLAS interfaces and LAPACK/LAPACKE functions 2024-02-08 21:23:48 +01:00
Martin Kroeker 25b300bbee improve internal names 2024-02-06 23:40:01 +01:00
Martin Kroeker 440edfd997 Add option to suppress versioning of the internal name 2024-02-05 21:44:50 +01:00
Martin Kroeker 2390e0bfbc Quote the BU (underscore) option as it may not be set 2023-09-21 23:04:25 +02:00
Martin Kroeker 174f4e65e3 Add LAPACK/LAPACKE functions for Dynamic Mode Decomposition 2023-06-20 23:14:35 +02:00
Martin Kroeker 2ea00788c2 Add ?GEMMT 2023-04-11 22:46:51 +02:00
Martin Kroeker 6c45c98083 Add (only) the GEMMT functions 2023-04-11 22:41:18 +02:00
Martin Kroeker d5fbec7c20 Export ?MIN/?MAX, ?AMIN/?AMAX, CDOT/ZDOT and ?GEMMT 2023-04-10 23:49:35 +02:00
Ralf Gommers a4ee1c84f0 Export ssyconvf symbol
This was apparently missed in commit a836fe8ec when adding the
LAPACK 3.7.0 symbols. We noticed when adding wrappers for 3.7.0
routines in SciPy. For more details, see
https://github.com/rgommers/scipy/issues/143
2023-04-07 12:50:36 +01:00
Martin Kroeker f703846ad9 Add function prototypes 2022-08-13 11:38:27 +02:00
Martin Kroeker 72ea19d187 Amend some LAPACK 3.10.0 additions 2022-06-09 19:31:08 +02:00
Martin Kroeker e9c3535208 Fix LAPACK path in new gensymbol script 2022-06-05 23:28:12 +02:00
Martin Kroeker f5a379bf77 Add USE_PERL fallback option for gensymbol script 2022-05-22 18:35:23 +02:00
Martin Kroeker cfc1a9ed8d Add back original PERL-based script under new name 2022-05-22 18:33:24 +02:00
Owen Rafferty 42c7a27e6b rewrite perl scripts in universal shell 2022-05-18 19:00:15 -05:00
Martin Kroeker db7a03dd4c keep flang-classic on MacOS from trying to create an executable instead of a library 2022-02-10 23:04:45 +01:00
Martin Kroeker 0b8a436af9 Add mixed clang/ifort build on OSX to Azure CI (#3185)
* Add mixed clang/ifort build on OSX to the Azure CI config based on https://github.com/oneapi-src/oneapi-ci
(and remove debugging tools from the clang+gfortran job)

* Remove extraneous libgfortran dependency of ifort builds

* remove FEXTRALIB from link line of shared library as ifort keeps track of dependencies (and they are different for a .dylib than what f_check got for an executable)
2021-04-22 02:11:20 +02:00
Harmen Stoppels ec6b354c32 use /usr/bin/env perl 2021-02-24 14:07:20 +01:00
Chen, Guobing a7b1f9b1bb Implementation of BF16 based gemv
1. Add a new API -- sbgemv to support bfloat16 based gemv
2. Implement a generic kernel for sbgemv
3. Implement an avx512-bf16 based kernel for sbgemv

Signed-off-by: Chen, Guobing <guobing.chen@intel.com>
2020-10-29 02:08:23 +08:00