Martin Kroeker [Sat, 9 Jun 2018 14:30:46 +0000 (16:30 +0200)]
Move some DYNAMIC_ARCH targets to new DYNAMIC_OLDER option
Martin Kroeker [Sat, 9 Jun 2018 14:29:17 +0000 (16:29 +0200)]
Move some DYNAMIC_ARCH targets to new DYNAMIC_OLDER option
Martin Kroeker [Sat, 9 Jun 2018 10:42:34 +0000 (12:42 +0200)]
Merge pull request #1605 from oon3m0oo/develop
Improve performance of GEMM for small matrices when SMP is defined.
Craig Donner [Thu, 7 Jun 2018 13:54:42 +0000 (14:54 +0100)]
Improve performance of GEMM for small matrices when SMP is defined.
Always checking num_cpu_avail() regardless of whether threading will actually
be used adds noticeable overhead for small matrices. Most other uses of
num_cpu_avail() do so only if threading will be used, so do the same here.
Martin Kroeker [Thu, 7 Jun 2018 12:09:58 +0000 (14:09 +0200)]
Merge pull request #1601 from martin-frbg/zaxpy
Use a single thread for small input size in zaxpy
Martin Kroeker [Thu, 7 Jun 2018 10:42:00 +0000 (12:42 +0200)]
Merge pull request #1600 from martin-frbg/noyield
Use usleep instead of sched_yield by default
Martin Kroeker [Thu, 7 Jun 2018 08:26:55 +0000 (10:26 +0200)]
Use a single thread for small input size
copies daxpy improvement from #27, see #1560
Martin Kroeker [Thu, 7 Jun 2018 08:18:26 +0000 (10:18 +0200)]
Use usleep instead of sched_yield by default
sched_yield only burns cpu cycles, fixes #900, see also #923, #1560
Martin Kroeker [Wed, 6 Jun 2018 20:07:09 +0000 (22:07 +0200)]
Merge pull request #1589 from fenrus75/skylakex
Initial support for SkylakeX / AVX512
Martin Kroeker [Wed, 6 Jun 2018 16:42:42 +0000 (18:42 +0200)]
Merge pull request #1599 from martin-frbg/c_check_avx512
Improved AVX512 test case for c_check
Martin Kroeker [Wed, 6 Jun 2018 14:51:30 +0000 (16:51 +0200)]
Better AVX512 test case
Martin Kroeker [Wed, 6 Jun 2018 14:49:00 +0000 (16:49 +0200)]
Improve AVX512 testcase
clang 3.4 managed to accept the original test code, only to fail on the actual Skylake asm later
Martin Kroeker [Wed, 6 Jun 2018 10:48:26 +0000 (12:48 +0200)]
Merge pull request #1598 from martin-frbg/issue1593-2
Restore _Atomic define before stdatomic.h for old gcc
Martin Kroeker [Wed, 6 Jun 2018 07:27:49 +0000 (09:27 +0200)]
Update common.h
Martin Kroeker [Wed, 6 Jun 2018 07:21:41 +0000 (09:21 +0200)]
Merge branch 'develop' into issue1593-2
Martin Kroeker [Wed, 6 Jun 2018 07:18:10 +0000 (09:18 +0200)]
Restore _Atomic define before stdatomic.h for old gcc
see #1593
Martin Kroeker [Wed, 6 Jun 2018 05:22:20 +0000 (07:22 +0200)]
Merge pull request #1597 from martin-frbg/cmake-avx512
Check build system support for AVX512 instructions
Martin Kroeker [Tue, 5 Jun 2018 21:29:33 +0000 (23:29 +0200)]
Check build system support for AVX512 instructions
Martin Kroeker [Tue, 5 Jun 2018 17:09:38 +0000 (19:09 +0200)]
Re-enable QUIET_MAKE
Martin Kroeker [Tue, 5 Jun 2018 16:23:01 +0000 (18:23 +0200)]
disable quiet_make for the moment
Martin Kroeker [Tue, 5 Jun 2018 14:02:51 +0000 (16:02 +0200)]
Merge pull request #1594 from martin-frbg/issue1593
Fix inverted condition in _Atomic declaration
Martin Kroeker [Tue, 5 Jun 2018 13:58:34 +0000 (15:58 +0200)]
export NO_AVX512 setting
Martin Kroeker [Tue, 5 Jun 2018 08:31:34 +0000 (10:31 +0200)]
Fix inverted condition in _Atomic declaration
fixes #1593
Martin Kroeker [Tue, 5 Jun 2018 08:26:49 +0000 (10:26 +0200)]
Extend loop range to find SkylakeX in force_coretype
Martin Kroeker [Tue, 5 Jun 2018 08:24:05 +0000 (10:24 +0200)]
Propagate NO_AVX512 via CCOMMON_OPT
Martin Kroeker [Mon, 4 Jun 2018 15:10:19 +0000 (17:10 +0200)]
Update cpuid_x86.c
Martin Kroeker [Mon, 4 Jun 2018 12:36:39 +0000 (14:36 +0200)]
Update dynamic.c
Martin Kroeker [Mon, 4 Jun 2018 06:23:40 +0000 (08:23 +0200)]
Fix misplaced endif
Martin Kroeker [Mon, 4 Jun 2018 06:18:38 +0000 (08:18 +0200)]
Merge pull request #1590 from martin-frbg/avx512_check
Disable AVX512 (Skylake X) support if the build system is too old
Arjan van de Ven [Sun, 3 Jun 2018 22:15:09 +0000 (22:15 +0000)]
Use AVX512 also for DGEMM
this required switching to the generic gemm_beta code (which is faster anyway on SKX)
for both DGEMM and SGEMM
Performance for the not-retuned version is in the 30% range
Martin Kroeker [Sun, 3 Jun 2018 22:13:19 +0000 (00:13 +0200)]
typo fix
Martin Kroeker [Sun, 3 Jun 2018 22:01:11 +0000 (00:01 +0200)]
Disable AVX512 (Skylake X) support if the build system is too old
Martin Kroeker [Sun, 3 Jun 2018 21:41:33 +0000 (23:41 +0200)]
Separate Skylake X from Skylake
Martin Kroeker [Sun, 3 Jun 2018 21:29:07 +0000 (23:29 +0200)]
Separate Skylake X from Skylake
Martin Kroeker [Sun, 3 Jun 2018 21:13:25 +0000 (23:13 +0200)]
Add SKYLAKEX to DYNAMIC_CORE list only if AVX512 is available
Martin Kroeker [Sun, 3 Jun 2018 11:48:27 +0000 (13:48 +0200)]
Propagate NO_AVX512 if needed
Martin Kroeker [Sun, 3 Jun 2018 11:22:59 +0000 (13:22 +0200)]
Typo fix (misplaced parenthesis)
Arjan van de Ven [Sun, 3 Jun 2018 07:24:29 +0000 (07:24 +0000)]
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.
Martin Kroeker [Sat, 2 Jun 2018 08:02:38 +0000 (10:02 +0200)]
Merge pull request #1587 from matthew-brett/fix-compile-error-early-glibc
Revert "take out unused variables"
Matthew Brett [Fri, 1 Jun 2018 22:20:00 +0000 (23:20 +0100)]
Revert "take out unused variables"
This reverts commit
e5752ff9b322c665a7393d6109c2da7ad6ee2523.
The variables i and n are used in the `#if !__GLIBC_PREREQ(2, 7)`
branch.
Closes gh-1586.
Martin Kroeker [Fri, 1 Jun 2018 16:59:33 +0000 (18:59 +0200)]
Merge pull request #1585 from martin-frbg/lapack-253
Fixes from Lapack-Reference PR 253
Martin Kroeker [Fri, 1 Jun 2018 13:14:45 +0000 (15:14 +0200)]
Fixes from netlib PR 253
Martin Kroeker [Fri, 1 Jun 2018 13:12:59 +0000 (15:12 +0200)]
Fixes from netlib PR 253
When minimal workspace is given in ?hesv_aa, ?sysv_aa, ?hesv_aa_2stage, ?sysv_aa_2stage, now no error is given
Quick return for ?laqr1
Martin Kroeker [Fri, 1 Jun 2018 13:08:14 +0000 (15:08 +0200)]
Fixes from netlib PR253
LAPACKE interfaces for Aasen's functions now call ?sytrf_aa and ?hetrf_aa instead of ?sytrf and ?hetrf
Martin Kroeker [Thu, 31 May 2018 19:56:04 +0000 (21:56 +0200)]
Merge pull request #1584 from martin-frbg/issue1503
Work around name clash with Windows10's winnt.h
Martin Kroeker [Thu, 31 May 2018 19:55:26 +0000 (21:55 +0200)]
Merge pull request #1583 from martin-frbg/issue1575
Handle INCX=0,INCY=0 case
Martin Kroeker [Thu, 31 May 2018 19:55:07 +0000 (21:55 +0200)]
Merge pull request #1582 from martin-frbg/develop-031
Update version number on the develop branch to 0.3.1.dev
Martin Kroeker [Thu, 31 May 2018 19:54:45 +0000 (21:54 +0200)]
Merge pull request #1581 from martin-frbg/issue1574-2
Fix paths to LIN and EIG tests
Martin Kroeker [Thu, 31 May 2018 15:23:08 +0000 (17:23 +0200)]
typo fix
Martin Kroeker [Thu, 31 May 2018 11:41:12 +0000 (13:41 +0200)]
Restore optimized swap kernel now that we have a proper fix
Martin Kroeker [Thu, 31 May 2018 11:26:00 +0000 (13:26 +0200)]
Work around name clash with Windows10's winnt.h
fixes #1503
Martin Kroeker [Thu, 31 May 2018 10:52:04 +0000 (12:52 +0200)]
Handle INCX=0,INCY=0 case
Fixes #1575 (sswap/dswap failing the swap utest on x86) as suggested by atsampson.
Martin Kroeker [Thu, 31 May 2018 10:44:36 +0000 (12:44 +0200)]
Update version to 0.3.1.dev
Martin Kroeker [Thu, 31 May 2018 10:43:45 +0000 (12:43 +0200)]
Update version to 0.3.1.dev
Martin Kroeker [Thu, 31 May 2018 09:19:33 +0000 (11:19 +0200)]
Fix paths to LIN and EIG tests
should fix 1574
Martin Kroeker [Tue, 29 May 2018 20:02:06 +0000 (22:02 +0200)]
Merge pull request #1579 from martin-frbg/issue1574
Adapt lapack-test and blas-test to changes in netlib directory layout
Martin Kroeker [Tue, 29 May 2018 12:27:46 +0000 (14:27 +0200)]
Adapt lapack-test and blas-test to changes in netlib directory layout
partial fix for #1574 - the problem with lapack_testing.py looks like an upstream bug
Zhang Xianyi [Thu, 24 May 2018 12:56:24 +0000 (20:56 +0800)]
Add -lm for Android.
Conflicts:
exports/Makefile
Martin Kroeker [Wed, 23 May 2018 20:55:37 +0000 (22:55 +0200)]
Merge pull request #1572 from martin-frbg/issue1571
Use the new zrot.c on POWER8 for crot as well
Martin Kroeker [Wed, 23 May 2018 20:54:39 +0000 (22:54 +0200)]
Use the new zrot.c on POWER8 for crot as well
fixes #1571 (the old zrot.S assembly does not handle incx=0 correctly)
Martin Kroeker [Thu, 17 May 2018 18:50:23 +0000 (20:50 +0200)]
Merge pull request #1567 from martin-frbg/mipstrmm
Revert " Switch mips32 target to USE_TRMM to fix complex TRMM"
Martin Kroeker [Thu, 17 May 2018 18:30:03 +0000 (20:30 +0200)]
Revert " Switch mips32 target to USE_TRMM to fix complex TRMM"
... as it was just a silly workaround for the issue seen in #1563, caused by #1419
Martin Kroeker [Thu, 17 May 2018 18:22:58 +0000 (20:22 +0200)]
Merge pull request #1565 from martin-frbg/mipstypo
Remove extraneous brace from previous commit of mips dsdot fix
Martin Kroeker [Thu, 17 May 2018 16:43:59 +0000 (18:43 +0200)]
Remove extraneous brace from previous commit
Martin Kroeker [Thu, 17 May 2018 12:04:13 +0000 (14:04 +0200)]
Merge pull request #1564 from martin-frbg/issue1563
Revert changes from PR#1419
Martin Kroeker [Thu, 17 May 2018 09:40:08 +0000 (11:40 +0200)]
Revert changes from PR#1419
at least one of these changes apparently is an oversimplification, leading to TRMM breakage on some platforms as observed in #1563
Martin Kroeker [Tue, 15 May 2018 15:46:09 +0000 (17:46 +0200)]
Merge pull request #1562 from martin-frbg/issue1561
Use correct data type for initializers of v2f64, v4f32
Martin Kroeker [Tue, 15 May 2018 12:42:12 +0000 (14:42 +0200)]
Use correct data type for initializers of v2f64, v4f32
Fixes #1561
Martin Kroeker [Mon, 14 May 2018 16:49:53 +0000 (18:49 +0200)]
Merge pull request #1559 from martin-frbg/buildconf
Add build-time configuration options to pkgconfig file
Martin Kroeker [Mon, 14 May 2018 15:38:12 +0000 (17:38 +0200)]
Merge pull request #1558 from martin-frbg/instpc
Overwrite any pre-existing openblas.pc rather than append to it
Martin Kroeker [Mon, 14 May 2018 15:37:55 +0000 (17:37 +0200)]
Merge pull request #1557 from martin-frbg/getconfig
Add threading and OpenMP information to output
Martin Kroeker [Sun, 13 May 2018 22:10:15 +0000 (00:10 +0200)]
Add build-time configuration options to pkgconfig file
Martin Kroeker [Sun, 13 May 2018 22:09:35 +0000 (00:09 +0200)]
Add build-time configuration options to pkgconfig file
Martin Kroeker [Sat, 12 May 2018 20:11:27 +0000 (22:11 +0200)]
Overwrite any pre-existing openblas.pc rather than append to it
Martin Kroeker [Sat, 12 May 2018 10:11:38 +0000 (12:11 +0200)]
Add threading and OpenMP information to output
For #1416 and #1529, more information about the options OpenBLAS was built with is needed. Additionally we may want to add this data to the openblas.pc file (but not all projects use pkgconfig, and as far as I am aware the cmake module for accessing it does not make such "private" declarations available)
Zhang Xianyi [Fri, 11 May 2018 09:02:47 +0000 (17:02 +0800)]
Merge pull request #1556 from WestAlgo/develop
move _Atomic define to common.h
zhiyong.dang [Fri, 11 May 2018 07:13:16 +0000 (00:13 -0700)]
move _Atomic define to common.h
Zhang Xianyi [Fri, 11 May 2018 04:25:24 +0000 (12:25 +0800)]
Merge pull request #1555 from WestAlgo/develop
Change _STDC_VERSION__ to __STDC_VERSION__
Zhiyong Dang [Fri, 11 May 2018 04:15:08 +0000 (12:15 +0800)]
Change _STDC_VERSION__ to __STDC_VERSION__
Change-Id: Id3fa4e8d9eedd4ef7230df69b611e7f397301a42
Zhang Xianyi [Fri, 11 May 2018 02:09:14 +0000 (10:09 +0800)]
Merge pull request #1536 from WestAlgo/develop
Fix race condition in blas_server_omp.c
Martin Kroeker [Thu, 10 May 2018 13:32:08 +0000 (15:32 +0200)]
Merge pull request #1554 from martin-frbg/lapack-249
LAPACKE fixes from lapack PR249
Martin Kroeker [Thu, 10 May 2018 11:15:42 +0000 (13:15 +0200)]
LAPACKE fixes from lapack PR249
Copied from Reference-LAPACK/lapack#249, this fixes out-of-bounds memory accesses
in the nancheck calls of the LAPACKE lacgv, lassq,larfg,larfb,larfx and mtr functions
Martin Kroeker [Wed, 9 May 2018 12:39:52 +0000 (14:39 +0200)]
Merge pull request #1553 from martin-frbg/ifort-openmpflag
Change -openmp to -fopenmp for ifort entry as well
Martin Kroeker [Wed, 9 May 2018 10:34:09 +0000 (12:34 +0200)]
Change -openmp to -fopenmp for ifort entry as well
Martin Kroeker [Wed, 9 May 2018 07:02:52 +0000 (09:02 +0200)]
Merge pull request #1551 from martin-frbg/f_check_fix
Fixes for ifort 2018
Martin Kroeker [Wed, 9 May 2018 07:02:38 +0000 (09:02 +0200)]
Merge pull request #1550 from martin-frbg/ifort-openmpflag
Update compiler flag for openmp use with ICC
Martin Kroeker [Tue, 8 May 2018 21:52:55 +0000 (23:52 +0200)]
Merge pull request #1549 from martin-frbg/fix_ompcheck
Drop C-style "L" suffx from OPENMP version number tests in the LAPACK source
Martin Kroeker [Tue, 8 May 2018 19:55:37 +0000 (21:55 +0200)]
Fixes for ifort 2018
1. the already deprecated -openmp option was removed in 2018, switch to -fopenmp
2. add leading blank in search for "zho_ge__" symbol to work around misleading tags in the 2018 assembly
Expected to fix #1548
Martin Kroeker [Tue, 8 May 2018 19:47:10 +0000 (21:47 +0200)]
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
Martin Kroeker [Tue, 8 May 2018 19:39:42 +0000 (21:39 +0200)]
Drop C-style "L" suffix from OPENMP version number in check
Martin Kroeker [Tue, 8 May 2018 19:38:25 +0000 (21:38 +0200)]
Drop C-style "L" suffix from OPENMP version number in check
Martin Kroeker [Tue, 8 May 2018 19:36:56 +0000 (21:36 +0200)]
Drop C-style "L" suffix from OPENMP version number in check
Martin Kroeker [Wed, 2 May 2018 20:47:45 +0000 (22:47 +0200)]
Merge pull request #1543 from martin-frbg/mips32
Fix MIPS32 build and add MIPS 1004K cpu (MT7621 SOC)
Martin Kroeker [Wed, 2 May 2018 18:37:06 +0000 (20:37 +0200)]
Restore compiler options for mips P5600 target
Martin Kroeker [Wed, 2 May 2018 18:27:56 +0000 (20:27 +0200)]
Add MIPS 1004K target
Martin Kroeker [Wed, 2 May 2018 18:25:32 +0000 (20:25 +0200)]
Switch mips32 target to USE_TRMM to fix complex TRMM
Martin Kroeker [Wed, 2 May 2018 18:20:44 +0000 (20:20 +0200)]
Add MIPS 1004K target (Mediatek MT7621 SOC)
Martin Kroeker [Wed, 2 May 2018 18:17:26 +0000 (20:17 +0200)]
Add mips32r2 api target
Martin Kroeker [Wed, 2 May 2018 18:12:25 +0000 (20:12 +0200)]
Make cpuid_mips compile again and add 1004K cpu
Martin Kroeker [Wed, 2 May 2018 16:11:50 +0000 (18:11 +0200)]
Merge pull request #1542 from martin-frbg/quickdiv64
Avoid out-of-bounds accesses in blas_quickdivide on big X86 systems