Commit Graph

241 Commits

Author SHA1 Message Date
Martin Kroeker a95a5e52b8
Fix PGI compiler detection for getarch 2019-08-16 09:00:11 +02:00
Martin Kroeker 321288597c
Merge pull request #2212 from martin-frbg/nofort-nolib
Avoid spurious dependency on the fortran runtime despite NOFORTRAN=1
2019-08-11 20:26:34 +02:00
Martin Kroeker be147a9f28
Avoid adding a spurious dependency on the fortran runtime despite NOFORTRAN=1
for cases where a fortran compiler is present but not wanted (e.g. not fully functional)
2019-08-11 16:24:39 +02:00
Martin Kroeker b89c781637
Fix surprising behaviour of NO_AFFINITY=0 2019-07-07 16:04:45 +02:00
Martin Kroeker abea977ded
Merge pull request #2162 from martin-frbg/pgi
Fixes for PGI compiler
2019-07-03 19:16:30 +02:00
Martin Kroeker 7684c4f8f8
PGI compiler does not like -march=native 2019-06-20 19:56:01 +02:00
Martin Kroeker 4ea794a522
Avoid unintentional activation of TLS code via USE_TLS=0
fixes #2149
2019-06-10 17:24:15 +02:00
Martin Kroeker 0ab4076dd8
Merge pull request #2156 from martin-frbg/issue2154
Add gfortran workaround for C->FORTRAN ABI violation
2019-06-06 13:43:12 +02:00
Martin Kroeker 900d5a3205
Add gfortran workaround for ABI violations in LAPACKE
for #2154 (see gcc bug 90329)
2019-06-06 10:18:40 +02:00
Michael Lass 7a9a4dbc4f Fix detection of AVX512 capable compilers in getarch
21eda8b5 introduced a check in getarch.c to test if the compiler is capable of
AVX512. This check currently fails, since the used __AVX2__ macro is only
defined if getarch itself was compiled with AVX2/AVX512 support. Make sure this
is the case by building getarch with -march=native on x86_64. It is only
supposed to run on the build host anyway.
2019-06-05 17:30:56 +02:00
Martin Kroeker f66c11fc22
Remove unrelated change 2019-05-15 23:38:12 +02:00
Martin Kroeker d2cb610272
Add option USE_LOCKING for single-threaded build with locking support
for calling from concurrent threads
2019-05-15 23:18:43 +02:00
Rashmica Gupta bcdf1d4917 Add in runtime CPU detection for POWER. 2019-04-09 14:20:16 +10:00
Martin Kroeker c4868d11c0
Make sure that AVX512 is disabled in 32bit builds
for #2033
2019-03-01 09:23:03 +01:00
Martin Kroeker d66214c946
Make x86_32 imply NO_AVX2, NO_AVX512 in addition to NO_AVX
fixes #2033
2019-02-28 09:58:25 +01:00
Martin Kroeker 36b844af88
Change ARMV8 target to ARMV7 when BINARY32 is set
fixes #1961
2019-01-26 17:47:22 +01:00
TiborGY d11554c88f Validate user supplied TARGET (#1941)
the build will now abort with an error message when an undefined build TARGET is named

Fixes #1938
2018-12-31 23:19:44 +01:00
Martin Kroeker 5bd21ab6e1
Make sure that -fPIC is present when needed
override user-provided FFLAGS if necessary
2018-12-23 23:46:48 +01:00
Martin Kroeker c5f8aeff2d
Merge branch 'develop' into fbsd12 2018-12-03 12:50:14 +01:00
Martin Kroeker ea6d1b96bd
Update Makefile.system 2018-12-03 08:59:10 +01:00
Martin Kroeker 3c9e3faedb
fixup BSD naming of powerpc arch 2018-12-02 23:24:53 +01:00
Andrew 44c81fd135 oops 2018-12-02 20:27:53 +01:00
Andrew 26b3710485 Add architecture mappings for FreeBSD12 2018-12-02 12:07:41 +01:00
pkubaj f85ce54d4a
Use correct Makefile on powerpc64
FreeBSD uses powerpc64 name for POWER architecture. Use correct Makefile for this platform.
2018-11-30 16:05:49 +00:00
Martin Kroeker a29ec458c2
propagate verison number for openblas_config_version 2018-11-29 00:10:49 +01:00
Martin Kroeker b0c15bacc1
Merge pull request #1863 from martin-frbg/aix_install3
Set LIBSONAME suffix to .a for AIX
2018-11-09 13:12:06 +01:00
Martin Kroeker cfb0f5b0f8
Set LIBSONAME suffix to .a for AIX
another fix for #1803
2018-11-08 22:39:10 +01:00
Martin Kroeker 5f8f0583d4
Merge branch 'develop' into fc-1847 2018-11-07 08:47:52 +01:00
Andrew 7d3502b500 Add -frecursive gfortran option by default 2018-11-06 08:20:55 +00:00
Ashwin Sekhar T K d5aeff636f ARM64: Enable DYNAMIC_ARCH
Enable DYNAMIC_ARCH feature on ARM64. This patch uses the cpuid
feature in linux kernel to detect the core type at runtime
(https://www.kernel.org/doc/Documentation/arm64/cpu-feature-registers.txt).

If this feature is missing in kernel, then the user should use the
OPENBLAS_CORETYPE env variable to select the desired core type.
2018-10-22 01:49:35 -07:00
Martin Kroeker c0d7cd3dac
Merge pull request #1799 from martin-frbg/issue1796
Handle conflicting usage of ARCH in at least some BSD environments
2018-10-09 08:20:52 +02:00
Martin Kroeker d3d58f8ee5
Catch conflicting usage of ARCH in at least some BSD environments
fixes #1796
2018-10-08 22:29:35 +02:00
Martin Kroeker 2caa2210bb
Add USE_TLS option to choose between old and new implementation of memory.c 2018-08-25 19:37:11 +02:00
Martin Kroeker 0b2b83d9ed
Add support for a user-defined list of dynamic targets 2018-06-23 19:41:32 +02:00
Martin Kroeker 6c2d90ba77
Move some DYNAMIC_ARCH targets to new DYNAMIC_OLDER option 2018-06-09 16:29:17 +02:00
Martin Kroeker f6021c798d
Re-enable QUIET_MAKE 2018-06-05 19:09:38 +02:00
Martin Kroeker e8002536ec
disable quiet_make for the moment 2018-06-05 18:23:01 +02:00
Martin Kroeker 15a78d6b66
export NO_AVX512 setting 2018-06-05 15:58:34 +02:00
Martin Kroeker b7feded85a
Propagate NO_AVX512 via CCOMMON_OPT 2018-06-05 10:24:05 +02:00
Martin Kroeker a7d0f49cec
Add SKYLAKEX to DYNAMIC_CORE list only if AVX512 is available 2018-06-03 23:13:25 +02:00
Martin Kroeker f1fb9a4745
Propagate NO_AVX512 if needed 2018-06-03 13:48:27 +02:00
Arjan van de Ven 99c7bba8e4 Initial support for SkylakeX / AVX512
This patch adds the basic infrastructure for adding the SkylakeX (Intel Skylake server)
target. The SkylakeX target will use the AVX512 (AVX512VL level) instruction set,
which brings 2 basic things:
1) 512 bit wide SIMD (2x width of AVX2)
2) 32 SIMD registers (2x the number on AVX2)

This initial patch only contains a trivial transofrmation of the Haswell SGEMM kernel
to AVX512VL; more will follow later but this patch aims to get the infrastructure
in place for this "later".

Full performance tuning has not been done yet; with more registers and wider SIMD
it's in theory possible to retune the kernels but even without that there's an
interesting enough performance increase (30-40% range) with just this change.
2018-06-03 07:58:52 +00:00
Zhang Xianyi 50acc40613
Merge pull request #1536 from WestAlgo/develop
Fix race condition in blas_server_omp.c
2018-05-11 10:09:14 +08:00
Martin Kroeker 12398e53ce
Merge pull request #1553 from martin-frbg/ifort-openmpflag
Change -openmp to -fopenmp for ifort entry as well
2018-05-09 14:39:52 +02:00
Martin Kroeker 193f835662
Change -openmp to -fopenmp for ifort entry as well 2018-05-09 12:34:09 +02:00
Martin Kroeker e3a069f108
Merge pull request #1550 from martin-frbg/ifort-openmpflag
Update compiler flag for openmp use with ICC
2018-05-09 09:02:38 +02:00
Martin Kroeker 65b8a5c5d8
Update compiler flag for openmp use with ICC
The deprecated -openmp option was finally removed in favor of -qopenmp or -fopenmp, picking the latter to stay compatible with Intel compiler versions before 2015 (when -q options were introduced). Fixes #1546
2018-05-08 21:47:10 +02:00
Martin Kroeker 71051259e0
Restore compiler options for mips P5600 target 2018-05-02 20:37:06 +02:00
Martin Kroeker d94d7baf7e
Add mips32r2 api target 2018-05-02 20:17:26 +02:00
Zhiyong Dang 1b83341d19 Fix race condition in blas_server_omp.c
Change-Id: Ic896276cd073d6b41930c7c5a29d66348cd1725d
2018-04-27 17:00:42 +08:00
Alex Arslan 8f811a9312
Reinstate macOS logic 2018-04-04 11:41:45 -07:00
Alex Arslan 36a17536ca
Compile with cc rather than gcc whenever possible 2018-04-04 11:26:54 -07:00
Alex Arslan a41d241a0e
Add support for DragonFly BSD 2018-04-03 16:39:29 -07:00
Alex Arslan 8da6b6ae52
Allow building on OpenBSD
With this change, OpenBLAS builds and all tests pass on OpenBSD 6.2
using Clang. Tested on x86-64 only, with and without DYNAMIC_ARCH=1.
2018-04-02 10:48:22 -07:00
Erik M. Bray ce2028b425 Rewrite this test to work with ctest and re-enable it on the appropriate platforms (including Cygwin, which has fork()) 2018-02-06 12:23:27 +01:00
Martin Kroeker 4a4f6658de
When forcing USE_THREAD=0, override USE_OPENMP as well
This avoids an error exit a few lines down as USE_THREAD=0 conflicts with USE_OPENMP=1
2018-01-23 21:33:21 +01: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
Martin Kroeker 601c71fe54 Merge pull request #1304 from martin-frbg/aix-build-fixes
(Plain make) build system fixes for AIX
2017-09-18 10:16:40 +02:00
Martin Kroeker 3810a6fd99 (Plain make) build system fixes for AIX
- retry fortran compiler test with aix-specific option if generic -m32/-m64 fails
- pass any custom ARFLAGS to lapack
- no addition of -m32/-m64 to the CFLAGS and FFLAGS on AIX
2017-09-18 01:29:21 +02:00
Erik M. Bray dddedbab5d More canonical installation on Cygwin:
* The DLL is named cygopenblas.dll, not libopenblas.dll
* The import lib (still called libopenblas.dll.a) is installed
2017-09-07 14:18:56 +02:00
Christoph Conrads 9cc6599056 ARM: do not add linker flag `-lm` unconditionally
On ARM the required math library depends on whether the soft floating
point ABI is used or not but this is already handled in
`Makefile.system`, lines 499-505.
2017-08-10 11:58:25 -04:00
Martin Kroeker 31e086d6a6 Disable ReLAPACK by default (#1238)
* Disable ReLAPACK by default; mention it in final build message if included

* Add files via upload

* Add files via upload

* Add files via upload
2017-07-13 22:01:47 +02:00
Zhang Xianyi 4239dd65ce Merge branch 'develop' into develop_arm_softfp 2017-07-10 20:02:36 +08:00
Zhang Xianyi fa6a920caa Link -lm or -lm_hard for Android ARMv7. 2017-07-05 17:05:06 +08:00
Ashwin Sekhar T K 37efb5bc1d arm: Remove unnecessary files/code
Since softfp code has been added to all required vfp kernels,
the code for auto detection of abi is no longer required.

The option to force softfp ABI on make command line by giving
ARM_SOFTFP_ABI=1 is retained. But there is no need to give this option
anymore.

Also the newly added C versions of 4x4/4x2 gemm/trmm kernels are removed.
These are longer required. Moreover these kernels has bugs.
2017-07-02 03:06:36 +05:30
Ashwin Sekhar T K 0d5c8e5386 arm: Determine the abi from compiler if not specified on command line
If ARM abi is not explicitly mentioned on the command line, then set the
arm abi to softfp or hard according to the compiler environment.
This assumes that compiler sets the defines __ARM_PCS and __ARM_PCS_VFP
accordingly.
2017-06-30 18:20:59 +05:30
Zhang Xianyi 482015f8d6 Merge branch 'arm_soft_fp_abi' into develop 2017-06-23 11:35:25 +08:00
Paul Osmialowski 42bbe74791 build: LLVM: Add Flang compiler support and enable OpenMP for Clang
Signed-off-by: Paul Osmialowski <pawel.osmialowski@arm.com>
2017-05-25 17:03:20 +01:00
Elliot Saba 6e972994b2 Force `DYNAMIC_ARCH` to empty when `DYNAMIC_CORE` is not set 2017-05-04 12:55:31 -07:00
Denis Steckelmacher c9ff735da6 Add ZEN support (tested for auto-detected static backend) 2017-03-19 15:32:50 +01:00
Zhang Xianyi 90e02ccf68 Support ARM softfp ABI for sgemm on ARMV7.
make ARM_SOFTFP_ABI=1
2017-03-06 22:16:13 +08:00
Zhang Xianyi 503dcbfde6 Merge branch 'develop' into arm_soft_fp_abi 2017-03-06 13:53:56 +08:00
Martin Kroeker d0035b857d Apply COMMON_OPT to default FFLAGS to avoid building non-optimized LAPACK by mistake 2017-01-08 21:17:22 +01:00
François Bissey 32ca9a9f68 Do not override MACOSX_DEPLOYMENT_TARGET if it is already defined. 2016-12-15 11:42:17 +13:00
Shivraj Patil 9687437928 MIPS n32 ABI and build time mips simd support check
Signed-off-by: Shivraj Patil <shivraj.patil@imgtec.com>
2016-08-10 17:44:22 +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
Shivraj Patil 22b9c2747d P6600/I6400 Build fix. Reverted the changes which was done to support for MIPS n32 ABI
Signed-off-by: Shivraj Patil <shivraj.patil@imgtec.com>
2016-07-22 18:45:06 +05:30
Shivraj Patil beb1d076a4 Added MSA optimization for GEMV_N, GEMV_T, ASUM, DOT functions
Signed-off-by: Shivraj Patil <shivraj.patil@imgtec.com>
2016-07-15 18:38:25 +05:30
Vicente Olivert Riera 7f28cd1f88 Complete support for MIPS n32 ABI
Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
2016-07-14 17:51:04 +01:00
Vicente Olivert Riera e12cff87b8 Makefile.system: P5600 and I6400 cores need -mmsa
Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
2016-05-19 10:56:53 +01:00
Shivraj Patil 2c3dfe2bf3 MIPS P5600(32 bit) and I6400(64 bit) cores support added.
Seperated mips and mips64 files.
Configurations support for mips 32 bit.

Signed-off-by: Shivraj Patil <shivraj.patil@imgtec.com>
2016-04-22 14:03:18 +05:30
buffer51 7f7d04dcd2 Fixed linking error when compiling ARMv7 for Android (disabled -lpthread and added -Wl,--no-warn-mismatch). 2016-02-04 17:05:31 -05:00
Tony Kelman 5fef0d1b75 re enable Fortran optimization flag on windows
partial revert of 299cdcdc29
from #696, was not explained why that was needed
2016-01-30 01:13:51 -08:00
Martin Kroeker 44062517eb Update Makefile.system
Define AWK as "nawk" for SunOS (actually Illumos) only - fixes #763
2016-01-26 20:35:25 +01:00
Zhang Xianyi aaa8551c57 Merge pull request #749 from lotheac/illumos_fixes
illumos fixes
2016-01-26 08:42:20 -06:00
Lauri Tirkkonen 31aff441ce use $(AWK) in Makefile.install and switch it to nawk 2016-01-22 18:55:55 +02:00
Jerome Robert 2c7143459f Let make MAX_STACK_ALLOC=0 do what expected
It's no longer required to modify Makefile.rule to disable
stack allocation. It's now possible to run:

make MAX_STACK_ALLOC=0
2015-12-31 14:43:09 +01:00
Jerome Robert ba024fcfc0 Allow to force the number of parallel make job
This is particularly useful when using distcc
2015-12-28 19:45:29 +01:00
Werner Saar 299cdcdc29 lapack fixes for Windos 2015-11-21 14:33:27 +01:00
Werner Saar a8516c5b47 fixes for cross compile 2015-11-21 10:48:37 +01:00
Zhang Xianyi ccf41ebf78 Merge branch 'develop' into arm_soft_fp_abi 2015-10-28 12:12:31 +00:00
Steven G. Johnson 88bef3bffc default to lib$(SYMBOLPREFIX)openblas$(SYMBOLSUFFIX), as discussed in #646: if you rename the symbols, it is best to rename the library 2015-10-01 15:07:04 -04:00
Zhang Xianyi 857899526f ARM soft fp abi branch. 2015-09-26 14:10:18 +00:00
Zhang Xianyi 1cf2b10224 Use pure C generic target on x86 and x86_64.
make TARGET=GENERIC

?gemm3m is unimplemented on generic target.
2015-08-03 23:55:56 -05:00
Thomas Anderson 4f5691e5c0 Fix test execution when USE_OPENMP=0
The standard way to disable OpenMP support is to set USE_OPENMP=0,
as indicated by other checks to see if USE_OPENMP equals 1. The
problem is obviously then that `ifdef USE_OPENMP` is very much not
what we want to test for. This causes tests to fail when no OpenMP
library is installed.
2015-06-12 23:52:07 -07:00
Zhang Xianyi 29293160a4 Fix #593. Change MACOSX_DEPLOYMENT_TARGET to 10.6. 2015-06-08 10:53:50 -05:00
Zhang Xianyi e127fb8fd8 1) Refs #575. Remove g77 from compiler list.
2) If OpenBLAS cannot find Fortran compiler, it will only build BLAS
(without LAPACK).
2015-05-19 00:01:04 -05:00
Zhang Xianyi 51ff17d46e Add AMD Excavator target. 2015-05-13 16:16:30 -05:00
Zhang Xianyi 6743beb748 Refs #565. Fix the bug of generate FEXTRALIB. 2015-05-07 13:06:53 +08:00
Andreas Noack cda29f183b Add vecLib benchmarks 2015-05-06 21:52:34 -04:00