30 nThreads = std::max(1, nThreads);
49 tbb::parallel_for<uint32_t>(0, nThreads, lambda, tbb::simple_partitioner());
57static std::atomic_flag timerFlag = ATOMIC_FLAG_INIT;
63 while (timerFlag.test_and_set()) {
83 timerMeta*
retVal =
nullptr;
84 while (timerFlag.test_and_set()) {
94uint32_t GPUReconstructionProcessing::getNextTimerId()
96 static std::atomic<uint32_t>
id{0};
97 return id.fetch_add(1);
115 return std::make_unique<gpu_reconstruction_kernels::threadContext>();
virtual std::unique_ptr< gpu_reconstruction_kernels::threadContext > GetThreadContext() override
void runParallelOuterLoop(bool doGPU, uint32_t nThreads, std::function< void(uint32_t)> lambda)
int32_t mActiveHostKernelThreads
std::vector< std::unique_ptr< timerMeta > > mTimers
void SetNActiveThreads(int32_t n)
int32_t getNKernelHostThreads(bool splitCores)
uint32_t mNActiveThreadsOuterLoop
uint32_t SetAndGetNActiveThreadsOuterLoop(bool condition, uint32_t max)
GPUSettingsProcessing mProcessingSettings
static int32_t getHostThreadIndex()
std::shared_ptr< GPUReconstructionThreading > mThreading
GLuint const GLchar * name
GLint GLint GLsizei GLint GLenum GLenum type
std::string to_string(gsl::span< T, Size > span)