From 73cdeae1d3756187cffd2a943ed635c67cb0c9eb Mon Sep 17 00:00:00 2001 From: Benoit Jacob Date: Tue, 31 Mar 2015 11:17:23 -0400 Subject: [PATCH] Only use blocking sizes LUTs for single-thread products for now --- Eigen/src/Core/products/LookupBlockingSizesTable.h | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Eigen/src/Core/products/LookupBlockingSizesTable.h b/Eigen/src/Core/products/LookupBlockingSizesTable.h index 5ab4525df..39a53c8f1 100644 --- a/Eigen/src/Core/products/LookupBlockingSizesTable.h +++ b/Eigen/src/Core/products/LookupBlockingSizesTable.h @@ -79,6 +79,14 @@ template bool lookupBlockingSizesFromTable(Index& k, Index& m, Index& n, Index num_threads) { + if (num_threads > 1) { + // We don't currently have lookup tables recorded for multithread performance, + // and we have confirmed experimentally that our single-thread-recorded LUTs are + // poor for multithread performance, and our LUTs don't currently contain + // any annotation about multithread status (FIXME - we need that). + // So for now, we just early-return here. + return false; + } return LookupBlockingSizesFromTableImpl::run(k, m, n, num_threads); }