ArmNN
 20.02
RefBatchNormalizationWorkload Class Reference

#include <RefBatchNormalizationWorkload.hpp>

Inheritance diagram for RefBatchNormalizationWorkload:
BaseWorkload< BatchNormalizationQueueDescriptor > IWorkload

Public Member Functions

 RefBatchNormalizationWorkload (const BatchNormalizationQueueDescriptor &descriptor, const WorkloadInfo &info)
 
virtual void Execute () const override
 
- Public Member Functions inherited from BaseWorkload< BatchNormalizationQueueDescriptor >
 BaseWorkload (const BatchNormalizationQueueDescriptor &descriptor, const WorkloadInfo &info)
 
void PostAllocationConfigure () override
 
const BatchNormalizationQueueDescriptorGetData () const
 
profiling::ProfilingGuid GetGuid () const final
 
- Public Member Functions inherited from IWorkload
virtual ~IWorkload ()
 
virtual void RegisterDebugCallback (const DebugCallbackFunction &)
 

Additional Inherited Members

- Protected Attributes inherited from BaseWorkload< BatchNormalizationQueueDescriptor >
const BatchNormalizationQueueDescriptor m_Data
 
const profiling::ProfilingGuid m_Guid
 

Detailed Description

Definition at line 14 of file RefBatchNormalizationWorkload.hpp.

Constructor & Destructor Documentation

◆ RefBatchNormalizationWorkload()

RefBatchNormalizationWorkload ( const BatchNormalizationQueueDescriptor descriptor,
const WorkloadInfo info 
)
explicit

Definition at line 16 of file RefBatchNormalizationWorkload.cpp.

18  : BaseWorkload(descriptor, info)
19  , m_Mean (std::make_unique<ScopedCpuTensorHandle>(*(descriptor.m_Mean)))
20  , m_Variance(std::make_unique<ScopedCpuTensorHandle>(*(descriptor.m_Variance)))
21  , m_Beta (std::make_unique<ScopedCpuTensorHandle>(*(descriptor.m_Beta)))
22  , m_Gamma (std::make_unique<ScopedCpuTensorHandle>(*(descriptor.m_Gamma)))
23 {}
BaseWorkload(const BatchNormalizationQueueDescriptor &descriptor, const WorkloadInfo &info)
Definition: Workload.hpp:32

Member Function Documentation

◆ Execute()

void Execute ( ) const
overridevirtual

Implements IWorkload.

Definition at line 25 of file RefBatchNormalizationWorkload.cpp.

References ARMNN_SCOPED_PROFILING_EVENT, armnn::BatchNormImpl(), armnn::CpuRef, armnn::GetTensorInfo(), BaseWorkload< BatchNormalizationQueueDescriptor >::m_Data, QueueDescriptor::m_Inputs, and QueueDescriptor::m_Outputs.

26 {
27  ARMNN_SCOPED_PROFILING_EVENT(Compute::CpuRef, "RefBatchNormalizationWorkload_Execute");
28 
29  std::unique_ptr<Decoder<float>> meanDecoder = MakeDecoder<float>(m_Mean->GetTensorInfo(),
30  m_Mean->Map(true));
31  std::unique_ptr<Decoder<float>> varianceDecoder = MakeDecoder<float>(m_Variance->GetTensorInfo(),
32  m_Variance->Map(true));
33  std::unique_ptr<Decoder<float>> gammaDecoder = MakeDecoder<float>(m_Gamma->GetTensorInfo(),
34  m_Gamma->Map(true));
35  std::unique_ptr<Decoder<float>> betaDecoder = MakeDecoder<float>(m_Beta->GetTensorInfo(),
36  m_Beta->Map(true));
37  std::unique_ptr<Decoder<float>> inputDecoder = MakeDecoder<float>(GetTensorInfo(m_Data.m_Inputs[0]),
38  m_Data.m_Inputs[0]->Map());
39  std::unique_ptr<Encoder<float>> outputEncoder = MakeEncoder<float>(GetTensorInfo(m_Data.m_Outputs[0]),
40  m_Data.m_Outputs[0]->Map());
41 
42  BatchNormImpl(m_Data, *meanDecoder, *varianceDecoder, *betaDecoder, *gammaDecoder, *inputDecoder, *outputEncoder);
43 }
CPU Execution: Reference C++ kernels.
const BatchNormalizationQueueDescriptor m_Data
Definition: Workload.hpp:46
void BatchNormImpl(const BatchNormalizationQueueDescriptor &data, Decoder< float > &meanDecoder, Decoder< float > &varianceDecoder, Decoder< float > &betaDecoder, Decoder< float > &gammaDecoder, Decoder< float > &inputDecoder, Encoder< float > &outputEncoder)
const TensorInfo & GetTensorInfo(const ITensorHandle *tensorHandle)
float32 helpers
#define ARMNN_SCOPED_PROFILING_EVENT(backendId, name)
Definition: Profiling.hpp:169
std::vector< ITensorHandle * > m_Outputs
std::vector< ITensorHandle * > m_Inputs

The documentation for this class was generated from the following files: