Commit Graph

2533 Commits

Author SHA1 Message Date
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
343830c26f Add BGEMM parameter tables 2025-07-10 14:59:46 +02:00
Martin Kroeker
ff614575c9 Fix arm64 HAVE_SME setting for DYNAMIC_ARCH builds 2025-07-09 14:44:25 +02:00
Martin Kroeker
0e11537cab Merge pull request #5357 from Mousius/bgemm-init
Add infrastructure for BGEMM
2025-07-09 09:34:58 +02:00
Chris Sidebottom
66d9185ebe Fix CMake support 2025-07-08 22:49:55 +00:00
Martin Kroeker
fd37406817 Merge branch 'develop' into optimized_gemv_n_1x3 2025-07-08 21:05:30 +02: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
Iha, Taisei
f7ad906b49 Performance improvements of [SD]DOT with loop-unrolling on A64FX 2025-07-04 22:57:44 +09:00
Martin Kroeker
d96daa220d Merge pull request #5290 from Srangrang/develop
Add support for FP16 to openBLAS and shgemm on RISCV
2025-06-24 23:10:15 +02:00
Martin Kroeker
ee26caffb3 Merge pull request #5309 from davidz-ampere/dev-ampereone
Add support for Ampere AmpereOne processors
2025-06-24 12:27:08 +02:00
davidz-ampere
aa90ab4142 Add support for Ampere AmpereOne processors 2025-06-24 00:12:34 -04:00
Ian McInerney
badef1d32e Update sbgemm_tcopy_4_neoversev1 kernel to use standard C types 2025-06-19 14:26:16 +01:00
Martin Kroeker
3318a2b904 override CDOT and ZDOT with the generic C kernel 2025-06-17 22:41:40 +02:00
davidz-ampere
84730068af reduce duplicate kernel code 2025-06-17 03:05:34 -04:00
davidz-ampere
be68ef03b4 Add support for Ampere processors 2025-06-15 22:00:40 -04:00
Srangrang
9f13b2c6ac style: modify HALF to BFLOAT16 in benchmark folder 2025-06-15 20:57:05 +08: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
Martin Kroeker
e338d34ce1 fix path 2025-06-13 13:37:15 +02:00
Martin Kroeker
d36093d084 temporarily change default C/ZSCAL to the non-asm implementation 2025-06-13 13:32:02 +02:00
Martin Kroeker
b3c90564d7 resync with the generic arm version for inf/nan handling 2025-06-13 00:54:27 -07:00
Martin Kroeker
6bdc7f9eb7 Merge pull request #5300 from martin-frbg/fixup5296
kernel/riscv64: Fix cscal/zscal for riscv64_generic
2025-06-12 15:02:22 -07:00
Martin Kroeker
73af02b89f use dummy2 as Inf/NAN handling flag 2025-06-12 13:33:56 -07:00
Martin Kroeker
549a9f1dbb Disable the default SSE kernels for CSCAL/ZSCAL for now 2025-06-12 18:54:33 +02:00
Martin Kroeker
58eeb9041c fix handling of dummy2 2025-06-12 03:03:01 -07:00
Martin Kroeker
7c77537b25 Merge pull request #5297 from martin-frbg/zscal_x86_sparc
kernel/(x86|sparc): Fix cscal and zscal by reverting to the generic C kernels
2025-06-12 01:10:35 -07:00
Martin Kroeker
63287e1855 Merge pull request #5296 from martin-frbg/zscal_riscv
kernel/riscv64: Fix cscal and zscal
2025-06-12 01:10:15 -07:00
Martin Kroeker
d2855d3dab Merge pull request #5285 from martin-frbg/zscal_zarch
kernel/zarch: Fix cscal and zscal
2025-06-12 01:09:52 -07:00
Martin Kroeker
1408be5fe0 Merge pull request #5282 from martin-frbg/zscal_power
kernel/power: Fixed cscal and zscal
2025-06-12 01:04:38 -07:00
Martin Kroeker
1589d0b21e Merge pull request #5281 from martin-frbg/zscal_arm64
kernel/arm64: fixed cscal and zscal
2025-06-12 01:04:18 -07:00
Martin Kroeker
a86419fb66 Merge pull request #5280 from martin-frbg/zscal_x86_64
kernel/x86_64: fixed cscal and zscal
2025-06-12 01:03:55 -07:00
Martin Kroeker
11ff18bb0f Merge pull request #5081 from XiWeiGu/kernel_generic_fixed_cscal_zscal
kernel/generic: Fixed cscal and zscal
2025-06-12 01:03:00 -07:00
Martin Kroeker
f4194fc65f Merge branch 'develop' into la64_fixed_cscal_zscal 2025-06-11 14:28:41 -07:00
Martin Kroeker
e12132abd4 Use generic C/ZSCAL kernels to address inf/nan handling for now 2025-06-11 22:12:10 +02:00
Martin Kroeker
1cefbea7ea Use generic SCAL kernels to address inf/nan handling for now 2025-06-11 22:10:46 +02:00
Sharif Inamdar
8279e68805 Optimize gemv_n_sve_v1x3 kernel
- Calculate predicate outside the loop
- Divide matrix in blocks of 3
2025-06-11 10:16:56 +00:00
Martin Kroeker
f18b7a46bf add dummy2 flag handling for inf/nan agnostic zeroing 2025-06-11 01:47:43 -07:00
Martin Kroeker
fe220a0d7d Merge pull request #5291 from guoyuanplct/develop
kernel/riscv64:fixed the performance problem in RISCV64_ZVL256 when OPENBLAS_K is small
2025-06-09 23:42:04 -07:00
Arne Juul
5442aff218 Accumulate results in output register explicitly 2025-06-09 19:03:22 +00:00
guoyuanplct
2ae019161a fixed the performance problem in RISCV64_ZVL256 when OPENBLAS_K is small 2025-06-05 21:53:03 +08:00
Srangrang
fb89820f20 Merge branch 'develop' of https://github.com/Srangrang/OpenBLAS into develop 2025-06-04 20:27:05 +08:00
Srangrang
4e1a381e5b fix: resolve the compilation failure without zfh instruction
- modify the macro conditions in Makefile.system
- Delete development test code

Related to issue#5279
2025-06-04 20:00:12 +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
guoyuanplct
d2003dc886 del lines 2025-05-29 18:38:22 +08:00
guoyuanplct
45fd2d9b07 Optimized the axpby function. 2025-05-29 17:50:44 +08:00
Martin Kroeker
fb8dc8ff5c Add dummy2 flag handling 2025-05-25 14:47:06 -07:00
Srangrang
2996c25c94 add shgemm for RISCV_ZVL128B 2025-05-24 23:55:49 +08:00
Martin Kroeker
cf06250d36 add handling of dummy2 flag 2025-05-24 06:06:24 -07:00
Martin Kroeker
28f8fdaf0f support flag for NaN/Inf handling and fix scaling of NaN/Inf values 2025-05-23 14:59:59 +02:00
Martin Kroeker
669c847ceb support extra flag for NaN handling 2025-05-23 05:52:48 -07:00
Martin Kroeker
0b0bb9951d Merge pull request #5265 from guoyuanplct/develop
kernel/riscv64:Added support for omatcopy on RISCV64_ZVL256B
2025-05-17 05:08:47 -07:00