From cac634fce365c56484f4aa8c2c3d46b2430f1d69 Mon Sep 17 00:00:00 2001 From: VFerrari Date: Sat, 25 Jun 2022 03:21:18 -0300 Subject: [PATCH 1/2] POWER10: Fix multithreading check when USE_THREAD=0 This patch fixes an issue when OpenBLAS is compiled for TARGET=POWER10 and the flag USE_THREAD is set to 0. The function `num_cpu_avail` is only available when USE_THREAD=1, so SMP is defined. --- kernel/power/gemm_small_kernel_permit_power10.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/kernel/power/gemm_small_kernel_permit_power10.c b/kernel/power/gemm_small_kernel_permit_power10.c index 9b38e457b..3a146d8fa 100644 --- a/kernel/power/gemm_small_kernel_permit_power10.c +++ b/kernel/power/gemm_small_kernel_permit_power10.c @@ -69,6 +69,7 @@ int CNAME(int transa, int transb, BLASLONG M, BLASLONG N, BLASLONG K, FLOAT alph #endif +#ifdef SMP // Multi-threading execution outperforms (or approaches) the execution of the // small kernel. if (num_cpu_avail(3) > 1) { @@ -77,6 +78,9 @@ int CNAME(int transa, int transb, BLASLONG M, BLASLONG N, BLASLONG K, FLOAT alph } else { return 1; } +#else + return 1; +#endif #endif From 2062280c6fab0cf02046b7c5c783b3fc124c5a27 Mon Sep 17 00:00:00 2001 From: VFerrari Date: Sat, 25 Jun 2022 03:28:23 -0300 Subject: [PATCH 2/2] Power: Enable SMALL_MATRIX OPT as default for dynamic arch --- Makefile.system | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile.system b/Makefile.system index b1593e8f5..c696e0ddb 100644 --- a/Makefile.system +++ b/Makefile.system @@ -261,7 +261,7 @@ endif #For small matrix optimization ifeq ($(ARCH), x86_64) SMALL_MATRIX_OPT = 1 -else ifeq ($(CORE), POWER10) +else ifeq ($(ARCH), power) SMALL_MATRIX_OPT = 1 endif ifeq ($(SMALL_MATRIX_OPT), 1)