void WaitForRegionsToFinishProcessing (ProcessorQueue &analysis_queue, ComputationPlanner &analysis_compute_plan) { // wait for all of the regions to finish processing before moving on to the next // image // Need better logic...This is just following the different steps involved in signal processing analysis_queue.GetCpuQueue()->WaitTillDone(); if (analysis_queue.GetGpuQueue()) analysis_queue.GetGpuQueue()->WaitTillDone(); analysis_queue.GetCpuQueue()->WaitTillDone(); if (analysis_queue.GetGpuQueue()) analysis_queue.GetGpuQueue()->WaitTillDone(); // if (analysis_queue.GetSingleFitGpuQueue()) // analysis_queue.GetSingleFitGpuQueue()->WaitTillDone(); if (analysis_compute_plan.use_gpu_acceleration) analysis_queue.GetCpuQueue()->WaitTillDone(); }
void SpinUpGPUThreads(ProcessorQueue &analysis_queue, ComputationPlanner &analysis_compute_plan) { if (analysis_compute_plan.use_gpu_acceleration) { // create gpu thread for multi flow fit CreateGpuThreadsForFitType(analysis_queue.GetGpuInfo(), analysis_compute_plan.numBkgWorkers_gpu, analysis_queue.GetGpuQueue(), analysis_compute_plan.valid_devices); // create gpu thread for single flow fit /* CreateGpuThreadsForFitType(analysis_queue.GetSingleFitGpuInfo(), GPU_SINGLE_FLOW_FIT, analysis_compute_plan.numSingleFlowFitGpuWorkers, analysis_queue.GetSingleFitGpuQueue(), analysis_compute_plan.valid_devices);*/ } }