Commit Graph

32 Commits

Author SHA1 Message Date
Mark Ryan
ce79fe12fd disable fp16 flags on RISC-V unless BUILD_HFLOAT16=1
The compiler options that enable 16 bit floating point instructions
should not be enabled by default when building the RISCV64_ZVL128B
and RISCV64_ZVL256B targets.  The zfh and zvfh extensions are not part
of the 'V' extension and are not required by any of the RVA profiles.
There's no guarantee that kernels built with zfh and zvfh will work
correctly on fully compliant RVA23U64 devices.

To fix the issue we only build the RISCV64_ZVL128B and RISCV64_ZVL256B
kernels with the half float flags if BUILD_HFLOAT16=1.  We also update
the RISC-V dynamic detection code to disable the RISCV64_ZVL128B and
RISCV64_ZVL256B kernels at runtime if we've built with DYNAMIC_ARCH=1
and BUILD_HFLOAT16=1 and are running on a device that does not support
both Zfh and Zvfh.

Fixes: https://github.com/OpenMathLib/OpenBLAS/issues/5428
2025-08-28 09:41:07 +00: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
Sergei Lewis
a3b0ef6596 Restore riscv64 fixes from develop branch: dot product double precision accumulation, zscal NaN handling 2024-02-01 10:32:00 +00:00
Sergei Lewis
1093def0d1 Merge branch 'risc-v' into develop 2024-01-29 11:11:39 +00:00
Andrey Sokolov
73530b03fa remove RISCV64_ZVL256B additional extentions 2024-01-24 11:38:14 +03:00
Andrey Sokolov
9c49a81d54 Resolve conflicts 2024-01-23 19:08:53 +03:00
kseniyazaytseva
e1afb23811 Fix BLAS and LAPACK tests for C910V and RISCV64_ZVL256B targets
* Fixed bugs in dgemm, [a]min\max, asum kernels
* Added zero checks for BLAS kernels
* Added dsdot implementation for RVV 0.7.1
* Fixed bugs in _vector files for C910V and RISCV64_ZVL256B targets
* Added additional definitions for RISCV64_ZVL256B target
2024-01-23 19:01:31 +03:00
Dirreke
ec89466e14 Add CSKY support 2024-01-16 23:45:06 +08:00
Octavian Maghiar
e4586e81b8 [RISC-V] Add RISC-V Vector 128-bit target
Current RVV x280 target depends on vlen=512-bits for Level 3 operations.
Commit adds generic target that supports vlen=128-bits.
New target uses the same scalable kernels as x280 for Level 1&2 operations, and autogenerated kernels for Level 3 operations.
Functional correctness of Level 3 operations tested on vlen=128-bits using QEMU v8.1.1 for ctests and BLAS-Tester.
2023-12-04 11:02:18 +00:00
Heller Zheng
387e8970cd Fix merge problem; Update compiling COMMON_OPT per review comments. 2022-11-28 21:42:29 -08:00
Heller Zheng
bef47917bd Initial version for riscv sifive x280 2022-11-15 00:06:25 -08:00
Martin Kroeker
389e378063 Remove excessive quoting of arguments from PR3722 2022-09-07 09:01:03 +02:00
Jiaxun Yang
aaaecdbf19 Allow CC to contain space
Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
2022-08-11 15:01:30 +01:00
Xianyi Zhang
5e9a912591 Merge branch 'develop' into risc-v 2022-06-06 14:12:09 +08:00
Xianyi Zhang
968e1f51d8 Update RISC-V Intrinsic API. 2022-06-06 13:52:21 +08:00
Martin Kroeker
7093a34a34 Add fallback option USE_PERL for original PERL-based build scripts 2022-05-22 18:27:02 +02:00
Owen Rafferty
42c7a27e6b rewrite perl scripts in universal shell 2022-05-18 19:00:15 -05:00
Martin Kroeker
18427f3759 Have getarch downgrade the RISCV C910V target to GENERIC if compiler lacks vector support 2022-05-03 23:29:55 +02:00
Egbert Eich
454128824e Fix build targets in Makefile.prebuild
- config.h was used as target even when it wasn't generated.
  This only worked because the 'dummy' target always triggers
  a full rebuild.
  It is however better to specify the exact target that is to
  be rebuilt do avoid confusion.
- Explicitly mark 'dummy' as a 'phony' target.

Signed-off-by: Egbert Eich <eich@suse.com>
2022-04-05 11:36:03 +02:00
Egbert Eich
0b69fa6ddf Use CC and full command line instead of hard-coding gcc for AVX512 checking
Hard-coding gcc may not provide incorrect results when a different compiler
for the target build is used. To remain in sync with the main call to c_check,
pass the full command line.

Signed-off-by: Egbert Eich <eich@suse.com>
2022-03-28 08:22:07 +02:00
Martin Kroeker
9fbeb88fb8 Utilize compiler AVX512 capability info from c_check when building getarch 2022-03-23 15:19:55 +01:00
Martin Kroeker
2573ccfb2e make DYNAMIC_ARCH option available to getarch_2nd/param.h 2022-01-08 23:50:34 +01:00
damonyu
ef8e7d0279 Add the support for RISC-V Vector.
Change-Id: Iae7800a32f5af3903c330882cdf6f292d885f266
2020-10-15 16:09:02 +08:00
Martin Kroeker
b0b02a080d Add compiler options for MIPS32 24K/1004K 2020-04-19 06:50:51 +02:00
Isuru Fernando
4326dcb460 Pass CFLAGS from env to Makefile.prebuild and remove iOS hack 2020-02-16 15:13:01 -06:00
Martin Kroeker
d94d7baf7e Add mips32r2 api target 2018-05-02 20:17:26 +02:00
Shivraj Patil
e3d844b062 Added mips I6500 core
Signed-off-by: Shivraj Patil <shivraj.patil@imgtec.com>
2017-09-22 11:57:43 +05:30
Shivraj Patil
d1c6469283 MIPS n32 ABI support, MSA support detection and rename ARCH, ARCHFLAGS
Signed-off-by: Shivraj Patil <shivraj.patil@imgtec.com>
2016-08-08 11:58:01 +05:30
Lars Buitinck
212463dce9 get rid of the generated cblas_noconst.h file 2013-08-28 16:52:24 +02:00
Zhang Xianyi
c92ae012a6 Refs #279. Provide ONLY_CBLAS flag. If you only need CBLAS without
a fortran compiler, please try make ONLY_CBLAS=1.

This mode only compiler CBLAS without BLAS fortran interface and LAPACK.
2013-08-21 00:03:25 +08:00
Zhang Xianyi
36e0982966 Refs #187. Use perl to generate cblas_noconst.h instead of sed.
Thank Dan Povey's patch. https://github.com/xianyi/OpenBLAS/issues/187
2013-01-22 00:29:54 +08:00
Zaheer Chothia
4db6660de4 Refs #185. Add missing 'const' to declarations in <cblas.h>. Thanks to Dan Povey!
The 'const' modifications were done automatically using this scripts:
https://kaldi.svn.sourceforge.net/svnroot/kaldi/sandbox/dan/tools/for_openblas
2013-01-20 22:52:51 +01:00