Erik M. Bray
8ba9e2a61a
Also call CloseHandle on each thread, as well as on the event so as to not leak thread handles.
6 years ago
Erik M. Bray
4ad694eda1
Fix for #2063 : The DllMain used in Cygwin did not run the thread memory
pool cleanup upon THREAD_DETACH which is needed when compiled with
USE_TLS=1.
6 years ago
Martin Kroeker
3ce28fb81a
Merge pull request #2055 from martin-frbg/atomid
Add CPUID data for Intel Denverton (as Nehalem)
6 years ago
Martin Kroeker
04f2226ea6
Add Intel Denverton
6 years ago
Martin Kroeker
4741ce803b
Merge pull request #2045 from martin-frbg/2033-3
Do not compile in AVX512 check if AVX support is disabled
6 years ago
Martin Kroeker
11cfd0bd75
Do not compile in AVX512 check if AVX support is disabled
xgetbv is function depends on NO_AVX being undefined - we could change that too, but that combo is unlikely to work anyway
6 years ago
Martin Kroeker
d7b2c53c0b
Merge pull request #2039 from brada4/meminit
Address warning in memory.c
6 years ago
Martin Kroeker
10d841d8b9
Merge pull request #2026 from martin-frbg/trmv_threads
Correct range limiting in trmv_thread and re-enable TRMV multithreading
6 years ago
Martin Kroeker
6c83b878f6
Merge pull request #2040 from martin-frbg/locks2002
Restore locking optimizations for OpenMP case
6 years ago
Martin Kroeker
af480b02a4
Restore locking optimizations for OpenMP case
restore another accidentally dropped part of #1468 that was missed in #2004 to address performance regression reported in #1461
6 years ago
Andrew
e4a79be6bb
address warning introed with #1814 et al
6 years ago
Martin Kroeker
45333d5793
Fix error introduced during cleanup
6 years ago
Martin Kroeker
78d9910236
Correct range_n limiting
same bug as seen in #1388 , somehow missed in corresponding PR #1389
6 years ago
Martin Kroeker
03a2bf2602
Fix potential memory leak in cpu enumeration on Linux ( #2008 )
* Fix potential memory leak in cpu enumeration with glibc
An early return after a failed call to sched_getaffinity would leak the previously allocated cpu_set_t. Wrong calculation of the size argument in that call increased the likelyhood of that failure. Fixes #2003
6 years ago
Martin Kroeker
69edc5bbe7
Restore dropped patches in the non-TLS branch of memory.c ( #2004 )
* Restore dropped patches in the non-TLS branch of memory.c
As discovered in #2002 , the reintroduction of the "original" non-TLS version of memory.c as an alternate branch had inadvertently used ba1f91f rather than a8002e2 , thereby dropping the commits for #1450 , #1468 , #1501 , #1504 and #1520 .
6 years ago
caiyu
29dc72889f
Add support for Hygon Dhyana
6 years ago
Martin Kroeker
dbc9a060ef
Fix missing braces in support_av() call
6 years ago
Martin Kroeker
21c0f2af7b
Merge pull request #1957 from martin-frbg/issue1954
Move TLS key deletion to openblas_quit
6 years ago
Martin Kroeker
ad2c386d6a
Move TLS key deletion to openblas_quit
fixes #1954 (as suggested by thrasibule in that issue)
6 years ago
Martin Kroeker
31ed19e8b9
Add message for SkylakeX and KNL fallbacks to Haswell
6 years ago
Martin Kroeker
e1574fa2b4
Add xcr0 (os support) check
6 years ago
Martin Kroeker
ae1d1f74f7
Query AVX2 and AVX512 capability for runtime cpu selection
6 years ago
Martin Kroeker
8643521127
Merge pull request #1943 from martin-frbg/issue1748
Re-enable loop unrolling in trmv and remove the scary warning
7 years ago
Martin Kroeker
5a720cf9ca
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.
7 years ago
Martin Kroeker
ccd5945d38
Merge pull request #1942 from martin-frbg/issue1720
Delete the pthread key on cleanup in TLS mode
7 years ago
Martin Kroeker
bba1e67269
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
7 years ago
Martin Kroeker
f343ed65b5
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.
7 years ago
Martin Kroeker
0bf6d74e5f
Fix typo in previous commit for arm dynamic arch
7 years ago
Martin Kroeker
2b355592e3
Make sure to use the arm version of dynamic.c in ARM64 DYNAMIC_ARCH
cf. #1908
7 years ago
Andrew
2601cd58ab
remove surplus locking code , only enabled w x86, disabled or never enabled on all others
7 years ago
Martin Kroeker
97d7298973
call it OpenBLAS not just version
7 years ago
Martin Kroeker
de0d0ed52f
Improve formatting of config output
7 years ago
Martin Kroeker
816775e309
Add version information to openblas_get_config output
7 years ago
Martin Kroeker
f72fdf525c
Merge pull request #1875 from martin-frbg/issue1851
Serialize accesses to parallelized level3 functions from multiple cal…
7 years ago
Martin Kroeker
113cb00b95
fix missing parenthesis
7 years ago
Martin Kroeker
5192651706
Add CriticalSection handling instead of mutexes for Windows
7 years ago
Martin Kroeker
2e6fae2aad
Serialize accesses to parallelized level3 functions from multiple callers
for #1851
7 years ago
Martin Kroeker
368d14f8c8
Fix harmless typo
fixes #1872
7 years ago
Martin Kroeker
0427277cef
Allow optimization for small m, large n only if it can be made threadsafe
otherwise the introduction of a static array in 8e5a108 to improve #532 breaks concurrent calls from multiple threads as seen in #1844
7 years ago
Arjan van de Ven
5b708e5eb1
sgemm/dgemm: add a way for an arch kernel to specify prefered sizes
The current gemm threading code can make very unfortunate choices, for
example on my 10 core system a 1024x1024x1024 matrix multiply ends up
chunking into blocks of 102... which is not a vector friendly size
and performance ends up horrible.
this patch adds a helper define where an architecture can specify
a preference for size multiples.
This is different from existing defines that are minimum sizes and such.
The performance increase with this patch for the 1024x1024x1024 sgemm
is 2.3x (!!)
7 years ago
Martin Kroeker
f5595d0262
Merge pull request #1843 from martin-frbg/aix_numprocs
Add get_num_procs implementation for AIX
7 years ago
Martin Kroeker
326d394a0f
Add get_num_procs implementation for AIX
(and copy HAIKU implementation to the non-TLS version of the code as well)
7 years ago
Erik M. Bray
38cf5d9364
ensure that threading has been initialized in the first place before calling openblas_set_num_threads
7 years ago
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.
7 years ago
Ashwin Sekhar T K
d50abc8903
ARM64: Move parameters from parameter.c to param.h
Remove the runtime setting of P, Q, R parameters for
targets ARMV8, THUNDERX2T99. Instead set them as constants
in param.h at compile time.
7 years ago
Ashwin Sekhar T K
21f46a1cf2
ARM64: Use THUNDERX2T99 Neon Kernels for ARMV8
Currently the generic ARMV8 target uses C implementations
for many routines. Replace these with the neon implementations
written for THUNDERX2T99 target which are upto 6x faster for
certain routines.
7 years ago
Andrew
3439158dea
address #1782 2nd loop
7 years ago
Martin Kroeker
28aa94bf4b
Include thread numbers in failure message from blas_thread_init
to aid in debugging cases like #1767
7 years ago
Martin Kroeker
1ad1e79062
Catch inadvertent USE_TLS=0 declaration
for #1766
7 years ago
Martin Kroeker
b402626509
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).
7 years ago