#ifdef ARMCOMPUTENEON_ENABLED
#include "workloads/NeonAdditionWorkload.hpp"
#include "workloads/NeonActivationWorkload.hpp"
-#include "workloads/NeonBatchNormalizationFloatWorkload.hpp"
+#include "workloads/NeonBatchNormalizationWorkload.hpp"
#include "workloads/NeonConvolution2dWorkload.hpp"
#include "workloads/NeonDepthwiseConvolutionWorkload.hpp"
#include "workloads/NeonL2NormalizationFloatWorkload.hpp"
std::unique_ptr<armnn::IWorkload> NeonWorkloadFactory::CreateBatchNormalization(
const BatchNormalizationQueueDescriptor& descriptor, const WorkloadInfo& info) const
{
- return MakeWorkloadHelper<NeonBatchNormalizationFloatWorkload, NullWorkload>(descriptor, info);
+ return std::make_unique<NeonBatchNormalizationWorkload>(descriptor, info);
}
std::unique_ptr<armnn::IWorkload> NeonWorkloadFactory::CreateMemCopy(const MemCopyQueueDescriptor& descriptor,
NeonWorkloadFactory.cpp \
workloads/NeonActivationWorkload.cpp \
workloads/NeonAdditionWorkload.cpp \
- workloads/NeonBatchNormalizationFloatWorkload.cpp \
+ workloads/NeonBatchNormalizationWorkload.cpp \
workloads/NeonConstantWorkload.cpp \
workloads/NeonConvertFp16ToFp32Workload.cpp \
workloads/NeonConvertFp32ToFp16Workload.cpp \
#ifdef __ARM_FEATURE_FP16_VECTOR_ARITHMETIC
BOOST_AUTO_TEST_CASE(CreateBatchNormalizationFloat16NchwWorkload)
{
- NeonCreateBatchNormalizationWorkloadTest<NeonBatchNormalizationFloatWorkload, DataType::Float16>(DataLayout::NCHW);
+ NeonCreateBatchNormalizationWorkloadTest<NeonBatchNormalizationWorkload, DataType::Float16>(DataLayout::NCHW);
}
BOOST_AUTO_TEST_CASE(CreateBatchNormalizationFloat16NhwcWorkload)
{
- NeonCreateBatchNormalizationWorkloadTest<NeonBatchNormalizationFloatWorkload, DataType::Float16>(DataLayout::NHWC);
+ NeonCreateBatchNormalizationWorkloadTest<NeonBatchNormalizationWorkload, DataType::Float16>(DataLayout::NHWC);
}
#endif
BOOST_AUTO_TEST_CASE(CreateBatchNormalizationFloatNchwWorkload)
{
- NeonCreateBatchNormalizationWorkloadTest<NeonBatchNormalizationFloatWorkload, DataType::Float32>(DataLayout::NCHW);
+ NeonCreateBatchNormalizationWorkloadTest<NeonBatchNormalizationWorkload, DataType::Float32>(DataLayout::NCHW);
}
BOOST_AUTO_TEST_CASE(CreateBatchNormalizationFloatNhwcWorkload)
{
- NeonCreateBatchNormalizationWorkloadTest<NeonBatchNormalizationFloatWorkload, DataType::Float32>(DataLayout::NHWC);
+ NeonCreateBatchNormalizationWorkloadTest<NeonBatchNormalizationWorkload, DataType::Float32>(DataLayout::NHWC);
}
template <typename armnn::DataType DataType>
NeonActivationWorkload.hpp
NeonAdditionWorkload.cpp
NeonAdditionWorkload.hpp
- NeonBatchNormalizationFloatWorkload.cpp
- NeonBatchNormalizationFloatWorkload.hpp
+ NeonBatchNormalizationWorkload.cpp
+ NeonBatchNormalizationWorkload.hpp
NeonConstantWorkload.cpp
NeonConstantWorkload.hpp
NeonConvertFp16ToFp32Workload.cpp
// SPDX-License-Identifier: MIT
//
-#include "NeonBatchNormalizationFloatWorkload.hpp"
+#include "NeonBatchNormalizationWorkload.hpp"
#include <backendsCommon/CpuTensorHandle.hpp>
#include <aclCommon/ArmComputeTensorUtils.hpp>
#include <armnn/ArmNN.hpp>
descriptor.m_Eps);
}
-NeonBatchNormalizationFloatWorkload::NeonBatchNormalizationFloatWorkload(
+NeonBatchNormalizationWorkload::NeonBatchNormalizationWorkload(
const BatchNormalizationQueueDescriptor& descriptor, const WorkloadInfo& info)
- : FloatWorkload<BatchNormalizationQueueDescriptor>(descriptor, info)
+ : BaseWorkload<BatchNormalizationQueueDescriptor>(descriptor, info)
{
- m_Data.ValidateInputsOutputs("NeonBatchNormalizationFloatWorkload", 1, 1);
+ m_Data.ValidateInputsOutputs("NeonBatchNormalizationWorkload", 1, 1);
arm_compute::ITensor& input = boost::polymorphic_downcast<INeonTensorHandle*>(m_Data.m_Inputs[0])->GetTensor();
arm_compute::ITensor& output = boost::polymorphic_downcast<INeonTensorHandle*>(m_Data.m_Outputs[0])->GetTensor();
FreeUnusedTensors();
}
-void NeonBatchNormalizationFloatWorkload::Execute() const
+void NeonBatchNormalizationWorkload::Execute() const
{
- ARMNN_SCOPED_PROFILING_EVENT_NEON("NeonBatchNormalizationFloatWorkload_Execute");
+ ARMNN_SCOPED_PROFILING_EVENT_NEON("NeonBatchNormalizationWorkload_Execute");
m_Layer.run();
}
-void NeonBatchNormalizationFloatWorkload::FreeUnusedTensors()
+void NeonBatchNormalizationWorkload::FreeUnusedTensors()
{
FreeTensorIfUnused(m_Mean);
FreeTensorIfUnused(m_Variance);
const TensorInfo& gamma,
const BatchNormalizationDescriptor& descriptor);
-class NeonBatchNormalizationFloatWorkload : public FloatWorkload<BatchNormalizationQueueDescriptor>
+class NeonBatchNormalizationWorkload : public BaseWorkload<BatchNormalizationQueueDescriptor>
{
public:
- NeonBatchNormalizationFloatWorkload(const BatchNormalizationQueueDescriptor& descriptor,
- const WorkloadInfo& info);
+ NeonBatchNormalizationWorkload(const BatchNormalizationQueueDescriptor& descriptor,
+ const WorkloadInfo& info);
virtual void Execute() const override;
private:
} //namespace armnn
-
-
#pragma once
#include "NeonActivationWorkload.hpp"
#include "NeonAdditionWorkload.hpp"
-#include "NeonBatchNormalizationFloatWorkload.hpp"
+#include "NeonBatchNormalizationWorkload.hpp"
#include "NeonConstantWorkload.hpp"
#include "NeonConvertFp16ToFp32Workload.hpp"
#include "NeonConvertFp32ToFp16Workload.hpp"