From 6b67d25d9f6f242b566eac8b0ed0169fd65a39c1 Mon Sep 17 00:00:00 2001 From: laurent Date: Fri, 30 Jun 2023 18:46:32 +0100 Subject: [PATCH] Do not use rayon for a single thread. --- candle-core/src/cpu_backend.rs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/candle-core/src/cpu_backend.rs b/candle-core/src/cpu_backend.rs index b9300534..5af7c019 100644 --- a/candle-core/src/cpu_backend.rs +++ b/candle-core/src/cpu_backend.rs @@ -249,6 +249,12 @@ impl Map2 for MatMul { let lhs_p = &lhs[step * a_skip..]; let rhs_p = &rhs[step * b_skip..]; let dst_p = &mut dst[step * c_skip..]; + let num_threads = crate::utils::get_num_threads(); + let parallelism = if num_threads > 1 { + Parallelism::Rayon(crate::utils::get_num_threads()) + } else { + Parallelism::None + }; unsafe { gemm( /* m: usize = */ m, @@ -269,7 +275,7 @@ impl Map2 for MatMul { /* conj_dst: bool = */ false, /* conj_lhs: bool = */ false, /* conj_rhs: bool = */ false, - Parallelism::Rayon(crate::utils::get_num_threads()), + parallelism, ) } }