Commit Graph

7452 Commits

Author SHA1 Message Date
Chris Sidebottom 84a268b6ca Use SVE zgemm/cgemm on Arm(R) Neoverse(TM) V1 core
This patch removes the prefetches from cgemm/zgemm which improves the performance similar to sgemm/dgemm did in #3868, this means I'm happy to enable this on any applicable cores.

I also replicated the unrolling the copies from sgemm and dgemm.
2023-07-27 14:12:20 +01:00
Chris Sidebottom 730ca04b48 Fix ZHEMM copy for SVE
Whilst disambiguating whilelt, I inadvertantly used the wrong datatype
for offsets, which can be negative. This rectifies that.
2023-07-27 13:27:28 +01:00
Martin Kroeker 9ba9c8bdc0
Merge pull request #4165 from rgommers/docs-packaging-and-ilp64
Add documentation on redistributing OpenBLAS
2023-07-27 10:36:24 +02:00
Ralf Gommers ee72575475 Add documentation on redistributing OpenBLAS
This touches on the following:

- build configurations
- naming of symbols, shared/static libraries and other build outputs
  like pkg-config and CMake files
- (in more detail) guidance on ILP64 builds

It tries to explain that, while this is only guidance and there may be
reasons to deviate from that, for some build options there are best
practices, and for some others there are choices to make.

It also links to a number of well-maintained build recipes in order
to help packagers of other distros make choices.

Closes gh-3798

[skip ci]
2023-07-26 23:37:28 +02:00
Martin Kroeker 2a62d2df96
Enable use of AVX512 microkernels with NVIDIA HPC from version 22.3 2023-07-26 19:39:11 +02:00
steppi 76aa6bac4d Fix cirun url [skip actions] 2023-07-26 12:01:12 -04:00
Martin Kroeker 849c8806b8
Merge pull request #4161 from Mousius/non-sve-kernels
Use latest non-SVE kernels in ARMV8SVE
2023-07-26 15:49:40 +02:00
Martin Kroeker b1f6c4a1e4
Merge pull request #4160 from Mousius/sve-sniff
Add ARMV8SVE to AArch64 Dynamic Dispatch
2023-07-26 13:46:16 +02:00
Martin Kroeker 9ff84dc3f2
remove unused status variable 2023-07-26 10:02:44 +02:00
Martin Kroeker 94adf98bb8
remove unused status variable 2023-07-26 08:31:37 +02:00
Martin Kroeker 3326b924b3
remove status variable blas_num_threads_set; initialize openmp thread maximum on startup 2023-07-26 00:31:24 +02:00
Martin Kroeker ea669c8ae9
simplify openmp thread limit handling 2023-07-26 00:27:14 +02:00
Chris Sidebottom 24586bc4ff Disambiguate whilelt 2023-07-25 20:15:44 +01:00
Chris Sidebottom f971ef55f2 Add ARMV8SVE to AArch64 Dynamic Dispatch
In order to enable support for future cores which have similar tunings
(in this case I'm doing this for the Arm(R) Neoverse(TM) V2 core), this generically detects SVE support and enables it. This should better manage the size and complexity of dynamic dispatch rather than just copy pasting the same parameters.

To make `ARMV8SVE` more representive of the common 128-bit SVE case,
I've split it and similar parameters from A64FX which has the wider
512-bit SVE.
2023-07-25 18:35:15 +01:00
Chris Sidebottom aea2a4622b Use latest non-SVE kernels in ARMV8SVE
These are generally better and, in some cases, include threading which helps in the cores we're targeting here.
2023-07-25 14:12:26 +01:00
steppi 42cbcf58bf EMPTY: [skip ci] [skip cirrus] 2023-07-24 16:38:52 -04:00
steppi b92033e3be EMPTY: [skip ci] 2023-07-24 16:20:56 -04:00
steppi 7c8ea130a3 Set up cirun workflow for arm64 graviton 2023-07-24 16:18:57 -04:00
martin-frbg 7976deff80 Fix file permissions (issue 4095) 2023-07-23 20:37:07 +02:00
martin-frbg fec4867748 Fix file permissions (issue 4095) 2023-07-23 20:31:55 +02:00
Martin Kroeker 25037ae875
Fix actual arguments in some LAPACK procedure calls (Reference-LAPACK PR 885) (#4155)
* Fix actual arguments (Reference-LAPACK PR 885)
2023-07-22 23:14:25 +02:00
Martin Kroeker bd01dc354b
Merge pull request #4151 from martin-frbg/issue4101
Ensure that early calls to blas_set_num_threads will not overwrite unrelated memory
2023-07-20 13:21:07 +02:00
Martin Kroeker 3bdcf3259d
Merge branch 'xianyi:develop' into issue4101 2023-07-20 08:23:20 +02:00
Martin Kroeker 5cb4f5940d
Merge pull request #4152 from martin-frbg/shutup-4098
Override the C910V DSDOT with generic code to get rid of the qemu precision error in CI
2023-07-20 08:22:57 +02:00
Martin Kroeker 76ef1672f8
Override DSDOT with generic code to get rid of qemu precision error 2023-07-19 22:31:07 +02:00
Martin Kroeker 8a27a274a1
Merge pull request #4150 from martin-frbg/armsve
Fix runtime detection in ARMV8 DYNAMIC_ARCH to check SVE capability
2023-07-19 22:25:55 +02:00
Martin Kroeker b34f19a365
Ensure that a premature call to set_num_threads will not overwrite unrelated memory 2023-07-19 22:19:22 +02:00
Martin Kroeker 66904f8148
Ensure that a premature call will not overwrite unrelated memory 2023-07-19 22:14:34 +02:00
Martin Kroeker 5c58994eb2
Add fallback warning 2023-07-19 18:27:41 +02:00
Martin Kroeker ca7199f249
Treat newer Neoverse as N1 if SVE unavailable (may be disabled in container/cloud env) 2023-07-19 14:48:42 +02:00
Martin Kroeker 9e81a3a0a2
Merge pull request #4100 from martin-frbg/cirrusm1gccmake
Cirrus CI: Add Apple M1 build using gcc,gmake and OpenMP
2023-07-18 08:04:29 +02:00
Martin Kroeker ada9e442eb
Add Apple M1 build using gcc,gmake and OpenMP 2023-07-17 23:13:56 +02:00
Martin Kroeker 81228fc586
Merge pull request #4147 from martin-frbg/aldern
Support Alder Lake N (family 6 exmodel 11 model 14) as Haswell
2023-07-17 09:11:23 +02:00
Martin Kroeker 8da6aca2ec
Support Alder Lake N (fam 6 exmodel 11 model 14) as Haswell 2023-07-16 22:15:15 +02:00
Martin Kroeker b61e64da6f
Merge pull request #4142 from exyntech/armv8-as-arm64
Fix armv8 detection in system_check.cmake
2023-07-15 23:15:49 +02:00
Martin Kroeker f82a197143
Merge pull request #4137 from felixonmars/patch-1
Fix riscv64 detection in system_check.cmake
2023-07-15 19:41:06 +02:00
Martin Kroeker 0a637cc403
Fix workspace query corner cases to always return at least 1 (Reference-LAPACK PR 883) (#4146)
* Fix workspace query corner cases to always return at least 1
2023-07-15 16:37:42 +02:00
Martin Kroeker 4c43d1eeba
Fix C prototypes and LAPACKE headers for ?GEDMD/?GEDMDQ (#4134)
* Fix prototypes for ?GEDMD/?GEDMDQ and their LAPACKE interfaces
2023-07-15 07:47:19 +02:00
Martin Kroeker 49077e7bde
Merge pull request #4145 from martin-frbg/issue4144
Restore zero-initialization of variables in generic ztrsm_utcopy
2023-07-14 12:44:05 +02:00
Martin Kroeker 3d31191b0f
Work around Clang failing to disambiguate SVE intrinsics and add AppleClang crossbuild to MacOS/arm64 DYNAMIC_ARCH in AzureCI (#4140)
* Add AppleClang crossbuild to MacOS/arm64 DYNAMIC_ARCH

* add casts to disambiguate svwhilelt for clang
2023-07-14 11:06:48 +02:00
Martin Kroeker 04cdf5efb4
fix typo and missing declaration 2023-07-14 00:05:00 +02:00
Martin Kroeker 5e1103b8d7
Update rotg.c 2023-07-13 23:35:38 +02:00
Martin Kroeker cfa0a80664
Restore initialization of data variables 2023-07-13 23:23:12 +02:00
Martin Kroeker 9567305e4c
Restore initialization of data01,data02 2023-07-13 23:21:18 +02:00
Martin Kroeker 4cc232bb07
Merge branch 'xianyi:develop' into issue4130 2023-07-13 21:40:22 +02:00
Martin Kroeker 7c75c8b2fe
fix truncated edit 2023-07-13 21:40:12 +02:00
Martin Kroeker 0f2ce93904
typo fix 2023-07-13 10:56:59 +02:00
Martin Kroeker affeef0b9c
Fix gmake build not always picking the right ARM64 arch options for clang (#4136)
* Fix gcc version checks erroneously excluding clang

* Avoid some mtune names not supported by (Apple)Clang
2023-07-13 08:38:03 +02:00
Martin Kroeker e08743d977
Update to use safe scaling algorithm from Reference-LAPACK PR 527 2023-07-12 23:02:36 +02:00
Andy Mroczkowski 45b2cd2fb2 treat armv8 CMAKE_SYSTEM_PROCESSOR as arm64
The cmake scripts incorrectly treated armv8 as 32-bit arm, causing
compilation issues. This just adds 'armv8' to the arm64 condition check.
2023-07-12 09:37:45 -04:00