mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-04-29 15:24:51 +08:00
Fix Thread tests
This commit is contained in:
parent
c4d84dfddc
commit
5a9f66fb35
@ -348,6 +348,7 @@ using std::ptrdiff_t;
|
|||||||
#include "src/Core/TriangularMatrix.h"
|
#include "src/Core/TriangularMatrix.h"
|
||||||
#include "src/Core/SelfAdjointView.h"
|
#include "src/Core/SelfAdjointView.h"
|
||||||
#include "src/Core/products/GeneralBlockPanelKernel.h"
|
#include "src/Core/products/GeneralBlockPanelKernel.h"
|
||||||
|
#include "src/Core/DeviceWrapper.h"
|
||||||
#ifdef EIGEN_GEMM_THREADPOOL
|
#ifdef EIGEN_GEMM_THREADPOOL
|
||||||
#include "ThreadPool"
|
#include "ThreadPool"
|
||||||
#endif
|
#endif
|
||||||
@ -404,7 +405,6 @@ using std::ptrdiff_t;
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "src/Core/GlobalFunctions.h"
|
#include "src/Core/GlobalFunctions.h"
|
||||||
#include "src/Core/DeviceWrapper.h"
|
|
||||||
// IWYU pragma: end_exports
|
// IWYU pragma: end_exports
|
||||||
|
|
||||||
#include "src/Core/util/ReenableStupidWarnings.h"
|
#include "src/Core/util/ReenableStupidWarnings.h"
|
||||||
|
@ -77,7 +77,7 @@ struct CoreThreadPoolDevice {
|
|||||||
Index size = end - begin;
|
Index size = end - begin;
|
||||||
eigen_assert(size % PacketSize == 0 && "this function assumes size is a multiple of PacketSize");
|
eigen_assert(size % PacketSize == 0 && "this function assumes size is a multiple of PacketSize");
|
||||||
Index mid = begin + numext::round_down(size >> 1, PacketSize);
|
Index mid = begin + numext::round_down(size >> 1, PacketSize);
|
||||||
Task right = [=, this, &f, &barrier]() {
|
Task right = [this, mid, end, &f, &barrier, level]() {
|
||||||
parallelForImpl<UnaryFunctor, PacketSize>(mid, end, f, barrier, level);
|
parallelForImpl<UnaryFunctor, PacketSize>(mid, end, f, barrier, level);
|
||||||
};
|
};
|
||||||
m_pool.Schedule(std::move(right));
|
m_pool.Schedule(std::move(right));
|
||||||
@ -96,7 +96,7 @@ struct CoreThreadPoolDevice {
|
|||||||
Index outerSize = outerEnd - outerBegin;
|
Index outerSize = outerEnd - outerBegin;
|
||||||
if (outerSize > 1) {
|
if (outerSize > 1) {
|
||||||
Index outerMid = outerBegin + (outerSize >> 1);
|
Index outerMid = outerBegin + (outerSize >> 1);
|
||||||
Task right = [=, this, &f, &barrier]() {
|
Task right = [this, &f, &barrier, outerMid, outerEnd, innerBegin, innerEnd, level]() {
|
||||||
parallelForImpl<BinaryFunctor, PacketSize>(outerMid, outerEnd, innerBegin, innerEnd, f, barrier, level);
|
parallelForImpl<BinaryFunctor, PacketSize>(outerMid, outerEnd, innerBegin, innerEnd, f, barrier, level);
|
||||||
};
|
};
|
||||||
m_pool.Schedule(std::move(right));
|
m_pool.Schedule(std::move(right));
|
||||||
@ -105,7 +105,7 @@ struct CoreThreadPoolDevice {
|
|||||||
Index innerSize = innerEnd - innerBegin;
|
Index innerSize = innerEnd - innerBegin;
|
||||||
eigen_assert(innerSize % PacketSize == 0 && "this function assumes innerSize is a multiple of PacketSize");
|
eigen_assert(innerSize % PacketSize == 0 && "this function assumes innerSize is a multiple of PacketSize");
|
||||||
Index innerMid = innerBegin + numext::round_down(innerSize >> 1, PacketSize);
|
Index innerMid = innerBegin + numext::round_down(innerSize >> 1, PacketSize);
|
||||||
Task right = [=, this, &f, &barrier]() {
|
Task right = [this, &f, &barrier, outerBegin, outerEnd, innerMid, innerEnd, level]() {
|
||||||
parallelForImpl<BinaryFunctor, PacketSize>(outerBegin, outerEnd, innerMid, innerEnd, f, barrier, level);
|
parallelForImpl<BinaryFunctor, PacketSize>(outerBegin, outerEnd, innerMid, innerEnd, f, barrier, level);
|
||||||
};
|
};
|
||||||
m_pool.Schedule(std::move(right));
|
m_pool.Schedule(std::move(right));
|
||||||
|
Loading…
x
Reference in New Issue
Block a user