From 6258bc4c81855c8221279fce5d62b409de4ed694 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mos=C3=A8=20Giordano?= <765740+giordano@users.noreply.github.com> Date: Thu, 15 Aug 2024 16:12:38 +0200 Subject: [PATCH] [OpenBLAS] Backport new threading buffer patch (#9263) --- .../81-memory-buffer-multi-threading.patch | 26 +++++++++++++++++++ .../81-memory-buffer-multi-threading.patch | 26 +++++++++++++++++++ 2 files changed, 52 insertions(+) create mode 100644 O/OpenBLAS/OpenBLAS32@0.3.28/bundled/patches/81-memory-buffer-multi-threading.patch create mode 100644 O/OpenBLAS/OpenBLAS@0.3.28/bundled/patches/81-memory-buffer-multi-threading.patch diff --git a/O/OpenBLAS/OpenBLAS32@0.3.28/bundled/patches/81-memory-buffer-multi-threading.patch b/O/OpenBLAS/OpenBLAS32@0.3.28/bundled/patches/81-memory-buffer-multi-threading.patch new file mode 100644 index 00000000000..e48350d2ac1 --- /dev/null +++ b/O/OpenBLAS/OpenBLAS32@0.3.28/bundled/patches/81-memory-buffer-multi-threading.patch @@ -0,0 +1,26 @@ +From d24b3cf39392a99e81ed47a5f093fbd074d4b39b Mon Sep 17 00:00:00 2001 +From: Martin Kroeker +Date: Thu, 15 Aug 2024 15:32:58 +0200 +Subject: [PATCH] properly fix buffer allocation and assignment + +--- + driver/others/blas_server.c | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/driver/others/blas_server.c b/driver/others/blas_server.c +index b9a7674c17..29f8a5e646 100644 +--- a/driver/others/blas_server.c ++++ b/driver/others/blas_server.c +@@ -1076,7 +1076,11 @@ fprintf(STDERR, "Server[%2ld] Calculation started. Mode = 0x%03x M = %3ld N=%3l + main_status[cpu] = MAIN_RUNNING1; + #endif + +-if (buffer == NULL) blas_thread_buffer[cpu] = blas_memory_alloc(2); ++if (buffer == NULL) { ++ blas_thread_buffer[cpu] = blas_memory_alloc(2); ++ buffer = blas_thread_buffer[cpu]; ++} ++ + + //For target LOONGSON3R5, applying an offset to the buffer is essential + //for minimizing cache conflicts and optimizing performance. diff --git a/O/OpenBLAS/OpenBLAS@0.3.28/bundled/patches/81-memory-buffer-multi-threading.patch b/O/OpenBLAS/OpenBLAS@0.3.28/bundled/patches/81-memory-buffer-multi-threading.patch new file mode 100644 index 00000000000..e48350d2ac1 --- /dev/null +++ b/O/OpenBLAS/OpenBLAS@0.3.28/bundled/patches/81-memory-buffer-multi-threading.patch @@ -0,0 +1,26 @@ +From d24b3cf39392a99e81ed47a5f093fbd074d4b39b Mon Sep 17 00:00:00 2001 +From: Martin Kroeker +Date: Thu, 15 Aug 2024 15:32:58 +0200 +Subject: [PATCH] properly fix buffer allocation and assignment + +--- + driver/others/blas_server.c | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/driver/others/blas_server.c b/driver/others/blas_server.c +index b9a7674c17..29f8a5e646 100644 +--- a/driver/others/blas_server.c ++++ b/driver/others/blas_server.c +@@ -1076,7 +1076,11 @@ fprintf(STDERR, "Server[%2ld] Calculation started. Mode = 0x%03x M = %3ld N=%3l + main_status[cpu] = MAIN_RUNNING1; + #endif + +-if (buffer == NULL) blas_thread_buffer[cpu] = blas_memory_alloc(2); ++if (buffer == NULL) { ++ blas_thread_buffer[cpu] = blas_memory_alloc(2); ++ buffer = blas_thread_buffer[cpu]; ++} ++ + + //For target LOONGSON3R5, applying an offset to the buffer is essential + //for minimizing cache conflicts and optimizing performance.