21.02
|
Configurable scheduler which supports multiple multithreading APIs and choosing between different schedulers at runtime. More...
#include <Scheduler.h>
Public Types | |
enum | Type { ST, CPP, OMP, CUSTOM } |
Scheduler type. More... | |
Static Public Member Functions | |
static void | set (std::shared_ptr< IScheduler > scheduler) |
Sets the user defined scheduler and makes it the active scheduler. More... | |
static IScheduler & | get () |
Access the scheduler singleton. More... | |
static void | set (Type t) |
Set the active scheduler. More... | |
static Type | get_type () |
Returns the type of the active scheduler. More... | |
static bool | is_available (Type t) |
Returns true if the given scheduler type is supported. More... | |
Configurable scheduler which supports multiple multithreading APIs and choosing between different schedulers at runtime.
Definition at line 35 of file Scheduler.h.
|
strong |
Scheduler type.
Enumerator | |
---|---|
ST | Single thread. |
CPP | C++11 threads. |
OMP | OpenMP. |
CUSTOM | Provided by the user. |
Definition at line 39 of file Scheduler.h.
|
static |
Access the scheduler singleton.
Definition at line 94 of file Scheduler.cpp.
References ARM_COMPUTE_ERROR, and Scheduler::CUSTOM.
Referenced by CpuPoolingAssemblyDispatch::configure(), NEHistogram::configure(), NEWinogradConvolutionLayer::configure(), NEConvolutionLayer::get_convolution_method(), main(), NEWinogradConvolutionLayer::prepare(), NEGEMM::prepare(), NEGEMMLowpMatrixMultiplyCore::prepare(), NEQLSTMLayer::prepare(), ICPPSimpleFunction::run(), INESimpleFunction::run(), NEFillBorder::run(), INEOperator::run(), NELogicalAnd::run(), NEMeanStdDev::run(), NEHistogram::run(), CpuConcatenate::run(), NEDerivative::run(), NEEqualizeHistogram::run(), NEROIPoolingLayer::run(), NEConvertFullyConnectedWeights::run(), NESpaceToDepthLayer::run(), NEHOGDescriptor::run(), NEHOGGradient::run(), NERange::run(), NEGaussian5x5::run(), CpuPoolingAssemblyDispatch::run(), NEMinMaxLocation::run(), NESobel7x7::run(), NESobel5x5::run(), NEL2NormalizeLayer::run(), NEMaxUnpoolingLayer::run(), NEReductionOperation::run(), NEFFT1D::run(), NEFastCorners::run(), NEStackLayer::run(), NENormalizationLayer::run(), NEInstanceNormalizationLayer::run(), NEWinogradConvolutionLayer::run(), CpuSoftmaxGeneric< IS_LOG >::run(), CpuPooling::run(), NECannyEdge::run(), CPPBoxWithNonMaximaSuppressionLimit::run(), NEConvolutionLayerReshapeWeights::run(), NEPadLayer::run(), NEOpticalFlow::run(), NECropResize::run(), NEFuseBatchNormalization::run(), NEBatchNormalizationLayer::run(), NEHOGMultiDetection::run(), NEHarrisCorners::run(), NESpaceToBatchLayer::run(), NELogicalOr::run(), NEGEMM::run(), NEDirectConvolutionLayer::run(), CLHarrisCorners::run(), NEGenerateProposalsLayer::run(), NEGaussianPyramidHalf::run(), NEGEMMLowpMatrixMultiplyCore::run(), CLHOGMultiDetection::run(), NEConvolutionSquare< matrix_size >::run(), NELogicalNot::run(), NEQLSTMLayer::run(), NEGEMMConvolutionLayer::run(), arm_compute::utils::schedule_kernel_on_ctx(), NEDeviceBackend::setup_backend_context(), and SchedulerClock< output_timestamps >::test_start().
|
static |
Returns the type of the active scheduler.
Definition at line 89 of file Scheduler.cpp.
Referenced by SchedulerClock< output_timestamps >::test_start().
|
static |
Returns true if the given scheduler type is supported.
False otherwise.
[in] | t | the type of the scheduler to check. |
Definition at line 77 of file Scheduler.cpp.
References Scheduler::CUSTOM.
Referenced by Scheduler::set().
|
static |
Sets the user defined scheduler and makes it the active scheduler.
[in] | scheduler | A shared pointer to a custom scheduler implemented by the user. |
Definition at line 126 of file Scheduler.cpp.
References Scheduler::CUSTOM.
Referenced by SchedulerClock< output_timestamps >::test_start(), and SchedulerClock< output_timestamps >::test_stop().
|
static |
Set the active scheduler.
Only one scheduler can be enabled at any time.
[in] | t | the type of the scheduler to be enabled. |
Definition at line 71 of file Scheduler.cpp.
References ARM_COMPUTE_ERROR_ON, Scheduler::is_available(), and tf_frozen_model_extractor::t.