13using namespace armcomputetensorutils;
15static constexpr arm_compute::ConvertPolicy g_AclConvertPolicy = arm_compute::ConvertPolicy::SATURATE;
20 const arm_compute::CLCompileContext& clCompileContext) :
23 this->
m_Data.ValidateInputsOutputs(
"ClConvertFp16ToFp32Workload", 1, 1);
29 m_InputProxy = std::make_unique<ICLTensorProxy>(&input);
30 m_OutputProxy = std::make_unique<ICLTensorProxy>(&output);
34 m_Layer.configure(clCompileContext, m_InputProxy.get(), m_OutputProxy.get(), g_AclConvertPolicy, 0);
48 return arm_compute::Status(arm_compute::ErrorCode::RUNTIME_ERROR,
"Input should be Float16");
52 return arm_compute::Status(arm_compute::ErrorCode::RUNTIME_ERROR,
"Output should be Float32");
55 const arm_compute::TensorInfo aclInputInfo = BuildArmComputeTensorInfo(input);
56 const arm_compute::TensorInfo aclOutputInfo = BuildArmComputeTensorInfo(output);
58 const arm_compute::Status aclStatus = arm_compute::CLDepthConvertLayer::validate(
59 &aclInputInfo, &aclOutputInfo, g_AclConvertPolicy, 0);
67 this->
m_Data.m_Inputs[slot] = tensorHandle;
75 this->
m_Data.m_Inputs[slot] = backupHandle;
84 this->
m_Data.m_Outputs[slot] = tensorHandle;
92 this->
m_Data.m_Outputs[slot] = backupHandle;
97void ClConvertFp16ToFp32Workload::Reconfigure()
101 m_InputProxy->set(&input);
102 m_OutputProxy->set(&output);
#define ARMNN_SCOPED_PROFILING_EVENT_CL_NAME_GUID(label)
Creates a profiling event that uses GetGuid() and GetName() from the calling class.
ClConvertFp16ToFp32Workload(const ConvertFp16ToFp32QueueDescriptor &descriptor, const WorkloadInfo &info, const arm_compute::CLCompileContext &clCompileContext)
void ReplaceInputTensorHandle(ITensorHandle *tensorHandle, unsigned int slot) override
void ReplaceOutputTensorHandle(ITensorHandle *tensorHandle, unsigned int slot) override
virtual void Execute() const override
virtual arm_compute::ICLTensor & GetTensor()=0
DataType GetDataType() const
Copyright (c) 2021 ARM Limited and Contributors.
arm_compute::Status ClConvertFp16ToFp32WorkloadValidate(const TensorInfo &input, const TensorInfo &output)
void RunClFunction(arm_compute::IFunction &function, const CheckLocation &location)
MultiTypedWorkload< QueueDescriptor, armnn::DataType::Float16, armnn::DataType::Float32 > Float16ToFloat32Workload
std::vector< ITensorHandle * > m_Inputs
std::vector< ITensorHandle * > m_Outputs
Contains information about TensorInfos of a layer.