Commit Graph

432 Commits

Author SHA1 Message Date
Martin Kroeker 0e5d56ae4a
Merge pull request #4170 from felixonmars/patch-2
Fix 64-bit fortran options for riscv64
2023-08-12 09:21:05 +02:00
Markus Mützel 57256623f4 fc.cmake: Add support for LLVM Flang. 2023-08-05 13:16:06 +02:00
Felix Yan f5506b002c
Add 64-bit flag on INTERFACE64 only 2023-07-28 16:19:14 +03:00
Felix Yan 4ed6414c17
Fix 64-bit fortran options for riscv64
64-bit builds are currently broken without this flag.

Makefiles have done this already: 5720fa02c5/Makefile.system (L831)
2023-07-28 04:53:27 +03:00
Felix Yan 007cd834c1
Use defined variable for riscv64 in arch.cmake
It's defined in #4137
2023-07-28 04:50:16 +03: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
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
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
Martin Kroeker 35dedb68ce
Add C versions of C/ZRSCL 2023-07-11 17:07:30 +02:00
Felix Yan a721fccfdc
Fix riscv64 detection in system_check.cmake 2023-07-11 16:34:20 +03:00
Martin Kroeker 22ad23abb1
Merge pull request #4126 from martin-frbg/lapack839
Add C/ZRSCL for reciprocal scaling of a complex vector (Reference-LAPACK PR 839)
2023-07-10 01:49:33 +02:00
Martin Kroeker e3277e134c
Add CRSCL/ZRSCL (Reference-LAPACK PR 839) 2023-07-05 14:22:59 +02:00
Martin Kroeker 2f9f70584e
Fix target list syntax for ARM64 DYNAMIC_ARCH 2023-07-05 09:48:54 +02:00
Martin Kroeker ac698cedad
Add compiler options for ARM64 SVE targets in DYNAMIC_ARCH builds 2023-07-05 09:47:49 +02:00
Martin Kroeker fa6d06359a
correct list placement of zgedmd/zgedmdq 2023-06-21 17:17:31 +02:00
Martin Kroeker 2bfd7ff126
Add dummy C sources for ?GEDMD 2023-06-20 21:39:29 +02:00
Martin Kroeker defafd1353
Add functions for Dynamic Mode Decomposition (Reference-LAPACK PR 736) 2023-06-20 15:07:53 +02:00
Martin Kroeker 83d6ce1289
Add interfaces for Dynamic Mode Decomposition (Reference-LAPACK PR 736) 2023-06-20 14:55:26 +02:00
Martin Kroeker b6a28adeaf
Add ?TRSYL3 (Reference-LAPACK PR 651) 2023-06-20 11:33:03 +02:00
Martin Kroeker c3a2d407a0
Merge pull request #4048 from imzhuhl/spr_sbgemm_fix
Sapphire Rapids sbgemm fix
2023-06-17 20:47:09 +02:00
Martin Kroeker d2144b2981
Add NVHPC 2023-06-09 19:01:15 +02:00
Martin Kroeker f8c8b22740
Add NVHPC(pgf95) 2023-06-09 18:58:52 +02:00
Martin Kroeker 2993a73262
Add NVHPC(nvc) 2023-06-09 18:56:13 +02:00
Martin Kroeker f981e37dda
Treat f95 as gfortran 2023-06-05 20:34:31 +02:00
Honglin Zhu d96d386d13 Add CMake dynamic build for Sapphire Rapids 2023-05-20 14:13:49 +08:00
Martin Kroeker a789211a2e
Add interfaces for [cz]unhr_col and [sd]orhr_col (Reference-LAPACK PR 827) 2023-05-18 23:56:27 +02:00
Martin Kroeker 57bdc36c84
add conditionals for BUILD_LAPACK_DEPRECATED 2023-04-11 22:38:38 +02:00
Martin Kroeker 1659750861
Add ARMV5 to CMAKE prebuild.cmake for cross-compiles (#3959)
* Add ARMV5
2023-03-26 00:22:06 +01:00
Pieter Pas a79ae116e2 Add ARMV6 to cmake/prebuild.cmake,
based on cpuid_arm.c and param.h
2023-03-25 16:30:42 +01:00
Johannes Schönberger fbfe474583 f 2023-03-19 16:23:44 +01:00
Johannes Schönberger ec4700087e Wrap variables in cmake/prebuild in quotes to handle spaces in paths 2023-03-19 16:09:47 +01:00
Martin Kroeker de937b3194
Add clang option to avoid running out of registers in AVX512 assembly 2023-03-17 21:22:37 +01:00
Martin Kroeker 50c263716e
Correct DGEMM_UNROLL_M value for A53 in cross-compile 2023-03-10 11:53:24 +01:00
Martin Kroeker 8272dfc552
Handle unrecognized ASM compiler (from Arm Compiler 22.1) 2023-03-03 00:21:59 +01:00
xctan 6a0de3aa39
Add missing RISC-V architecture in arch.cmake
RISC-V support exists in Makefile.system but is missing in arch.cmake. This patch adds riscv64 platform support to cmake building system just like 039e27545f/Makefile.system (L830-L832) did.
2023-02-26 20:21:57 +08:00
Martin Kroeker fa5ff7d199
slarmm/dlarmm are needed by COMPLEX/COMPLEX16-only builds too 2023-02-22 00:25:12 +01:00
Martin Kroeker 19a696f8fe
fix nested conditionals 2023-02-02 19:59:49 +01:00
Martin Kroeker e964ebd0d0
Add compiler option for AVX512-capable Ryzen(4) 2023-02-02 19:04:05 +01:00
Martin Kroeker afff3f5510
Fix typo that could clear EXTRALIB settings 2023-02-02 10:43:44 +01:00
Martin Kroeker 5ddcc5ffa2
Update arch.cmake 2022-12-25 10:37:39 +01:00
Martin Kroeker 18cac5a34c
SVE-enabled ARM64 targets in DYNAMIC_ARCH require a recent compiler 2022-12-25 10:25:13 +01:00
Martin Kroeker 88cd91c490
Fix stray character 2022-11-19 23:15:20 +01:00
Martin Kroeker 5ff46f4092
Add ?GELST (Reference-LAPACK PR739) 2022-11-19 22:49:31 +01:00
Martin Kroeker e4a31c0d23
add ?LANGB interface (Reference-LAPACK PR725) 2022-11-17 18:15:04 +01:00
Martin Kroeker 258a83a642
change line endings from CRLF to LF 2022-11-16 21:57:42 +01:00
Martin Kroeker f16aa1ce7a
Merge pull request #3821 from martin-frbg/lapack651
Add a BLAS3-based triangular Sylvester equation solver (Reference-LAPACK PR 651)
2022-11-16 13:59:02 +01:00
Martin Kroeker b6d74b7fff
Add f2c-converted files for the BLAS3-based Sylvester solver 2022-11-15 16:26:44 +01:00
Martin Kroeker bb652f65a3
Typo fix 2022-11-14 16:35:13 +01:00
Martin Kroeker fb42a0cf8b
Add a BLAS3-based triangular Sylvester equation solver (Reference-LAPACK PR 651) 2022-11-14 14:06:50 +01:00
Martin Kroeker 90d7451df5
Add NaN check functions for trapezoidal matrices (Reference-LAPACK PR738+742) 2022-11-13 15:10:00 +01:00
Martin Kroeker be546ec1ad
Add gcc options for Neoverse cpus 2022-11-09 11:00:41 +01:00
Martin Kroeker 747ade5adf
fix INTERFACE64/USE64BITINT reporting 2022-10-18 17:28:07 +02:00
Martin Kroeker 32566bfb44
Disable the gfortran tree vectorizer for netlib LAPACK 2022-10-13 14:04:25 +02:00
Martin Kroeker a0a4f7c447
Add -mfma to -mavx2 for clang, and add AVX2 declaration for Zen in DYNAMIC_ARCH builds 2022-09-13 22:47:00 +02:00
Martin Kroeker ff58e9a7f1
Merge pull request #3609 from martin-frbg/lapack3101
Update LAPACK/LAPACKE to Reference-LAPACK 3.10.1
2022-08-06 14:31:56 +02:00
Martin Kroeker 2bee490287
Merge pull request #3714 from martin-frbg/crosscmake
Add more x86_64 target definitions for CMAKE cross-compiling
2022-08-04 23:58:21 +02:00
Martin Kroeker 85fd3c4279
Support compilation with the Cray C and Fortran compilers (#3712)
* Add support for the Cray Fortran compiler
2022-08-04 20:42:18 +02:00
Martin Kroeker 3784b3d45c
Add more x86_64 target definitions for cross-compiling 2022-08-04 19:18:32 +02:00
Nursultan Zarlyk a7ac252fd9 Add TCORE Generic in prebuild.cmake
During the cross-compilation on x64 host with MSVC for ARMv8, the
build fails as there is no define directives for Generic core.
2022-08-02 10:50:58 +02:00
Nursultan Zarlyk 1bb7993a97 Fix MSVC ARM64 build. Add generic kernel for ARM64 2022-06-02 16:53:54 +02:00
Martin Kroeker 5cb0d23027
Support USE_PERL fallback for gensymbol 2022-05-22 18:36:24 +02:00
Owen Rafferty 42c7a27e6b
rewrite perl scripts in universal shell 2022-05-18 19:00:15 -05:00
martin-frbg 329cdc31b3 Update LAPACK/LAPACKE to Reference-LAPACK 3.10.1 2022-04-21 20:39:29 +02:00
Martin Kroeker 18b19d135b
C_LAPACK: Fixes to make it compile with MSVC (#3605)
* Fix f2c-like support functions to compile with MSVC, and
re-enable C_LAPACK for MSVC in CMAKE

* Add MSVC&flang build to Azure CI in order to check C_LAPACK correctness
2022-04-17 17:49:38 +02:00
Martin Kroeker b7873605d4
Use f2c translations of LAPACK when no Fortran compiler is available (#3539)
* Add C equivalents of the Fortran routines from Reference-LAPACK as fallbacks, and C_LAPACK variable to trigger their use
2022-04-09 22:38:58 +02:00
Martin Kroeker ad4598143b
Merge pull request #3575 from mmuetzel/lapacke-win64
Fix LAPACKE with 64-bit indexing on Windows.
2022-03-29 20:04:04 +02:00
Martin Kroeker abbc65cff4
Cortex X1 is only Arm8.2 2022-03-28 17:40:27 +02:00
Martin Kroeker 57dd92a662
Add initial support for ARMV9 Cortex 510/710/X1/X2 2022-03-27 15:26:42 +02:00
Markus Mützel aeb561d234 Add support for Intel Fortran compilers.
Port changes from upstream Reference-LAPACK.
2022-03-25 13:37:15 +01:00
Markus Mützel 00f44bfff7 cmake: Check if Fortran compiler is usable before enabling it. 2022-01-21 13:27:17 +01:00
Martin Kroeker a9e297e476
Fix handling of ifdef/ifndef 2022-01-09 23:31:59 +01:00
Martin Kroeker b6b024232d
Merge pull request #3508 from snadampal/v1_n2
OpenBLAS: aarch64: Add neoverse-v1/n2 architecture specifics
2022-01-09 14:50:26 +01:00
Sunita Nadampalli 19c8f615dc OpenBLAS: aarch64: Add neoverse-v1/n2 architecture specifics 2022-01-07 00:28:17 +00:00
jgillis ea3db69faa
Fix cmake crosscompilation for core2 target
Missing HAVE_SSE* cmake variables cause cc.cmake to forget about `-msse*` flags
2021-12-29 22:50:20 +01:00
Rafael Cardoso Fernandes Sousa d38110a5ce Use CMake variables instead of as 2021-12-10 17:46:53 -06:00
Rafael Cardoso Fernandes Sousa 214fbcee15 Fix cmake for power 2021-12-09 08:28:17 -06:00
Martin Kroeker 454edd741c
Merge pull request #3425 from binebrank/arm_sve_dgemm
Add dgemm kernel for arm64 SVE
2021-11-26 16:14:55 +01:00
Martin Kroeker bcfbdc81b2
Merge pull request #3459 from rafaelcfsousa/fix_cmake
Fix issues when building OpenBLAS with cmake
2021-11-26 15:19:24 +01:00
Bine Brank 1af73ce38e Adapt CMake for SVE 2021-11-26 10:35:01 +01:00
Rafael Cardoso Fernandes Sousa d5c9353f1b Modify the order that cmake set the KERNEL variables (generic now is fallback) 2021-11-24 20:08:35 -06:00
Rafael Cardoso Fernandes Sousa fb891f33da Fix the cmake parser to identify more patterns 2021-11-24 14:07:28 -06:00
Martin Kroeker a3cd36acff
Add CMAKE support for cross-compiling to MIPS32 2021-11-20 17:34:28 +01:00
Markus Mützel de2ed66596 cmake: Set SUFFIX64 also for NOFORTRAN 2021-11-15 08:53:52 +01:00
Martin Kroeker 02ea3db8e7
Merge pull request #3404 from guowangy/spr-build
Initial build support for Sapphire Rapids
2021-10-17 23:05:11 +02:00
مهدي شينون (Mehdi Chinoune) efd7ac241d Fix MinGW/Clang 64 bits detection.
CMAKE_COMPILER_IS_GNUCC is only valid for GCC.
2021-10-16 08:02:27 +01:00
Wangyang Guo 3dc6052c7e initial support for Sapphire Rapids platform 2021-10-12 01:30:40 -07:00
Martin Kroeker e02df9fc55
Propagate BUILD_BFLOAT16 to CFLAGS 2021-09-14 16:12:27 +02:00
Martin Kroeker 1c0a8a714a
Add defaults for SBGEMV kernels 2021-09-14 16:10:58 +02:00
Martin Kroeker af19cda65a
Add "recursive" option for IBM xlf compiler (#3359)
* Add correct "recursive" option for xlf (from reference-lapack issue 606)
2021-09-04 18:26:59 +02:00
Martin Kroeker bec9d9f63d
Merge pull request #3335 from guowangy/small-matrix-latest
Add GEMM optimization for small matrix and single/double kernel for skylakex
2021-08-29 22:33:33 +02:00
cianciosa 4c766cd11f Fix a small syntax error. A ( was accidently deleted. 2021-08-11 12:08:34 -04:00
cianciosa c28560129f Check the total number of arguments passed insead of if the ARGV# is defined. This fixes a problem when compling openblas as a subproject of another code. 2021-08-11 12:00:07 -04:00
Wangyang Guo 76ea8db4da Small Matrix: enable by default for x86_64 arch
If no customized GEMM_SMALL_M_PERMIT kernel defined, it will just by pass to normal path.
2021-08-05 02:59:36 +00:00
Wangyang Guo fee5abd84b Small Matrix: support cmake build 2021-08-04 08:50:15 +00:00
gxw 0b8f7c8c10 Add cmake support for LOONGARCH64 2021-08-02 10:00:41 +08:00
Martin Kroeker 47ba85f314
Fix regex to match kernels suffixed with cpuname too 2021-07-22 17:24:15 +02:00
Martin Kroeker 30f23be0f9
Rework setting of -mfma to only apply it where necessary 2021-07-22 12:00:03 +02:00
User User-User 91e2b11d3c add to cmake listings too 2021-06-20 15:32:42 +02:00
Martin Kroeker 13fa9f737d
Modify defines for CR and RC to work around name collision on Windows 2021-06-16 12:17:25 +02:00