From 3cf6bb6f1ce9cd3cd6bdc43cdcfae7f4822ff2c3 Mon Sep 17 00:00:00 2001 From: Rasmus Munk Larsen Date: Wed, 15 Nov 2023 21:45:37 +0000 Subject: [PATCH] Fix a bug in commit 76e8c0455396446f8166c798da5efe879e010bdc: --- Eigen/src/Core/products/Parallelizer.h | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/Eigen/src/Core/products/Parallelizer.h b/Eigen/src/Core/products/Parallelizer.h index 59335aff6..3e768279d 100644 --- a/Eigen/src/Core/products/Parallelizer.h +++ b/Eigen/src/Core/products/Parallelizer.h @@ -99,7 +99,16 @@ namespace internal { #if defined(EIGEN_USE_BLAS) || (!defined(EIGEN_HAS_OPENMP) && !defined(EIGEN_GEMM_THREADPOOL)) -inline void manage_multi_threading(Action /*unused*/, int* /*unused*/) {} +inline void manage_multi_threading(Action action, int* v) { + if (action == SetAction) { + eigen_internal_assert(v != nullptr); + } else if (action == GetAction) { + eigen_internal_assert(v != nullptr); + *v = 1; + } else { + eigen_internal_assert(false); + } +} template struct GemmParallelInfo {}; template EIGEN_STRONG_INLINE void parallelize_gemm(const Functor& func, Index rows, Index cols, @@ -212,7 +221,7 @@ EIGEN_STRONG_INLINE void parallelize_gemm(const Functor& func, Index rows, Index // Note that the actual number of threads might be lower than the number of // requested ones Index actual_threads = omp_get_num_threads(); - GemmParallelInfo info(i, int(actual_threads), task_info); + GemmParallelInfo info(i, static_cast(actual_threads), task_info); Index blockCols = (cols / actual_threads) & ~Index(0x3); Index blockRows = (rows / actual_threads); @@ -237,7 +246,7 @@ EIGEN_STRONG_INLINE void parallelize_gemm(const Functor& func, Index rows, Index auto task = [=, &func, &barrier, &task_info](int i) { Index actual_threads = threads; - GemmParallelInfo info(i, int(actual_threads), task_info); + GemmParallelInfo info(i, static_cast(actual_threads), task_info); Index blockCols = (cols / actual_threads) & ~Index(0x3); Index blockRows = (rows / actual_threads); blockRows = (blockRows/Functor::Traits::mr)*Functor::Traits::mr;