platform/upstream/openblas.git
5 years agoMerge pull request #1944 from hartzell/patch-1
Martin Kroeker [Mon, 31 Dec 2018 17:36:18 +0000 (18:36 +0100)]
Merge pull request #1944 from hartzell/patch-1

Typo: Skyalke -> Skylake

5 years agoTypo: 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....

5 years agoMerge pull request #1939 from TiborGY/patch-2
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

5 years agoMerge pull request #1943 from martin-frbg/issue1748
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

5 years agoRe-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.

5 years agoMerge pull request #1942 from martin-frbg/issue1720
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

5 years agoRemove stray include of complex.h
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

5 years agoDelete the pthread key on cleanup in TLS mode
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

5 years agoFix wrong case in TARGET setting for Alpine
Martin Kroeker [Sat, 29 Dec 2018 17:12:54 +0000 (18:12 +0100)]
Fix wrong case in TARGET setting for Alpine

5 years agoUpdate cpuid_mips64.c
TiborGY [Fri, 28 Dec 2018 13:36:39 +0000 (14:36 +0100)]
Update cpuid_mips64.c

5 years agoUpdate Makefile
TiborGY [Fri, 28 Dec 2018 13:35:41 +0000 (14:35 +0100)]
Update Makefile

5 years agoUpdate cpuid_mips.c
TiborGY [Fri, 28 Dec 2018 13:34:38 +0000 (14:34 +0100)]
Update cpuid_mips.c

5 years agoUpdate cpuid_arm.c
TiborGY [Fri, 28 Dec 2018 13:33:18 +0000 (14:33 +0100)]
Update cpuid_arm.c

5 years agoFix typo in UNKNOWN core name
TiborGY [Thu, 27 Dec 2018 22:09:21 +0000 (23:09 +0100)]
Fix typo in UNKNOWN core name

Should be of no consequence, right?

5 years agoMerge pull request #1932 from martin-frbg/issue1915
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

5 years agoRemove unnecessary change again
Martin Kroeker [Mon, 24 Dec 2018 19:46:04 +0000 (20:46 +0100)]
Remove unnecessary change again

5 years agoMerge pull request #1934 from fenrus75/betagoof
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

5 years agoFix 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

5 years agoMake sure that -fPIC is present if needed
Martin Kroeker [Sun, 23 Dec 2018 22:47:37 +0000 (23:47 +0100)]
Make sure that -fPIC is present if needed

5 years agoMake sure that -fPIC is present when 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

5 years agoMerge pull request #1931 from martin-frbg/pr1921
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

5 years agoUse -dumpversion with gcc only
Martin Kroeker [Sun, 23 Dec 2018 18:08:19 +0000 (19:08 +0100)]
Use -dumpversion with gcc only

5 years agoAdd -mavx2 for TARGET=HASWELL if compiler supports and requires it
Martin Kroeker [Sun, 23 Dec 2018 16:26:09 +0000 (17:26 +0100)]
Add -mavx2 for TARGET=HASWELL if compiler supports and requires it

5 years agoAdd -mavx2 to TARGET=HASWELL builds
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

5 years agoMerge pull request #1930 from martin-frbg/issue1908
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

5 years agoReflect 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.

5 years agoMerge pull request #1929 from martin-frbg/issue1924
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

5 years agoAvoid taking the root of a negative number
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.

5 years agoMerge pull request #1 from xianyi/develop
Martin Kroeker [Sat, 22 Dec 2018 21:13:44 +0000 (22:13 +0100)]
Merge pull request #1 from xianyi/develop

rebase

5 years agoMerge pull request #1921 from fenrus75/haswelldgemm
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

5 years agoset GEMM_PREFERED_SIZE for 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

5 years agodgemm: use dgemm_ncopy_8_skylakex.c also for Haswell
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

5 years agodgemm: Use the skylakex beta function also for haswell
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

5 years agoMerge pull request #1919 from fenrus75/haswelltuning
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

5 years agoUpdate Makefile
Martin Kroeker [Sun, 16 Dec 2018 17:14:40 +0000 (18:14 +0100)]
Update Makefile

5 years agotypo
Martin Kroeker [Sun, 16 Dec 2018 15:19:51 +0000 (16:19 +0100)]
typo

5 years agoAdd -mavx2 on Haswell only if the compiler supports it
Martin Kroeker [Sun, 16 Dec 2018 12:09:19 +0000 (13:09 +0100)]
Add -mavx2 on Haswell only if the compiler supports it

5 years agoMake the skylakex/haswell sgemm code compile and run even with compilers without...
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

5 years agouse -maxv2 on haswell
Martin Kroeker [Sat, 15 Dec 2018 22:30:31 +0000 (23:30 +0100)]
use -maxv2 on haswell

5 years agoshould be core-avx2
Martin Kroeker [Sat, 15 Dec 2018 19:18:59 +0000 (20:18 +0100)]
should be core-avx2

5 years agofix elseifeq and use older option core2-avx for compatibility
Martin Kroeker [Sat, 15 Dec 2018 19:17:44 +0000 (20:17 +0100)]
fix elseifeq and use older option core2-avx for compatibility

5 years agoAdd -march=haswell to HASWELL part of DYNAMIC_ARCH build
Martin Kroeker [Sat, 15 Dec 2018 18:35:35 +0000 (19:35 +0100)]
Add -march=haswell to HASWELL part of DYNAMIC_ARCH build

5 years agoUse sgemm_ncopy_4_skylakex.c also for Haswell
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

5 years agoUse the skylake sgemm beta code also for haswell
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

5 years agoMerge pull request #1914 from fenrus75/smallmatrix
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

5 years agoAdd 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

5 years agoMerge pull request #1910 from martin-frbg/issue1909
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

5 years agomake sure the added march=skylake-avx512 does not cause problems on Windows
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

5 years agoAdd -march=skylake-avx512 to SkylakeX part of DYNAMIC_ARCH builds
Martin Kroeker [Tue, 11 Dec 2018 20:10:38 +0000 (21:10 +0100)]
Add -march=skylake-avx512 to SkylakeX part of DYNAMIC_ARCH builds

5 years agoAvoid adding blanket march=skylake-avx512 to 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

5 years agoFix typo in previous commit for arm dynamic arch
Martin Kroeker [Fri, 7 Dec 2018 18:37:33 +0000 (19:37 +0100)]
Fix typo in previous commit for arm dynamic arch

5 years agoAdd DYNAMIC_CORE list for ARM64
Martin Kroeker [Fri, 7 Dec 2018 16:42:23 +0000 (17:42 +0100)]
Add DYNAMIC_CORE list for ARM64

cf #1908

5 years agoMake sure to use the arm version of dynamic.c in ARM64 DYNAMIC_ARCH
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

5 years agoMerge pull request #1904 from martin-frbg/issue1870
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

5 years agoFix missing parameter in popen call
Martin Kroeker [Thu, 6 Dec 2018 17:33:05 +0000 (18:33 +0100)]
Fix missing parameter in popen call

5 years agoRewrite the conditional for OSX to fix cmake parsing on others
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.

5 years agoAvoid creating spurious non-suffixed c/zgemm_kernels
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

5 years agoFix typo that broke CNRM2 on ARMV8 since 0.3.0
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

5 years agoMerge pull request #1903 from rengolin/armv8
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

5 years agoFix 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.

5 years agoUse p2align instead of align for OSX compatibility
Martin Kroeker [Mon, 3 Dec 2018 12:06:43 +0000 (13:06 +0100)]
Use p2align instead of align for OSX compatibility

fixes #1902

5 years agoMerge pull request #1899 from brada4/fbsd12
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

5 years agoMerge branch 'develop' into fbsd12
Martin Kroeker [Mon, 3 Dec 2018 11:50:14 +0000 (12:50 +0100)]
Merge branch 'develop' into fbsd12

5 years agoMerge pull request #1894 from pkubaj/patch-2
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

5 years agoUpdate Makefile.system
Martin Kroeker [Mon, 3 Dec 2018 07:59:10 +0000 (08:59 +0100)]
Update Makefile.system

5 years agoUpdate with the changes from 0.3.4
Martin Kroeker [Sun, 2 Dec 2018 22:44:13 +0000 (23:44 +0100)]
Update with the changes from 0.3.4

5 years agoIncrement version to 0.3.5.dev
Martin Kroeker [Sun, 2 Dec 2018 22:43:15 +0000 (23:43 +0100)]
Increment version to 0.3.5.dev

5 years agoIncrement version to 0.3.5.dev
Martin Kroeker [Sun, 2 Dec 2018 22:42:33 +0000 (23:42 +0100)]
Increment version to 0.3.5.dev

5 years agoMerge branch 'release-0.3.0' into develop
Martin Kroeker [Sun, 2 Dec 2018 22:38:49 +0000 (23:38 +0100)]
Merge branch 'release-0.3.0' into develop

5 years agofixup BSD naming of powerpc arch
Martin Kroeker [Sun, 2 Dec 2018 22:24:53 +0000 (23:24 +0100)]
fixup BSD naming of powerpc arch

5 years agooops
Andrew [Sun, 2 Dec 2018 19:27:53 +0000 (20:27 +0100)]
oops

5 years agoAdd architecture mappings for FreeBSD12
Andrew [Sun, 2 Dec 2018 11:07:41 +0000 (12:07 +0100)]
Add architecture mappings for FreeBSD12

5 years agoinit
Andrew [Sun, 2 Dec 2018 11:05:15 +0000 (12:05 +0100)]
init

5 years agoHandle Android environments that identify as Linux (#1898)
Martin Kroeker [Sat, 1 Dec 2018 19:56:11 +0000 (20:56 +0100)]
Handle Android environments that identify as Linux (#1898)

* Handle Android environments that identify as Linux

termux terminal emulator does this, causing build failures through missed defines in common.h

5 years agoReally revert xDOT changes from 1832
Martin Kroeker [Fri, 30 Nov 2018 20:32:01 +0000 (21:32 +0100)]
Really revert xDOT changes from 1832

neglected to rebase #1892 on merging

5 years agoMerge pull request #1892 from martin-frbg/mipsdot
Martin Kroeker [Fri, 30 Nov 2018 20:28:21 +0000 (21:28 +0100)]
Merge pull request #1892 from martin-frbg/mipsdot

revert MIPS64 xDOT kernel changes from #1832

5 years agoFix build on POWER, remove DragonFly, add NetBSD
pkubaj [Fri, 30 Nov 2018 16:04:07 +0000 (16:04 +0000)]
Fix build on POWER, remove DragonFly, add NetBSD

__asm is complete on its own

DBSD developers state they will only support amd64, but NetBSD supports POWER.

5 years agoUse correct Makefile on powerpc64
pkubaj [Fri, 30 Nov 2018 16:05:49 +0000 (16:05 +0000)]
Use correct Makefile on powerpc64

FreeBSD uses powerpc64 name for POWER architecture. Use correct Makefile for this platform.

5 years agoremove surplus locking code , only enabled w x86, disabled or never enabled on all...
Andrew [Thu, 11 Oct 2018 20:29:34 +0000 (23:29 +0300)]
remove surplus locking code , only enabled w x86, disabled or never enabled on all others

5 years agoRevert DOT kernel changes from #1834
Martin Kroeker [Fri, 30 Nov 2018 10:16:24 +0000 (11:16 +0100)]
Revert DOT kernel changes from #1834

as the failures seen on Loongson3A appear to be limited to DSDOT/SDSDOT (i.e. my hackish "fix" from #1684)

5 years agoUse generic kernel for DSDOT/SDSDOT
Martin Kroeker [Fri, 30 Nov 2018 09:57:09 +0000 (10:57 +0100)]
Use generic kernel for DSDOT/SDSDOT

as discussed in #1834

5 years agoMerge pull request #1834 from fengrl/develop
Martin Kroeker [Fri, 30 Nov 2018 09:48:46 +0000 (10:48 +0100)]
Merge pull request #1834 from fengrl/develop

register push/pop command change

5 years agoMerge pull request #1890 from martin-frbg/issue1889
Martin Kroeker [Thu, 29 Nov 2018 14:47:35 +0000 (15:47 +0100)]
Merge pull request #1890 from martin-frbg/issue1889

Include version number in openblas_get_config output

5 years agocall it OpenBLAS not just version
Martin Kroeker [Thu, 29 Nov 2018 10:52:08 +0000 (11:52 +0100)]
call it OpenBLAS not just version

5 years agoImprove formatting of config output
Martin Kroeker [Thu, 29 Nov 2018 10:28:19 +0000 (11:28 +0100)]
Improve formatting of config output

5 years agoPropagate version number for openblas_get_config
Martin Kroeker [Wed, 28 Nov 2018 23:12:04 +0000 (00:12 +0100)]
Propagate version number for openblas_get_config

5 years agopropagate verison number for openblas_config_version
Martin Kroeker [Wed, 28 Nov 2018 23:10:49 +0000 (00:10 +0100)]
propagate verison number for openblas_config_version

5 years agoAdd version information to openblas_get_config output
Martin Kroeker [Wed, 28 Nov 2018 23:06:44 +0000 (00:06 +0100)]
Add version information to openblas_get_config output

5 years agoMerge pull request #1885 from brada4/freebsd
Martin Kroeker [Sun, 25 Nov 2018 21:20:13 +0000 (22:20 +0100)]
Merge pull request #1885 from brada4/freebsd

Fix freebsd clang compilation of skylakex

5 years agoAdd return value so that freebsd system clang does not err out
Andrew [Sun, 25 Nov 2018 20:35:01 +0000 (21:35 +0100)]
Add return value so that freebsd system clang does not err out

5 years agoinit
Andrew [Sun, 25 Nov 2018 20:34:09 +0000 (21:34 +0100)]
init

5 years agoMerge pull request #1875 from martin-frbg/issue1851
Martin Kroeker [Sun, 25 Nov 2018 19:53:46 +0000 (20:53 +0100)]
Merge pull request #1875 from martin-frbg/issue1851

Serialize accesses to parallelized level3 functions from multiple cal…

5 years agoMerge pull request #1869 from martin-frbg/axpy0
Martin Kroeker [Sun, 25 Nov 2018 19:52:49 +0000 (20:52 +0100)]
Merge pull request #1869 from martin-frbg/axpy0

Handle special case INCX=0,INCY=0 in the axpy interface

5 years agoMerge pull request #1878 from kiwifb/PGI_f_check
Martin Kroeker [Sun, 25 Nov 2018 19:51:50 +0000 (20:51 +0100)]
Merge pull request #1878 from kiwifb/PGI_f_check

Correct link flags for PGI compiler.

5 years agoMerge pull request #1876 from rengolin/armv8-cleanup
Martin Kroeker [Sun, 25 Nov 2018 19:51:24 +0000 (20:51 +0100)]
Merge pull request #1876 from rengolin/armv8-cleanup

Simplifying ARMv8 build parameters

5 years agoCorrect link flags for PGI compiler.
François Bissey [Wed, 21 Nov 2018 01:24:56 +0000 (14:24 +1300)]
Correct link flags for PGI compiler.

5 years agoMerge pull request #1868 from martin-frbg/aix_cpuid
Martin Kroeker [Tue, 20 Nov 2018 16:25:57 +0000 (17:25 +0100)]
Merge pull request #1868 from martin-frbg/aix_cpuid

Use prtconf to determine CPU type on AIX

5 years agofix missing parenthesis
Martin Kroeker [Mon, 19 Nov 2018 20:01:36 +0000 (21:01 +0100)]
fix missing parenthesis

5 years agoAdd CriticalSection handling instead of mutexes for Windows
Martin Kroeker [Mon, 19 Nov 2018 16:58:22 +0000 (17:58 +0100)]
Add CriticalSection handling instead of mutexes for Windows

5 years agoSimplifying ARMv8 build parameters
Renato Golin [Fri, 16 Nov 2018 15:45:12 +0000 (15:45 +0000)]
Simplifying ARMv8 build parameters

ARMv8 builds were a bit mixed up, with ThunderX2 code in ARMv8 mode
(which is not right because TX2 is ARMv8.1) as well as requiring a few
redundancies in the defines, making it harder to maintain and understand
what core has what. A few other minor issues were also fixed.

Tests were made on the following cores: A53, A57, A72, Falkor, ThunderX,
ThunderX2, and XGene.

Tests were: OpenBLAS/test, OpenBLAS/benchmark, BLAS-Tester.

A summary:
 * Removed TX2 code from ARMv8 build, to make sure it is compatible with
   all ARMv8 cores, not just v8.1. Also, the TX2 code has actually
   harmed performance on big cores.
 * Commoned up ARMv8 architectures' defines in params.h, to make sure
   that all will benefit from ARMv8 settings, in addition to their own.
 * Adding a few more cores, using ARMv8's include strategy, to benefit
   from compiler optimisations using mtune. Also updated cache
   information from the manuals, making sure we set good conservative
   values by default. Removed Vulcan, as it's an alias to TX2.
 * Auto-detecting most of those cores, but also updating the forced
   compilation in getarch.c, to make sure the parameters are the same
   whether compiled natively or forced arch.

Benefits:
 * ARMv8 build is now guaranteed to work on all ARMv8 cores
 * Improved performance for ARMv8 builds on some cores (A72, Falkor,
   ThunderX1 and 2: up to 11%) over current develop
 * Improved performance for *all* cores comparing to develop branch
   before TX2's patch (9% ~ 36%)
 * ThunderX1 builds are 14% faster than ARMv8 on TX1, 9% faster than
   current develop's branch and 8% faster than deveop before tx2 patches

Issues:
 * Regression from current develop branch for A53 (-12%) and A57 (-3%)
   with ARMv8 builds, but still faster than before TX2's commit (+15%
   and +24% respectively). This can be improved with a simplification of
   TX2's code, to be done in future patches. At least the code is
   guaranteed to be ARMv8.0 now.

Comments:
 * CortexA57 builds are unchanged on A57 hardware from develop's branch,
   which makes sense, as it's untouched.
 * CortexA72 builds improve over A57 on A72 hardware, even if they're
   using the same includes due to new compiler tunning in the makefile.