Daniel Cohen Gindi [Mon, 21 Jan 2019 06:35:23 +0000 (08:35 +0200)]
Better support for MSVC/Windows in CMake
Martin Kroeker [Sun, 20 Jan 2019 19:30:11 +0000 (20:30 +0100)]
Merge pull request #1973 from martin-frbg/issue1464
Increase Zen SWITCH_RATIO to 16
Martin Kroeker [Sun, 20 Jan 2019 11:18:53 +0000 (12:18 +0100)]
Fix compilation with NO_AVX=1 set
fixes #1974
Martin Kroeker [Sat, 19 Jan 2019 22:01:31 +0000 (23:01 +0100)]
Increase Zen SWITCH_RATIO to 16
following GEMM benchmarks on Ryzen2700X. For #1464
Martin Kroeker [Fri, 18 Jan 2019 07:11:39 +0000 (08:11 +0100)]
Fix declaration of input arguments in the Sandybridge GER microkernels (#1967)
* Tag arguments 0 and 1 as both input and output
Martin Kroeker [Fri, 18 Jan 2019 07:11:07 +0000 (08:11 +0100)]
Fix declaration of input arguments in the x86_64 SCAL microkernels (#1966)
* Tag arguments 0 and 1 as both input and output (see #1964)
Martin Kroeker [Thu, 17 Jan 2019 22:20:32 +0000 (23:20 +0100)]
Fix declaration of input arguments in the x86_64 microkernels for DOT and AXPY (#1965)
* Tag operands 0 and 1 as both input and output
For #1964 (basically a continuation of coding problems first seen in #1292)
Martin Kroeker [Thu, 17 Jan 2019 15:42:11 +0000 (16:42 +0100)]
Merge pull request #1970 from quickwritereader/develop
crot fix
Martin Kroeker [Thu, 17 Jan 2019 15:19:03 +0000 (16:19 +0100)]
Bump xcode version to 10.1 to make sure it handles AVX512
Ubuntu [Thu, 17 Jan 2019 14:45:31 +0000 (14:45 +0000)]
crot fix
Martin Kroeker [Wed, 16 Jan 2019 17:41:03 +0000 (18:41 +0100)]
Merge pull request #1963 from quickwritereader/develop
Blas1 single missing kernels implemented with vector builtins
Abdelrauf [Wed, 16 Jan 2019 15:25:13 +0000 (19:25 +0400)]
Merge branch 'develop' into develop
Ubuntu [Wed, 16 Jan 2019 15:16:21 +0000 (15:16 +0000)]
Added missing Blas1 single fp {saxpy, caxpy, cdot, crot(refactored version of srot),isamax ,isamin, icamax, icamin},
Fixed idamin,icamin choosing the first occurance index of equal minimals
Martin Kroeker [Wed, 16 Jan 2019 09:27:14 +0000 (10:27 +0100)]
Merge pull request #1960 from cnjsdfcy/Hygon
Add support for Hygon Dhyana
caiyu [Wed, 16 Jan 2019 06:25:19 +0000 (14:25 +0800)]
Add support for Hygon Dhyana
Martin Kroeker [Mon, 14 Jan 2019 21:41:31 +0000 (22:41 +0100)]
Fix missing braces in support_av() call
Martin Kroeker [Mon, 14 Jan 2019 21:38:32 +0000 (22:38 +0100)]
Fix missing braces in support_avx()
Martin Kroeker [Thu, 10 Jan 2019 11:04:08 +0000 (12:04 +0100)]
Merge pull request #1957 from martin-frbg/issue1954
Move TLS key deletion to openblas_quit
Martin Kroeker [Wed, 9 Jan 2019 23:32:50 +0000 (00:32 +0100)]
Move TLS key deletion to openblas_quit
fixes #1954 (as suggested by thrasibule in that issue)
Martin Kroeker [Tue, 8 Jan 2019 19:44:08 +0000 (20:44 +0100)]
Merge pull request #1949 from martin-frbg/issue1947
Query AVX2 and AVX512VL support when selecting x86 kernels
Martin Kroeker [Tue, 8 Jan 2019 13:43:45 +0000 (14:43 +0100)]
Bump xcode to 8.3
Martin Kroeker [Tue, 8 Jan 2019 13:41:48 +0000 (14:41 +0100)]
Update OSX environment to Sierra
as homebrew seems to have dropped support for El Capitan in their gcc packages
Martin Kroeker [Tue, 8 Jan 2019 09:46:47 +0000 (10:46 +0100)]
Add travis_wait to the OSX brew install phase
Martin Kroeker [Sat, 5 Jan 2019 18:41:13 +0000 (19:41 +0100)]
Add message for SkylakeX and KNL fallbacks to Haswell
Martin Kroeker [Sat, 5 Jan 2019 17:08:02 +0000 (18:08 +0100)]
Add xcr0 (os support) check
Martin Kroeker [Sat, 5 Jan 2019 17:07:14 +0000 (18:07 +0100)]
Add xcr0 (os support) check
Martin Kroeker [Sat, 5 Jan 2019 15:58:56 +0000 (16:58 +0100)]
Query AVX2 and AVX512VL capability in x86 cpu detection
Martin Kroeker [Sat, 5 Jan 2019 15:55:33 +0000 (16:55 +0100)]
Query AVX2 and AVX512 capability for runtime cpu selection
Martin Kroeker [Fri, 4 Jan 2019 00:37:37 +0000 (01:37 +0100)]
Merge pull request #1946 from martin-frbg/issue1908
More fixes for cross-compiling ARM64 targets
Martin Kroeker [Thu, 3 Jan 2019 21:17:31 +0000 (22:17 +0100)]
More fixes for cross-compiling ARM64 targets
Fixed core naming for DYNAMIC_ARCH. Corrected GEMM_DEFAULT entries and added SYMV_P. Replaced outdated VULCAN define for ThunderX2T99 with ARMV8 to get basic definitions back. For issue #1908
Martin Kroeker [Wed, 2 Jan 2019 19:15:35 +0000 (20:15 +0100)]
Fix missing quotes around thunderx targets
TiborGY [Mon, 31 Dec 2018 22:19:44 +0000 (23:19 +0100)]
Validate user supplied TARGET (#1941)
the build will now abort with an error message when an undefined build TARGET is named
Fixes #1938
Martin Kroeker [Mon, 31 Dec 2018 22:11:37 +0000 (23:11 +0100)]
Increment version to 0.3.6.dev
Martin Kroeker [Mon, 31 Dec 2018 22:10:59 +0000 (23:10 +0100)]
Increment version to 0.3.6.dev
Martin Kroeker [Mon, 31 Dec 2018 22:07:53 +0000 (23:07 +0100)]
Merge branch 'release-0.3.0' into develop
Martin Kroeker [Mon, 31 Dec 2018 22:00:46 +0000 (23:00 +0100)]
Update ChangeLog.txt with changes from 0.3.5
Martin Kroeker [Mon, 31 Dec 2018 17:36:18 +0000 (18:36 +0100)]
Merge pull request #1944 from hartzell/patch-1
Typo: Skyalke -> Skylake
George Hartzell [Sun, 30 Dec 2018 22:55:34 +0000 (14:55 -0800)]
Typo: Skyalke -> Skylake
Worth fixing, it gets in the way of searching....
Martin Kroeker [Sun, 30 Dec 2018 19:10:05 +0000 (20:10 +0100)]
Merge pull request #1939 from TiborGY/patch-2
Fix typo in UNKNOWN core name
Martin Kroeker [Sun, 30 Dec 2018 19:07:01 +0000 (20:07 +0100)]
Merge pull request #1943 from martin-frbg/issue1748
Re-enable loop unrolling in trmv and remove the scary warning
Martin Kroeker [Sun, 30 Dec 2018 14:22:37 +0000 (15:22 +0100)]
Re-enable loop unrolling in trmv and remove the scary warning
fixes #1748 as that half of the fix for #1332 appears to have been an overreaction on my part.
Martin Kroeker [Sun, 30 Dec 2018 13:47:05 +0000 (14:47 +0100)]
Merge pull request #1942 from martin-frbg/issue1720
Delete the pthread key on cleanup in TLS mode
Martin Kroeker [Sun, 30 Dec 2018 13:39:18 +0000 (14:39 +0100)]
Remove stray include of complex.h
already provided conditionally by common.h via openblas_utest.h
Unconditional inclusion breaks older Android and similar platforms that use OPENBLAS_COMPLEX_STRUCT
Martin Kroeker [Sat, 29 Dec 2018 20:59:31 +0000 (21:59 +0100)]
Delete the pthread key on cleanup in TLS mode
to avoid a crash when OpenBLAS was loaded via dlopen and libc tries to clean up the leaked TLS after dlclose
Fixes #1720
Martin Kroeker [Sat, 29 Dec 2018 17:12:54 +0000 (18:12 +0100)]
Fix wrong case in TARGET setting for Alpine
TiborGY [Fri, 28 Dec 2018 13:36:39 +0000 (14:36 +0100)]
Update cpuid_mips64.c
TiborGY [Fri, 28 Dec 2018 13:35:41 +0000 (14:35 +0100)]
Update Makefile
TiborGY [Fri, 28 Dec 2018 13:34:38 +0000 (14:34 +0100)]
Update cpuid_mips.c
TiborGY [Fri, 28 Dec 2018 13:33:18 +0000 (14:33 +0100)]
Update cpuid_arm.c
TiborGY [Thu, 27 Dec 2018 22:09:21 +0000 (23:09 +0100)]
Fix typo in UNKNOWN core name
Should be of no consequence, right?
Martin Kroeker [Mon, 24 Dec 2018 22:48:33 +0000 (23:48 +0100)]
Merge pull request #1932 from martin-frbg/issue1915
Add -fPIC to provided CFLAGS/FFLAGS if required
Martin Kroeker [Mon, 24 Dec 2018 19:46:04 +0000 (20:46 +0100)]
Remove unnecessary change again
Martin Kroeker [Mon, 24 Dec 2018 18:53:50 +0000 (19:53 +0100)]
Merge pull request #1934 from fenrus75/betagoof
Fix thinko in skylake beta handling
Arjan van de Ven [Mon, 24 Dec 2018 18:49:50 +0000 (18:49 +0000)]
Fix thinko in skylake beta handling
casting ints is cheaper but it has a rounding, not memory casing effect, resulting in
invalid outcome
Martin Kroeker [Sun, 23 Dec 2018 22:47:37 +0000 (23:47 +0100)]
Make sure that -fPIC is present if needed
Martin Kroeker [Sun, 23 Dec 2018 22:46:48 +0000 (23:46 +0100)]
Make sure that -fPIC is present when needed
override user-provided FFLAGS if necessary
Martin Kroeker [Sun, 23 Dec 2018 22:15:54 +0000 (23:15 +0100)]
Merge pull request #1931 from martin-frbg/pr1921
Add -mavx2 to TARGET=HASWELL builds
Martin Kroeker [Sun, 23 Dec 2018 18:08:19 +0000 (19:08 +0100)]
Use -dumpversion with gcc only
Martin Kroeker [Sun, 23 Dec 2018 16:26:09 +0000 (17:26 +0100)]
Add -mavx2 for TARGET=HASWELL if compiler supports and requires it
Martin Kroeker [Sun, 23 Dec 2018 16:16:43 +0000 (17:16 +0100)]
Add -mavx2 to TARGET=HASWELL builds
to leverage improvements from PR#1921
Martin Kroeker [Sun, 23 Dec 2018 14:06:33 +0000 (15:06 +0100)]
Merge pull request #1930 from martin-frbg/issue1908
Reflect ARMV8 target definition changes from PR1876
Martin Kroeker [Sun, 23 Dec 2018 11:26:01 +0000 (12:26 +0100)]
Reflect ARMV8 target definition changes from PR1876
and create config target directory for cross-compiles.
Martin Kroeker [Sun, 23 Dec 2018 08:03:58 +0000 (09:03 +0100)]
Merge pull request #1929 from martin-frbg/issue1924
Avoid taking the root of a negative number in simple threaded syrk
Martin Kroeker [Sat, 22 Dec 2018 21:30:29 +0000 (22:30 +0100)]
Avoid taking the root of a negative number
Fixes #1924 where numpy 1.17+ would report the (transient) FE_INVALID exception raised for the domain error.
Martin Kroeker [Sat, 22 Dec 2018 21:13:44 +0000 (22:13 +0100)]
Merge pull request #1 from xianyi/develop
rebase
Martin Kroeker [Mon, 17 Dec 2018 07:39:20 +0000 (08:39 +0100)]
Merge pull request #1921 from fenrus75/haswelldgemm
Replicate some of the SKYLAKEX dgemm improvements also to HASWELL
Arjan van de Ven [Sun, 16 Dec 2018 23:08:31 +0000 (23:08 +0000)]
set GEMM_PREFERED_SIZE for HASWELL
Haswell likes a GEMM_PREFERED_SIZE of 16 to improve the split that the
threading code does to make it a nice multiple of the SIMD kernel size
Arjan van de Ven [Sun, 16 Dec 2018 23:06:58 +0000 (23:06 +0000)]
dgemm: use dgemm_ncopy_8_skylakex.c also for Haswell
The dgemm_ncopy_8_skylakex.c code is not avx512 specific and gives
a nice performance boost for medium sized matrices
Arjan van de Ven [Sun, 16 Dec 2018 22:59:02 +0000 (22:59 +0000)]
dgemm: Use the skylakex beta function also for haswell
it's more efficient for certain tall/skinny matrices
Martin Kroeker [Sun, 16 Dec 2018 19:11:05 +0000 (20:11 +0100)]
Merge pull request #1919 from fenrus75/haswelltuning
(sgemm) Apply some of the SKYLAKEX optimizations also to HASWELL
Martin Kroeker [Sun, 16 Dec 2018 17:14:40 +0000 (18:14 +0100)]
Update Makefile
Martin Kroeker [Sun, 16 Dec 2018 15:19:51 +0000 (16:19 +0100)]
typo
Martin Kroeker [Sun, 16 Dec 2018 12:09:19 +0000 (13:09 +0100)]
Add -mavx2 on Haswell only if the compiler supports it
Arjan van de Ven [Sun, 16 Dec 2018 00:19:41 +0000 (00:19 +0000)]
Make the skylakex/haswell sgemm code compile and run even with compilers without avx2 support
Martin Kroeker [Sat, 15 Dec 2018 22:30:31 +0000 (23:30 +0100)]
use -maxv2 on haswell
Martin Kroeker [Sat, 15 Dec 2018 19:18:59 +0000 (20:18 +0100)]
should be core-avx2
Martin Kroeker [Sat, 15 Dec 2018 19:17:44 +0000 (20:17 +0100)]
fix elseifeq and use older option core2-avx for compatibility
Martin Kroeker [Sat, 15 Dec 2018 18:35:35 +0000 (19:35 +0100)]
Add -march=haswell to HASWELL part of DYNAMIC_ARCH build
Arjan van de Ven [Sat, 15 Dec 2018 13:43:07 +0000 (13:43 +0000)]
Use sgemm_ncopy_4_skylakex.c also for Haswell
sgemm_ncopy_4_skylakex.c uses SSE transpose operations where the
real perf win happens; this also works great for Haswell.
This gives double digit percentage gains on small and skinny matrices
Arjan van de Ven [Sat, 15 Dec 2018 13:18:59 +0000 (13:18 +0000)]
Use the skylake sgemm beta code also for haswell
with a few small changes it's possible to use the skylake sgemm code
also for haswell, this gives a modest gain (10% range) for smallish
matrixes but does wonders for very skinny matrixes
Martin Kroeker [Thu, 13 Dec 2018 18:08:14 +0000 (19:08 +0100)]
Merge pull request #1914 from fenrus75/smallmatrix
Add a "sgemm direct" mode for small matrixes
Arjan van de Ven [Wed, 12 Dec 2018 16:45:57 +0000 (16:45 +0000)]
Add a "sgemm direct" mode for small matrixes
OpenBLAS has a fancy algorithm for copying the input data while laying
it out in a more CPU friendly memory layout.
This is great for large matrixes; the cost of the copy is easily
ammortized by the gains from the better memory layout.
But for small matrixes (on CPUs that can do efficient unaligned loads) this
copy can be a net loss.
This patch adds (for SKYLAKEX initially) a "sgemm direct" mode, that bypasses
the whole copy machinary for ALPHA=1/BETA=0/... standard arguments,
for small matrixes only.
What is small? For the non-threaded case this has been measured to be
in the M*N*K = 28 * 512 * 512 range, while in the threaded case it's
less, around M*N*K = 1 * 512 * 512
Martin Kroeker [Wed, 12 Dec 2018 13:56:25 +0000 (14:56 +0100)]
Merge pull request #1910 from martin-frbg/issue1909
Fix for DYNAMIC_ARCH builds made on a AVX512-capable host
Martin Kroeker [Tue, 11 Dec 2018 21:47:32 +0000 (22:47 +0100)]
make sure the added march=skylake-avx512 does not cause problems on Windows
Martin Kroeker [Tue, 11 Dec 2018 20:10:38 +0000 (21:10 +0100)]
Add -march=skylake-avx512 to SkylakeX part of DYNAMIC_ARCH builds
Martin Kroeker [Tue, 11 Dec 2018 20:09:26 +0000 (21:09 +0100)]
Avoid adding blanket march=skylake-avx512 to dynamic_arch builds
Martin Kroeker [Fri, 7 Dec 2018 18:37:33 +0000 (19:37 +0100)]
Fix typo in previous commit for arm dynamic arch
Martin Kroeker [Fri, 7 Dec 2018 16:42:23 +0000 (17:42 +0100)]
Add DYNAMIC_CORE list for ARM64
cf #1908
Martin Kroeker [Fri, 7 Dec 2018 15:25:55 +0000 (16:25 +0100)]
Make sure to use the arm version of dynamic.c in ARM64 DYNAMIC_ARCH
cf. #1908
Martin Kroeker [Thu, 6 Dec 2018 22:01:23 +0000 (23:01 +0100)]
Merge pull request #1904 from martin-frbg/issue1870
Fix cmake parsing of GEMM kernels for ARMV8
Martin Kroeker [Thu, 6 Dec 2018 17:33:05 +0000 (18:33 +0100)]
Fix missing parameter in popen call
Martin Kroeker [Thu, 6 Dec 2018 13:04:27 +0000 (14:04 +0100)]
Rewrite the conditional for OSX to fix cmake parsing on others
The Makefile variable parser in utils.cmake currently does not handle conditionals. Having the definitions for non-OSX last will at least make cmake builds work again on non-OSX platforms.
Martin Kroeker [Thu, 6 Dec 2018 12:56:06 +0000 (13:56 +0100)]
Avoid creating spurious non-suffixed c/zgemm_kernels
Plain cgemm_kernel and zgemm_kernel are not used anywhere, only cgemm_kernel_b etc.
Needlessly building them (without any define like NN, CN, etc.) just happened to work on most platforms, but not on arm64. See #1870
Martin Kroeker [Thu, 6 Dec 2018 12:42:25 +0000 (13:42 +0100)]
Fix typo that broke CNRM2 on ARMV8 since 0.3.0
must have happened in my #1449
Martin Kroeker [Wed, 5 Dec 2018 21:10:53 +0000 (22:10 +0100)]
Merge pull request #1903 from rengolin/armv8
Fix two mistakes on Arm64 builds
Renato Golin [Wed, 5 Dec 2018 18:51:38 +0000 (18:51 +0000)]
Fix two mistakes on Arm64 builds
* Falkor is an ARMv8.0 with ARMv8.1 features, and chosing armv8.1-a for
march generates instructions it cannot cope with. Reverting it back
to armv8-a.
* ThunderX2's build was left with a #define VULCAN, which made it miss
the right compiler flags in Makefile.arm64, although it did create
the right library in the end.
Martin Kroeker [Mon, 3 Dec 2018 12:06:43 +0000 (13:06 +0100)]
Use p2align instead of align for OSX compatibility
fixes #1902
Martin Kroeker [Mon, 3 Dec 2018 11:50:27 +0000 (12:50 +0100)]
Merge pull request #1899 from brada4/fbsd12
Add mutually supported architecture mappings for FreeBSD12 ports
Martin Kroeker [Mon, 3 Dec 2018 11:50:14 +0000 (12:50 +0100)]
Merge branch 'develop' into fbsd12
Martin Kroeker [Mon, 3 Dec 2018 11:48:53 +0000 (12:48 +0100)]
Merge pull request #1894 from pkubaj/patch-2
Use correct ARCH name on BSD powerpc64