Arjan van de Ven [Sat, 6 Oct 2018 21:18:12 +0000 (21:18 +0000)]
Add vector optimizations for ncopy as well for dgemm/skylakex
Arjan van de Ven [Sat, 6 Oct 2018 16:36:26 +0000 (16:36 +0000)]
add a skylakex optimized dgemm beta function
Arjan van de Ven [Sat, 6 Oct 2018 14:12:32 +0000 (14:12 +0000)]
dgemm/avx512 simplify and speed up the 4x4 kernel
Arjan van de Ven [Sat, 6 Oct 2018 14:00:37 +0000 (14:00 +0000)]
undo slow dgemm/skylake microoptimization
the compare is more costly than the work
Arjan van de Ven [Sat, 6 Oct 2018 13:47:20 +0000 (13:47 +0000)]
Add optimized *copy versions for skylakex
Add optimized n/t copy versions for skylakex; in the patch the
tcopy is also rewritten using intrinsics; the ncopy file
will be worked on in a future commit
Martin Kroeker [Fri, 5 Oct 2018 18:42:37 +0000 (20:42 +0200)]
Merge pull request #1789 from brada4/develop
update travis alpine chroot with avx512 intrinsics headers
Martin Kroeker [Fri, 5 Oct 2018 18:40:38 +0000 (20:40 +0200)]
Merge pull request #1788 from fenrus75/avx512-8x16
skylake dgemm: Add a 16x8 kernel
Arjan van de Ven [Fri, 5 Oct 2018 13:22:21 +0000 (13:22 +0000)]
Add a 24x8 kernel to the skylakex dgemm implementation
Minor gains for small matrixes, but at 512x512 and above the gain
gets more significant.
Arjan van de Ven [Fri, 5 Oct 2018 11:49:43 +0000 (11:49 +0000)]
skylake dgemm: Add a 16x8 kernel
The next step for the avx512 dgemm code is adding a 16x8 kernel.
In the 8x8 kernel, each FMA has a matching load (the broadcast);
in the 16x8 kernel we can reuse this load for 2 FMAs, which
in turn reduces pressure on the load ports of the CPU and gives
a nice performance boost (in the 25% range).
Andrew [Fri, 5 Oct 2018 12:47:55 +0000 (15:47 +0300)]
update travis alpine chroot with avx512 intrinsics headers
Andrew [Fri, 5 Oct 2018 12:41:52 +0000 (15:41 +0300)]
update travis alpine chroot with avx512 intrinsics headers
Martin Kroeker [Fri, 5 Oct 2018 06:25:38 +0000 (08:25 +0200)]
Merge pull request #1785 from brada4/develop
address #1782 2nd loop
Martin Kroeker [Fri, 5 Oct 2018 06:03:27 +0000 (08:03 +0200)]
Merge pull request #1784 from fenrus75/dgemm-avx512
Create a AVX512 enabled version of DGEMM
Martin Kroeker [Thu, 4 Oct 2018 17:14:59 +0000 (19:14 +0200)]
Function name needs to be CNAME, set from outside to allow suffixing for dynamic_arch
Martin Kroeker [Thu, 4 Oct 2018 16:41:47 +0000 (18:41 +0200)]
Merge pull request #1787 from jeromerobert/develop
Fix unknown type name __WAIT_STATUS on RHEL5
Jerome Robert [Thu, 4 Oct 2018 10:27:44 +0000 (12:27 +0200)]
Fix unknown type name __WAIT_STATUS on RHEL5
With glibc 2.5 one must have #define _XOPEN_SOURCE >= 500 to use wait.
But reading glibc code this is actually needed only if stdlib.h was
included before sys/wait.h. This was the case here through
openblas_utest.h. So changing include fix compilation on RHEL5 and
should ne hurt with more recent distro.
* Problem found when using with gcc 5.5 and 4.7.2 on RHEL5/CENTOS5
* Fix #1519
Martin Kroeker [Thu, 4 Oct 2018 07:07:09 +0000 (09:07 +0200)]
Merge pull request #1786 from martin-frbg/immintrin
Check for Immintrin.h presence in the AVX512 compatibility test as well
Martin Kroeker [Thu, 4 Oct 2018 05:36:49 +0000 (07:36 +0200)]
Check availability of immintrin.h in the AVX512 compatibility test
Martin Kroeker [Thu, 4 Oct 2018 05:35:30 +0000 (07:35 +0200)]
Check availability of immintrin.h in the AVX512 compatibility test
Andrew [Wed, 3 Oct 2018 19:20:50 +0000 (21:20 +0200)]
address #1782 2nd loop
Arjan van de Ven [Wed, 3 Oct 2018 14:45:25 +0000 (14:45 +0000)]
Create a AVX512 enabled version of DGEMM
This patch adds dgemm_kernel_4x8_skylakex.c which is
* dgemm_kernel_4x8_haswell.s converted to C + intrinsics
* 8x8 support added
* 8x8 kernel implemented using AVX512
Performance is a work in progress, but already shows a 10% - 20%
increase for a wide range of matrix sizes.
Martin Kroeker [Sat, 29 Sep 2018 07:27:47 +0000 (09:27 +0200)]
Merge pull request #1780 from martin-frbg/issue1774-2
Convert fldmia/fstmia instructions to UAL syntax for clang7
Martin Kroeker [Fri, 28 Sep 2018 21:05:15 +0000 (23:05 +0200)]
Convert fldmia/fstmia instructions to UAL syntax for clang7
second part of fix for #1774, containing files missed in #1775
Martin Kroeker [Wed, 26 Sep 2018 09:14:58 +0000 (11:14 +0200)]
Merge pull request #1778 from fengrl/develop
test_axpy work error on LOONGSON3A platform #1777
fengruilin [Wed, 26 Sep 2018 07:14:04 +0000 (15:14 +0800)]
test_axpy work error on LOONGSON3A platform #1777
Martin Kroeker [Tue, 25 Sep 2018 16:58:39 +0000 (18:58 +0200)]
Merge pull request #1775 from martin-frbg/issue1774
Convert fldmia/fstmia instructions to UAL syntax for clang7
Martin Kroeker [Tue, 25 Sep 2018 07:41:58 +0000 (09:41 +0200)]
Convert fldmia/fstmia instructions to UAL syntax for clang7
fixes #1774
Martin Kroeker [Sun, 23 Sep 2018 21:25:15 +0000 (23:25 +0200)]
Merge pull request #1773 from martin-frbg/issue1767
Include thread numbers in failure message from blas_thread_init
Martin Kroeker [Sat, 22 Sep 2018 12:00:15 +0000 (14:00 +0200)]
Include thread numbers in failure message from blas_thread_init
to aid in debugging cases like #1767
Martin Kroeker [Sat, 22 Sep 2018 11:11:39 +0000 (13:11 +0200)]
Merge pull request #1771 from staticfloat/sf/ldflags
Add `$(LDFLAGS)` to `$(CC)` and `$(FC)` invocations within `exports/Makefile`
Martin Kroeker [Sat, 22 Sep 2018 10:31:37 +0000 (12:31 +0200)]
Document the stub status of the QUAD_PRECiSION code (#1772)
* Document the stub status of the QUAD_PRECiSION code inherited from GotoBLAS2
in response to #1769
Elliot Saba [Fri, 21 Sep 2018 09:19:51 +0000 (09:19 +0000)]
Add `$(LDFLAGS)` to `$(CC)` and `$(FC)` invocations within `exports/Makefile`
Martin Kroeker [Wed, 19 Sep 2018 20:02:21 +0000 (22:02 +0200)]
Merge pull request #1765 from martin-frbg/issue1761
Do not use the new TLS-enabled memory allocator for non-threaded builds, and disable TLS by default in gmake as well
Martin Kroeker [Wed, 19 Sep 2018 16:16:38 +0000 (18:16 +0200)]
Merge pull request #1764 from yurivict/64-suffix
Allow to install the 'interface64' version concurrently with the regular version
Martin Kroeker [Wed, 19 Sep 2018 16:16:21 +0000 (18:16 +0200)]
Merge pull request #1762 from martin-frbg/issue1710-2
Add explicit casts to silence compiler warnings
Martin Kroeker [Wed, 19 Sep 2018 16:08:31 +0000 (18:08 +0200)]
Fix default settings - USE_TLS and USE_SIMPLE_THREADED_LEVEL3 should both be off
Martin Kroeker [Wed, 19 Sep 2018 16:03:43 +0000 (18:03 +0200)]
Catch inadvertent USE_TLS=0 declaration
for #1766
Martin Kroeker [Sun, 16 Sep 2018 10:43:36 +0000 (12:43 +0200)]
Do not use the new TLS code for non-threaded builds even if USE_TLS is set
Workaround for #1761 as that exposed a problem in the new code (which was intended to speed up multithreaded code only anyway).
Martin Kroeker [Sun, 16 Sep 2018 10:36:49 +0000 (12:36 +0200)]
Merge pull request #4 from xianyi/develop
Update branch
Yuri [Sun, 16 Sep 2018 02:59:17 +0000 (19:59 -0700)]
Allow to install the 'interfare64' version concurrently with the regular version
Martin Kroeker [Thu, 13 Sep 2018 12:24:29 +0000 (14:24 +0200)]
Add an explicit cast to silence a warning
for #1710
Martin Kroeker [Thu, 13 Sep 2018 12:23:31 +0000 (14:23 +0200)]
Add explicit cast to silence a warning
for #1710
Martin Kroeker [Tue, 11 Sep 2018 11:52:09 +0000 (13:52 +0200)]
Merge pull request #1759 from martin-frbg/lapack283
Remove an unused variable from several LAPACKE 2stage_work functions
Martin Kroeker [Tue, 11 Sep 2018 08:53:47 +0000 (10:53 +0200)]
remove unused variable ldb_t
Copied from Reference-LAPACK PR283
Martin Kroeker [Tue, 11 Sep 2018 08:52:30 +0000 (10:52 +0200)]
remove unused variable ldb_t
Copied from Reference-LAPACK PR283
Martin Kroeker [Tue, 11 Sep 2018 08:51:17 +0000 (10:51 +0200)]
remove unused variable ldb_t
Copied from Reference-LAPACK PR283
Martin Kroeker [Sun, 9 Sep 2018 20:55:15 +0000 (22:55 +0200)]
Merge pull request #1757 from brada4/develop
fix small typo in strmm_ LN
Andrew [Sun, 9 Sep 2018 14:52:25 +0000 (16:52 +0200)]
fix small typo
Martin Kroeker [Fri, 7 Sep 2018 09:02:18 +0000 (11:02 +0200)]
Merge pull request #1756 from martin-frbg/issue1754
Follow netlib renaming/aliasing CBLAS_ORDER to CBLAS_LAYOUT
Martin Kroeker [Fri, 7 Sep 2018 09:02:01 +0000 (11:02 +0200)]
Merge pull request #1749 from martin-frbg/issue1531
Fix ARMV8 cross-compilation for IOS
Martin Kroeker [Thu, 6 Sep 2018 19:41:54 +0000 (21:41 +0200)]
Adjust ARMV8 SGEMM unrolling when using the C fallback kernel_2x2 for IOS
Martin Kroeker [Thu, 6 Sep 2018 14:54:31 +0000 (16:54 +0200)]
just make CBLAS_LAYOUT an alias of the existing CBLAS_ORDER
to avoid having to change all instances of enum CBLAS_ORDER in this file
Martin Kroeker [Thu, 6 Sep 2018 14:39:52 +0000 (16:39 +0200)]
Follow netlib renaming/aliasing CBLAS_ORDER to CBLAS_LAYOUT
fixes #1754
Martin Kroeker [Tue, 4 Sep 2018 09:06:51 +0000 (11:06 +0200)]
Conditional compilation of assembly files that IOS does not like
Martin Kroeker [Tue, 4 Sep 2018 08:51:19 +0000 (10:51 +0200)]
Fix paths to C kernels for nrm2
Martin Kroeker [Thu, 30 Aug 2018 22:21:13 +0000 (00:21 +0200)]
Update with the changes from 0.3.3
Martin Kroeker [Thu, 30 Aug 2018 22:19:21 +0000 (00:19 +0200)]
Update version to 0.3.4.dev
Martin Kroeker [Thu, 30 Aug 2018 22:18:37 +0000 (00:18 +0200)]
Update version to 0.3.4.dev
Martin Kroeker [Thu, 30 Aug 2018 15:48:07 +0000 (17:48 +0200)]
Merge pull request #1746 from martin-frbg/issue1674
Assume cross-compilation if host and target os differ
Martin Kroeker [Thu, 30 Aug 2018 11:28:46 +0000 (13:28 +0200)]
Assume cross-compilation if host and target os differ
fixes 1674
Martin Kroeker [Wed, 29 Aug 2018 05:43:58 +0000 (07:43 +0200)]
Merge pull request #1745 from martin-frbg/issue1743
Set USE_TRMM for all ZARCH variants to fix TRMM faults with zarch-gen…
Martin Kroeker [Tue, 28 Aug 2018 20:58:58 +0000 (22:58 +0200)]
Merge pull request #1744 from martin-frbg/lapack272
Fix missing replacements of ILAENV by ILAENV_2STAGE (lapack PR 272)
Martin Kroeker [Tue, 28 Aug 2018 19:34:07 +0000 (21:34 +0200)]
Set USE_TRMM for all ZARCH variants to fix TRMM faults with zarch-generic
fixes #1743
Martin Kroeker [Tue, 28 Aug 2018 19:11:54 +0000 (21:11 +0200)]
Fix missing replacements of ILAENV by ILAENV_2STAGE (lapack PR 272)
This could cause spurious "parameter has an illegal value" errors in DSYEVR and related routines, see https://github.com/Reference-LAPACK/lapack/issues/262
Martin Kroeker [Tue, 28 Aug 2018 06:02:15 +0000 (08:02 +0200)]
Merge pull request #1742 from martin-frbg/interim033
Add combination of old and new thread memory code selectable by new option USE_TLS
Martin Kroeker [Sun, 26 Aug 2018 09:31:07 +0000 (11:31 +0200)]
typo fix
Martin Kroeker [Sun, 26 Aug 2018 09:18:02 +0000 (11:18 +0200)]
Rewrite glibc version check
Martin Kroeker [Sat, 25 Aug 2018 20:12:40 +0000 (22:12 +0200)]
Update memory.c
Martin Kroeker [Sat, 25 Aug 2018 17:45:19 +0000 (19:45 +0200)]
Merge branch 'develop' into interim033
Martin Kroeker [Sat, 25 Aug 2018 17:37:11 +0000 (19:37 +0200)]
Add USE_TLS option to choose between old and new implementation of memory.c
Martin Kroeker [Sat, 25 Aug 2018 17:36:12 +0000 (19:36 +0200)]
Add USE_TLS option to switch between old and new memory.c
Martin Kroeker [Sat, 25 Aug 2018 17:35:16 +0000 (19:35 +0200)]
Combo of default pre-0.3.1 memory.c and band-aided version of PR1739
Martin Kroeker [Thu, 16 Aug 2018 07:46:34 +0000 (09:46 +0200)]
Merge pull request #1738 from sharkcz/s390x
detect z14 arch on s390x
Dan Horák [Tue, 14 Aug 2018 10:30:38 +0000 (12:30 +0200)]
detect z14 arch on s390x
Martin Kroeker [Sun, 12 Aug 2018 22:01:37 +0000 (00:01 +0200)]
Merge pull request #1731 from fenrus75/readme
add short blurb about avx512 and needed compiler to README
Martin Kroeker [Sun, 12 Aug 2018 16:18:36 +0000 (18:18 +0200)]
Merge pull request #1733 from fenrus75/dsymv
Add an AVX512 enabled DSYMV (L) function
Martin Kroeker [Sun, 12 Aug 2018 16:17:42 +0000 (18:17 +0200)]
Merge pull request #1732 from fenrus75/dgemv
Add an AVX512 enabled DGEMV (n) function
Martin Kroeker [Sun, 12 Aug 2018 16:17:01 +0000 (18:17 +0200)]
Merge pull request #1730 from fenrus75/fix-sdot
Fix typo in sdot function
Martin Kroeker [Sun, 12 Aug 2018 16:16:45 +0000 (18:16 +0200)]
Merge pull request #1729 from fenrus75/dscal
Add an AVX512 enabled DSCAL function
Martin Kroeker [Sat, 11 Aug 2018 19:08:45 +0000 (21:08 +0200)]
Merge pull request #1723 from maamountki/develop
Disable zgemv scale in gemv benchmark by default
Arjan van de Ven [Sat, 11 Aug 2018 17:46:24 +0000 (17:46 +0000)]
Add an AVX512 enabled DSYMV (L) function
written in C intrinsics for best readability.
(the same C code works for Haswell as well)
For logistical reasons the code falls back to the existing
haswell AVX2 implementation if the GCC or LLVM compiler is not new enough
Arjan van de Ven [Sat, 11 Aug 2018 17:38:12 +0000 (17:38 +0000)]
Add an AVX512 enabled DGEMV (n) function
written in C intrinsics for best readability.
(the same C code works for Haswell as well)
For logistical reasons the code falls back to the existing
haswell AVX2 implementation if the GCC or LLVM compiler is not new enough
Arjan van de Ven [Sat, 11 Aug 2018 17:21:46 +0000 (17:21 +0000)]
add short blurb about avx512 and needed compiler to README
Arjan van de Ven [Sat, 11 Aug 2018 17:16:45 +0000 (17:16 +0000)]
Fix typo in sdot function
it looks like my previous pull request was short the final commit;
fix a typo in sdot
Arjan van de Ven [Sat, 11 Aug 2018 17:14:57 +0000 (17:14 +0000)]
Add an AVX512 enabled DSCAL function
written in C intrinsics for best readability.
(the same C code works for Haswell as well)
For logistical reasons the code falls back to the existing
haswell AVX2 implementation if the GCC or LLVM compiler is not new enough
Martin Kroeker [Sat, 11 Aug 2018 09:01:20 +0000 (11:01 +0200)]
Merge pull request #1725 from fenrus75/axpy
Add a AVX512 enabled SAXPY/DAXPY functions
Martin Kroeker [Sat, 11 Aug 2018 09:00:56 +0000 (11:00 +0200)]
Merge pull request #1724 from fenrus75/sdot
Add an AVX512 enabled SDOT function
Martin Kroeker [Fri, 10 Aug 2018 11:24:36 +0000 (13:24 +0200)]
Merge pull request #1728 from martin-frbg/changelog
Add changes from the 0.3.x releases
Martin Kroeker [Fri, 10 Aug 2018 11:23:47 +0000 (13:23 +0200)]
Add changes from the 0.3.x releases
fixes #1727
Arjan van de Ven [Fri, 10 Aug 2018 02:58:32 +0000 (02:58 +0000)]
Add a AVX512 enabled SAXPY/DAXPY functions
written in C intrinsics for best readability.
(the same C code works for Haswell as well)
For logistical reasons the code falls back to the existing
haswell AVX2 implementation if the GCC or LLVM compiler is not new enough
Arjan van de Ven [Fri, 10 Aug 2018 02:31:48 +0000 (02:31 +0000)]
Add an AVX512 enabled SDOT function
written in C intrinsics for best readability.
(the same C code works for Haswell as well)
For logistical reasons the code falls back to the existing
haswell AVX2 implementation if the GCC or LLVM compiler is not new enough
maamountki [Thu, 9 Aug 2018 22:54:18 +0000 (01:54 +0300)]
Disable scal to benchmark zgemv separately by default
Martin Kroeker [Thu, 9 Aug 2018 13:39:06 +0000 (15:39 +0200)]
Merge pull request #1721 from fenrus75/ddot2
Add an AVX512 enabled DDOT function
Arjan van de Ven [Wed, 8 Aug 2018 02:59:11 +0000 (02:59 +0000)]
Add an AVX512 enabled DDOT function
written in C intrinsics for best readability.
(the same C code works for Haswell as well)
For logistical reasons the code falls back to the existing
haswell AVX2 implementation if the GCC or LLVM compiler is not new enough
Martin Kroeker [Mon, 6 Aug 2018 20:05:47 +0000 (22:05 +0200)]
Merge pull request #1717 from martin-frbg/issue1708
Add workaround for avx512 compilations on Cygwin
Martin Kroeker [Mon, 6 Aug 2018 14:40:32 +0000 (16:40 +0200)]
Add workaround for avx512 compilations on Cygwin
fixes #1708
Martin Kroeker [Sun, 5 Aug 2018 20:48:44 +0000 (22:48 +0200)]
Merge pull request #1715 from stevengj/patch-1
fix blasabs for windows
Steven G. Johnson [Sun, 5 Aug 2018 12:18:51 +0000 (08:18 -0400)]
fix blasabs for windows
Bugfix in #1713 for Windows (LLP64), where `blasabs` needs to be `llabs` rather than `labs` for the 64-bit API.
Martin Kroeker [Sat, 4 Aug 2018 21:51:31 +0000 (23:51 +0200)]
Merge pull request #1713 from martin-frbg/issue1710
Introduce blasabs macro and use it to switch between abs and labs for INTERFACE64
Martin Kroeker [Sat, 4 Aug 2018 21:51:10 +0000 (23:51 +0200)]
Merge pull request #1709 from stevengj/patch-1
fabs -> fabsl