diff --git a/2672.patch b/2672.patch new file mode 100644 index 0000000..5d9ffcb --- /dev/null +++ b/2672.patch @@ -0,0 +1,90 @@ +From 478898b37a91836a39d046f8c70e26c6c9fc06c7 Mon Sep 17 00:00:00 2001 +From: Marius Hillenbrand +Date: Wed, 17 Jun 2020 16:08:48 +0200 +Subject: [PATCH 1/2] cpp_thread_test/dgemv: cap concurrency to number of hw + threads on small systems + +... instead of (number of hw threads - 4) to avoid invalid numbers on +smaller systems. Currently, systems with 4 or fewer CPUs (e.g., small CI +VMs) would fail the test. Fixes one of the issues discussed in #2668 + +Signed-off-by: Marius Hillenbrand +--- + cpp_thread_test/dgemv_thread_safety.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/cpp_thread_test/dgemv_thread_safety.cpp b/cpp_thread_test/dgemv_thread_safety.cpp +index 5411fec29..277594ff0 100644 +--- a/cpp_thread_test/dgemv_thread_safety.cpp ++++ b/cpp_thread_test/dgemv_thread_safety.cpp +@@ -18,7 +18,7 @@ int main(int argc, char* argv[]){ + uint32_t maxHwThreads = omp_get_max_threads(); + + if (maxHwThreads < 52) +- numConcurrentThreads = maxHwThreads -4; ++ numConcurrentThreads = maxHwThreads; + + if (argc > 4){ + std::cout<<"ERROR: too many arguments for thread safety tester"< +Date: Wed, 17 Jun 2020 16:15:44 +0200 +Subject: [PATCH 2/2] cpp_thread_test/dgemv: fail early if concurrency is zero + +The two test cases dgemv_tester and dgemm_tester accept the degree of +concurrency as command line argument (amongst others). Fail early if +value 0 has been specified, instead of later with less-clear symptoms. + +Signed-off-by: Marius Hillenbrand +--- + cpp_thread_test/cpp_thread_safety_common.h | 8 ++++++++ + cpp_thread_test/dgemm_thread_safety.cpp | 2 ++ + cpp_thread_test/dgemv_thread_safety.cpp | 2 ++ + 3 files changed, 12 insertions(+) + +diff --git a/cpp_thread_test/cpp_thread_safety_common.h b/cpp_thread_test/cpp_thread_safety_common.h +index 60ab5bb2f..8005369a8 100644 +--- a/cpp_thread_test/cpp_thread_safety_common.h ++++ b/cpp_thread_test/cpp_thread_safety_common.h +@@ -5,6 +5,14 @@ inline void pauser(){ + std::getline(std::cin, dummy); + } + ++void FailIfThreadsAreZero(uint32_t numConcurrentThreads) { ++ if(numConcurrentThreads == 0) { ++ std::cout<<"ERROR: Invalid parameter 0 for number of concurrent calls into OpenBLAS!"<>& matBlock, std::mt19937_64& PRNG, std::uniform_real_distribution& rngdist, const blasint randomMatSize, const uint32_t numConcurrentThreads, const uint32_t numMat){ + for(uint32_t i=0; i(randomMatSize*randomMatSize); j++){ +diff --git a/cpp_thread_test/dgemm_thread_safety.cpp b/cpp_thread_test/dgemm_thread_safety.cpp +index 1c5287524..104c64f2a 100644 +--- a/cpp_thread_test/dgemm_thread_safety.cpp ++++ b/cpp_thread_test/dgemm_thread_safety.cpp +@@ -46,6 +46,8 @@ int main(int argc, char* argv[]){ + std::cout<<"Number of concurrent calls into OpenBLAS : "<(randomMatSize*randomMatSize)*numConcurrentThreads*3*8)/static_cast(1024*1024)<<" MiB of RAM\n"<(randomMatSize*randomMatSize)*numConcurrentThreads*8)+(static_cast(randomMatSize)*numConcurrentThreads*8*2))/static_cast(1024*1024)<<" MiB of RAM\n"< - 0.3.10-2 +- Include upstream patch 2672 to fix test suite on systems with few CPUs. + * Mon Jun 15 2020 Susi Lehtola - 0.3.10-1 - Update to 0.3.10.