Commit Graph

116 Commits

Author SHA1 Message Date
Martin Kroeker
d0a6e36896 Fix rules for running the GEMM3M tests 2026-02-18 11:41:25 +01:00
Martin Kroeker
ee6aa89fb0 Add BFLOAT16 and HFLOAT16 tests 2025-10-16 03:56:43 -07:00
Martin Kroeker
887f4f32ed Merge branch 'OpenMathLib:develop' into issue5497 2025-10-15 14:01:13 -07:00
Martin Kroeker
19be504cd0 Add tests varying alpha and beta 2025-10-15 14:00:58 -07:00
Martin Kroeker
05adb52353 copypaste fix 2025-10-15 00:29:26 +02:00
Martin Kroeker
87470a3b18 remove unused definitions 2025-10-12 14:21:33 -07:00
Martin Kroeker
a5fda2e2c3 fix missed bfloat/hfloat edit
Co-authored-by: Christopher Sidebottom <chris.sidebottom@arm.com>
2025-10-10 23:38:43 +02:00
Martin Kroeker
fba2014239 remove spurious POSIX define 2025-10-10 14:36:33 +02:00
Martin Kroeker
5c89e4c770 remove the stricted build flags 2025-10-10 11:09:56 +02:00
Martin Kroeker
09c18779bb Add test for SHGEMM 2025-10-10 01:40:28 -07: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
578e7dae85 Fix bf16->f32 conversion for NEOVERSEV1 and NEOVERSEN2 targets
This fixes an issue originally introduced with the BGEMM kernel.

I've updated the tests to run with `beta=1.0` so as to test loading and
updating from C.

Alongside this, the tests now return sensible return values to reduce
the risk of them being ignored.

Also fixed a bug in `generic/gemv_t.c` resulting in weird outputs for
`bgemv`.
2025-10-06 18:05:58 +00:00
Martin Kroeker
b66a01f909 Fix building of bgemm tests on GEMM3M-capable (x86) targets 2025-07-28 22:43:28 +02:00
Chris Sidebottom
ea2faf0c9a Add optimized BGEMM for NEOVERSEN2 target
This re-uses the existing NEOVERSEN2 8x4 `sbgemm` kernel to implement `bgemm`.
2025-07-24 10:59:28 +00:00
Chris Sidebottom
2c3cdaf74e Optimized BGEMV for NEOVERSEV1 target
- Adds bgemv T based off of sbgemv T kernel
- Adds bgemv N which is slightly alterated to not use Y as an
accumulator due to the output being bf16 which results in loss of
precision
- Enables BGEMM_GEMV_FORWARD to proxy BGEMM to BGEMV with new kernels
2025-07-23 10:51:41 +01:00
Martin Kroeker
38e6999295 format cleanup 2025-07-18 23:45:08 +02:00
Martin Kroeker
3df503cafd portability fix and cleanup 2025-07-18 23:41:57 +02: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
09a016fdf6 Split sbgemv test from sbgemm test 2025-07-13 13:39:44 +00:00
Chris Sidebottom
3f110c8272 Improve bgemm and sbgemm testing
- Fixes wrong return type for `is_close`
- Adds stricter compiler flags for test files so we don't see the above
issue again
- Re-uses test helper functions between compare_sgemm_sbgemm/bgemm.c
2025-07-13 12:48:09 +00:00
Martin Kroeker
aad97c7763 Fix return type declaration 2025-07-11 15:32:41 +02:00
Chris Sidebottom
740efd71c4 Add optimized BGEMM kernel for NEOVERSEV1 target
This also improves the testing and generic kernel by re-using the BF16
conversion functions.

Built on top of https://github.com/OpenMathLib/OpenBLAS/pull/5357 and derived from https://github.com/OpenMathLib/OpenBLAS/pull/5287

Co-authored-by: Ye Tao <ye.tao@arm.com>
2025-07-10 23:23:27 +00:00
Martin Kroeker
9a272fece6 Re-enable the BGEMM tests 2025-07-10 15:02:59 +02:00
Martin Kroeker
b54aec804e remove spurious include 2025-07-10 15:00:30 +02:00
Chris Sidebottom
8cd4be8d47 Temporarily disable test_bgemm 2025-07-09 08:27:18 +01:00
Chris Sidebottom
f95e7b0e32 Add infrastructure for BGEMM
Setting up all the infrastructure for BGEMM support in OpenBLAS, hopefully I found all the right places.

Derived mostly from the previous work done in https://github.com/OpenMathLib/OpenBLAS/pull/5287

Co-authored-by: Ye Tao <ye.tao@arm.com>
2025-07-08 16:22:41 +01:00
Martin Kroeker
70865a894e Merge pull request #5180 from ywwry66/openmp_use_cmake
CMake: Pass `OpenMP` compiler and linker flags through CMake targets
2025-04-08 13:16:07 -07:00
Martin Kroeker
1c5d0d5539 move libomp to extralib 2025-04-08 10:44:36 +02:00
Ruiyang Wu
1b0c0f00e9 CMake: Avoid mixed OpenMP linkage 2025-03-26 23:52:13 -04:00
Ye Tao
4346b91559 add beta and alpha testcase for sbgemv 2025-02-28 16:48:47 +00:00
Chip Kerchner
36bd3eeddf Vectorize BF16 GEMV (VSX & MMA). Use GEMM_GEMV_FORWARD_BF16 (for Power). 2024-10-13 13:46:11 -05:00
Rohit Goswami
722e4ae07a MAINT: Explicitly replace instead of unknown 2024-10-05 16:23:02 +00:00
Rohit Goswami
a6b7751881 BUG: Allow tests to be run multiple times
Without failures due to existing files
2024-10-05 16:22:56 +00:00
Chip Kerchner
89702e1f4a Fix zero element GEMV test. 2024-08-16 11:37:39 -05:00
Chip Kerchner
77f85c7c00 GEMV tests don't like zero elements. 2024-08-16 11:15:32 -05:00
Chip Kerchner
868aa857bc Change malloc zero to return one byte and update the SBGEMM test to again use sizes of zero. 2024-08-16 10:28:10 -05:00
Chip Kerchner
b1802f4dc8 Fix unit test to start at 1 instead of 0 - since malloc zero bytes fails on some systems. 2024-08-16 09:51:37 -05:00
Chip Kerchner
c23897f585 Add GEMV testing to SBGEMx vs SGEMx testing. 2024-08-14 15:55:23 -05:00
Martin Kroeker
6452f7b46d Merge pull request #4873 from ChipKerchner/fixSBGEMMDefaults
[POWER] Problem with multi-threaded SBGEMM
2024-08-14 19:22:03 +02:00
Chip Kerchner
31226740d6 Cleanup of SBGEMM unit test. 2024-08-14 08:10:25 -05:00
Henry Chen
20bdb65882 Fix recursive variable expansion in Makefiles for LOONGSON3A 2024-08-14 15:08:32 +08:00
Chip Kerchner
b1737698db Fix DEFAULTS in SBGEMM for POWER10. Also comparisons for SBGEMM unit test can be exactly due to epilison differences. 2024-08-13 07:01:21 -05:00
Martin Kroeker
76db713e79 fix invocation of GEMM3M tests 2024-08-07 21:37:20 +02:00
Vladimir Nikolić
56e1782ffb Add another missing parenthesis 2024-07-15 15:15:23 -07:00
Chip Kerchner
f708944fea Add all 4 variations of the SBGEMM to compare_sgemm_sbgemm 2024-07-10 13:07:48 -05:00
Martin Kroeker
edacf9b397 Work around spurious BLAS3 test errors on LOONGSON3R3/4 (#4667)
Force compilation with gfortran to use O0 on older Loongson hardware to avoid spurious test failures
2024-04-30 08:50:47 +02:00
Martin Kroeker
28f151808e Avoid overriding the global USE_GEMM3M 2024-02-26 21:01:46 +01:00
Martin Kroeker
ba201c1939 Enable GEMM3M tests on supported platforms 2024-02-25 23:39:24 +01:00
Martin Kroeker
4adfe4d531 Avoid linking both libgomp and libomp in mixed clang/gfortran builds 2024-02-22 22:16:01 +01:00
Martin Kroeker
e9f480111e fix sbgemm bfloat16 conversion errors introduced in PR 4488 2024-02-07 19:57:18 +01:00