aboutsummaryrefslogtreecommitdiff
path: root/src/armnn/backends/RefWorkloads
diff options
context:
space:
mode:
Diffstat (limited to 'src/armnn/backends/RefWorkloads')
-rw-r--r--src/armnn/backends/RefWorkloads/RefAdditionFloat32Workload.cpp31
-rw-r--r--src/armnn/backends/RefWorkloads/RefAdditionFloat32Workload.hpp21
-rw-r--r--src/armnn/backends/RefWorkloads/RefAdditionUint8Workload.cpp41
-rw-r--r--src/armnn/backends/RefWorkloads/RefAdditionUint8Workload.hpp21
-rw-r--r--src/armnn/backends/RefWorkloads/RefArithmeticWorkload.cpp69
-rw-r--r--src/armnn/backends/RefWorkloads/RefArithmeticWorkload.hpp122
-rw-r--r--src/armnn/backends/RefWorkloads/RefDivisionFloat32Workload.cpp31
-rw-r--r--src/armnn/backends/RefWorkloads/RefDivisionFloat32Workload.hpp21
-rw-r--r--src/armnn/backends/RefWorkloads/RefDivisionUint8Workload.cpp41
-rw-r--r--src/armnn/backends/RefWorkloads/RefDivisionUint8Workload.hpp21
-rw-r--r--src/armnn/backends/RefWorkloads/RefMultiplicationFloat32Workload.cpp31
-rw-r--r--src/armnn/backends/RefWorkloads/RefMultiplicationFloat32Workload.hpp21
-rw-r--r--src/armnn/backends/RefWorkloads/RefMultiplicationUint8Workload.cpp41
-rw-r--r--src/armnn/backends/RefWorkloads/RefMultiplicationUint8Workload.hpp21
-rw-r--r--src/armnn/backends/RefWorkloads/RefSubtractionFloat32Workload.cpp31
-rw-r--r--src/armnn/backends/RefWorkloads/RefSubtractionFloat32Workload.hpp21
-rw-r--r--src/armnn/backends/RefWorkloads/RefSubtractionUint8Workload.cpp41
-rw-r--r--src/armnn/backends/RefWorkloads/RefSubtractionUint8Workload.hpp21
18 files changed, 191 insertions, 456 deletions
diff --git a/src/armnn/backends/RefWorkloads/RefAdditionFloat32Workload.cpp b/src/armnn/backends/RefWorkloads/RefAdditionFloat32Workload.cpp
deleted file mode 100644
index 21c7533c0f..0000000000
--- a/src/armnn/backends/RefWorkloads/RefAdditionFloat32Workload.cpp
+++ /dev/null
@@ -1,31 +0,0 @@
-//
-// Copyright © 2017 Arm Ltd. All rights reserved.
-// SPDX-License-Identifier: MIT
-//
-
-#include "RefAdditionFloat32Workload.hpp"
-
-#include "ArithmeticFunction.hpp"
-#include "RefWorkloadUtils.hpp"
-
-#include "Profiling.hpp"
-
-namespace armnn
-{
-
-void RefAdditionFloat32Workload::Execute() const
-{
- ARMNN_SCOPED_PROFILING_EVENT(Compute::CpuRef, "RefAdditionFloat32Workload_Execute");
-
- const TensorShape& inShape0 = GetTensorInfo(m_Data.m_Inputs[0]).GetShape();
- const TensorShape& inShape1 = GetTensorInfo(m_Data.m_Inputs[1]).GetShape();
- const TensorShape& outShape = GetTensorInfo(m_Data.m_Outputs[0]).GetShape();
-
- const float* inData0 = GetInputTensorDataFloat(0, m_Data);
- const float* inData1 = GetInputTensorDataFloat(1, m_Data);
- float* outData = GetOutputTensorDataFloat(0, m_Data);
-
- ArithmeticFunction<std::plus<float>>(inShape0, inShape1, outShape, inData0, inData1, outData);
-}
-
-} //namespace armnn
diff --git a/src/armnn/backends/RefWorkloads/RefAdditionFloat32Workload.hpp b/src/armnn/backends/RefWorkloads/RefAdditionFloat32Workload.hpp
deleted file mode 100644
index 6250bb64aa..0000000000
--- a/src/armnn/backends/RefWorkloads/RefAdditionFloat32Workload.hpp
+++ /dev/null
@@ -1,21 +0,0 @@
-//
-// Copyright © 2017 Arm Ltd. All rights reserved.
-// SPDX-License-Identifier: MIT
-//
-
-#pragma once
-
-#include "backends/Workload.hpp"
-#include "backends/WorkloadData.hpp"
-
-namespace armnn
-{
-
-class RefAdditionFloat32Workload : public Float32Workload<AdditionQueueDescriptor>
-{
-public:
- using Float32Workload<AdditionQueueDescriptor>::Float32Workload;
- virtual void Execute() const override;
-};
-
-} //namespace armnn
diff --git a/src/armnn/backends/RefWorkloads/RefAdditionUint8Workload.cpp b/src/armnn/backends/RefWorkloads/RefAdditionUint8Workload.cpp
deleted file mode 100644
index 116a5f14cb..0000000000
--- a/src/armnn/backends/RefWorkloads/RefAdditionUint8Workload.cpp
+++ /dev/null
@@ -1,41 +0,0 @@
-//
-// Copyright © 2017 Arm Ltd. All rights reserved.
-// SPDX-License-Identifier: MIT
-//
-
-#include "RefAdditionUint8Workload.hpp"
-
-#include "ArithmeticFunction.hpp"
-#include "RefWorkloadUtils.hpp"
-
-#include "Profiling.hpp"
-
-#include <vector>
-
-namespace armnn
-{
-
-void RefAdditionUint8Workload::Execute() const
-{
- ARMNN_SCOPED_PROFILING_EVENT(Compute::CpuRef, "RefAdditionUint8Workload_Execute");
-
- const TensorInfo& inputInfo0 = GetTensorInfo(m_Data.m_Inputs[0]);
- const TensorInfo& inputInfo1 = GetTensorInfo(m_Data.m_Inputs[1]);
- const TensorInfo& outputInfo = GetTensorInfo(m_Data.m_Outputs[0]);
-
- auto dequant0 = Dequantize(GetInputTensorDataU8(0, m_Data), inputInfo0);
- auto dequant1 = Dequantize(GetInputTensorDataU8(1, m_Data), inputInfo1);
-
- std::vector<float> results(outputInfo.GetNumElements());
-
- ArithmeticFunction<std::plus<float>>(inputInfo0.GetShape(),
- inputInfo1.GetShape(),
- outputInfo.GetShape(),
- dequant0.data(),
- dequant1.data(),
- results.data());
-
- Quantize(GetOutputTensorDataU8(0, m_Data), results.data(), outputInfo);
-}
-
-} //namespace armnn
diff --git a/src/armnn/backends/RefWorkloads/RefAdditionUint8Workload.hpp b/src/armnn/backends/RefWorkloads/RefAdditionUint8Workload.hpp
deleted file mode 100644
index 0701681e63..0000000000
--- a/src/armnn/backends/RefWorkloads/RefAdditionUint8Workload.hpp
+++ /dev/null
@@ -1,21 +0,0 @@
-//
-// Copyright © 2017 Arm Ltd. All rights reserved.
-// SPDX-License-Identifier: MIT
-//
-
-#pragma once
-
-#include "backends/Workload.hpp"
-#include "backends/WorkloadData.hpp"
-
-namespace armnn
-{
-
-class RefAdditionUint8Workload : public Uint8Workload<AdditionQueueDescriptor>
-{
-public:
- using Uint8Workload<AdditionQueueDescriptor>::Uint8Workload;
- virtual void Execute() const override;
-};
-
-} //namespace armnn
diff --git a/src/armnn/backends/RefWorkloads/RefArithmeticWorkload.cpp b/src/armnn/backends/RefWorkloads/RefArithmeticWorkload.cpp
new file mode 100644
index 0000000000..6c39fa1186
--- /dev/null
+++ b/src/armnn/backends/RefWorkloads/RefArithmeticWorkload.cpp
@@ -0,0 +1,69 @@
+//
+// Copyright © 2017 Arm Ltd. All rights reserved.
+// SPDX-License-Identifier: MIT
+//
+
+#include "RefArithmeticWorkload.hpp"
+#include "ArithmeticFunction.hpp"
+#include "RefWorkloadUtils.hpp"
+#include "Profiling.hpp"
+#include <vector>
+
+namespace armnn
+{
+
+template <typename ParentDescriptor, typename Functor>
+void BaseFloat32ArithmeticWorkload<ParentDescriptor, Functor>::ExecuteImpl(const char * debugString) const
+{
+ ARMNN_SCOPED_PROFILING_EVENT(Compute::CpuRef, debugString);
+
+ auto data = Float32Workload<ParentDescriptor>::GetData();
+ const TensorShape& inShape0 = GetTensorInfo(data.m_Inputs[0]).GetShape();
+ const TensorShape& inShape1 = GetTensorInfo(data.m_Inputs[1]).GetShape();
+ const TensorShape& outShape = GetTensorInfo(data.m_Outputs[0]).GetShape();
+
+ const float* inData0 = GetInputTensorDataFloat(0, data);
+ const float* inData1 = GetInputTensorDataFloat(1, data);
+ float* outData = GetOutputTensorDataFloat(0, data);
+
+ ArithmeticFunction<Functor>(inShape0, inShape1, outShape, inData0, inData1, outData);
+}
+
+template <typename ParentDescriptor, typename Functor>
+void BaseUint8ArithmeticWorkload<ParentDescriptor, Functor>::ExecuteImpl(const char * debugString) const
+{
+ ARMNN_SCOPED_PROFILING_EVENT(Compute::CpuRef, debugString);
+
+ auto data = Uint8Workload<ParentDescriptor>::GetData();
+ const TensorInfo& inputInfo0 = GetTensorInfo(data.m_Inputs[0]);
+ const TensorInfo& inputInfo1 = GetTensorInfo(data.m_Inputs[1]);
+ const TensorInfo& outputInfo = GetTensorInfo(data.m_Outputs[0]);
+
+ auto dequant0 = Dequantize(GetInputTensorDataU8(0, data), inputInfo0);
+ auto dequant1 = Dequantize(GetInputTensorDataU8(1, data), inputInfo1);
+
+ std::vector<float> results(outputInfo.GetNumElements());
+
+ ArithmeticFunction<Functor>(inputInfo0.GetShape(),
+ inputInfo1.GetShape(),
+ outputInfo.GetShape(),
+ dequant0.data(),
+ dequant1.data(),
+ results.data());
+
+ Quantize(GetOutputTensorDataU8(0, data), results.data(), outputInfo);
+}
+
+}
+
+template class armnn::BaseFloat32ArithmeticWorkload<armnn::AdditionQueueDescriptor, std::plus<float>>;
+template class armnn::BaseUint8ArithmeticWorkload<armnn::AdditionQueueDescriptor, std::plus<float>>;
+
+template class armnn::BaseFloat32ArithmeticWorkload<armnn::SubtractionQueueDescriptor, std::minus<float>>;
+template class armnn::BaseUint8ArithmeticWorkload<armnn::SubtractionQueueDescriptor, std::minus<float>>;
+
+template class armnn::BaseFloat32ArithmeticWorkload<armnn::MultiplicationQueueDescriptor, std::multiplies<float>>;
+template class armnn::BaseUint8ArithmeticWorkload<armnn::MultiplicationQueueDescriptor, std::multiplies<float>>;
+
+template class armnn::BaseFloat32ArithmeticWorkload<armnn::DivisionQueueDescriptor, std::divides<float>>;
+template class armnn::BaseUint8ArithmeticWorkload<armnn::DivisionQueueDescriptor, std::divides<float>>;
diff --git a/src/armnn/backends/RefWorkloads/RefArithmeticWorkload.hpp b/src/armnn/backends/RefWorkloads/RefArithmeticWorkload.hpp
new file mode 100644
index 0000000000..7197b7a883
--- /dev/null
+++ b/src/armnn/backends/RefWorkloads/RefArithmeticWorkload.hpp
@@ -0,0 +1,122 @@
+//
+// Copyright © 2017 Arm Ltd. All rights reserved.
+// SPDX-License-Identifier: MIT
+//
+
+#pragma once
+
+#include <armnn/Types.hpp>
+#include "backends/StringMapping.hpp"
+#include "backends/Workload.hpp"
+#include "backends/WorkloadData.hpp"
+
+namespace armnn
+{
+
+template <typename Functor,
+ typename armnn::DataType DataType,
+ typename ParentDescriptor,
+ typename armnn::StringMapping::Id DebugString>
+class RefArithmeticWorkload
+{
+ // Needs specialization. The default is empty on purpose.
+};
+
+template <typename ParentDescriptor, typename Functor>
+class BaseFloat32ArithmeticWorkload : public Float32Workload<ParentDescriptor>
+{
+public:
+ using Float32Workload<ParentDescriptor>::Float32Workload;
+ void ExecuteImpl(const char * debugString) const;
+};
+
+template <typename Functor,
+ typename ParentDescriptor,
+ typename armnn::StringMapping::Id DebugString>
+class RefArithmeticWorkload<Functor, armnn::DataType::Float32, ParentDescriptor, DebugString>
+ : public BaseFloat32ArithmeticWorkload<ParentDescriptor, Functor>
+{
+public:
+ using BaseFloat32ArithmeticWorkload<ParentDescriptor, Functor>::BaseFloat32ArithmeticWorkload;
+
+ virtual void Execute() const override
+ {
+ using Parent = BaseFloat32ArithmeticWorkload<ParentDescriptor, Functor>;
+ Parent::ExecuteImpl(StringMapping::Instance().Get(DebugString));
+ }
+};
+
+template <typename ParentDescriptor, typename Functor>
+class BaseUint8ArithmeticWorkload : public Uint8Workload<ParentDescriptor>
+{
+public:
+ using Uint8Workload<ParentDescriptor>::Uint8Workload;
+ void ExecuteImpl(const char * debugString) const;
+};
+
+template <typename Functor,
+ typename ParentDescriptor,
+ typename armnn::StringMapping::Id DebugString>
+class RefArithmeticWorkload<Functor, armnn::DataType::QuantisedAsymm8, ParentDescriptor, DebugString>
+ : public BaseUint8ArithmeticWorkload<ParentDescriptor, Functor>
+{
+public:
+ using BaseUint8ArithmeticWorkload<ParentDescriptor, Functor>::BaseUint8ArithmeticWorkload;
+
+ virtual void Execute() const override
+ {
+ using Parent = BaseUint8ArithmeticWorkload<ParentDescriptor, Functor>;
+ Parent::ExecuteImpl(StringMapping::Instance().Get(DebugString));
+ }
+};
+
+using RefAdditionFloat32Workload =
+ RefArithmeticWorkload<std::plus<float>,
+ DataType::Float32,
+ AdditionQueueDescriptor,
+ StringMapping::RefAdditionWorkload_Execute>;
+
+using RefAdditionUint8Workload =
+ RefArithmeticWorkload<std::plus<float>,
+ DataType::QuantisedAsymm8,
+ AdditionQueueDescriptor,
+ StringMapping::RefAdditionWorkload_Execute>;
+
+
+using RefSubtractionFloat32Workload =
+ RefArithmeticWorkload<std::minus<float>,
+ DataType::Float32,
+ SubtractionQueueDescriptor,
+ StringMapping::RefSubtractionWorkload_Execute>;
+
+using RefSubtractionUint8Workload =
+ RefArithmeticWorkload<std::minus<float>,
+ DataType::QuantisedAsymm8,
+ SubtractionQueueDescriptor,
+ StringMapping::RefSubtractionWorkload_Execute>;
+
+using RefMultiplicationFloat32Workload =
+ RefArithmeticWorkload<std::multiplies<float>,
+ DataType::Float32,
+ MultiplicationQueueDescriptor,
+ StringMapping::RefMultiplicationWorkload_Execute>;
+
+using RefMultiplicationUint8Workload =
+ RefArithmeticWorkload<std::multiplies<float>,
+ DataType::QuantisedAsymm8,
+ MultiplicationQueueDescriptor,
+ StringMapping::RefMultiplicationWorkload_Execute>;
+
+using RefDivisionFloat32Workload =
+ RefArithmeticWorkload<std::divides<float>,
+ DataType::Float32,
+ DivisionQueueDescriptor,
+ StringMapping::RefDivisionWorkload_Execute>;
+
+using RefDivisionUint8Workload =
+ RefArithmeticWorkload<std::divides<float>,
+ DataType::QuantisedAsymm8,
+ DivisionQueueDescriptor,
+ StringMapping::RefDivisionWorkload_Execute>;
+
+} // armnn
diff --git a/src/armnn/backends/RefWorkloads/RefDivisionFloat32Workload.cpp b/src/armnn/backends/RefWorkloads/RefDivisionFloat32Workload.cpp
deleted file mode 100644
index 28c90610de..0000000000
--- a/src/armnn/backends/RefWorkloads/RefDivisionFloat32Workload.cpp
+++ /dev/null
@@ -1,31 +0,0 @@
-//
-// Copyright © 2017 Arm Ltd. All rights reserved.
-// SPDX-License-Identifier: MIT
-//
-
-#include "RefDivisionFloat32Workload.hpp"
-
-#include "ArithmeticFunction.hpp"
-#include "RefWorkloadUtils.hpp"
-
-#include "Profiling.hpp"
-
-namespace armnn
-{
-
-void RefDivisionFloat32Workload::Execute() const
-{
- ARMNN_SCOPED_PROFILING_EVENT(Compute::CpuRef, "RefDivisionFloat32Workload_Execute");
-
- const TensorShape& inShape0 = GetTensorInfo(m_Data.m_Inputs[0]).GetShape();
- const TensorShape& inShape1 = GetTensorInfo(m_Data.m_Inputs[1]).GetShape();
- const TensorShape& outShape = GetTensorInfo(m_Data.m_Outputs[0]).GetShape();
-
- float* outputData = GetOutputTensorDataFloat(0, m_Data);
- const float* inputData0 = GetInputTensorDataFloat(0, m_Data);
- const float* inputData1 = GetInputTensorDataFloat(1, m_Data);
-
- ArithmeticFunction<std::divides<float>>(inShape0, inShape1, outShape, inputData0, inputData1, outputData);
-}
-
-} //namespace armnn
diff --git a/src/armnn/backends/RefWorkloads/RefDivisionFloat32Workload.hpp b/src/armnn/backends/RefWorkloads/RefDivisionFloat32Workload.hpp
deleted file mode 100644
index 4af0b619a0..0000000000
--- a/src/armnn/backends/RefWorkloads/RefDivisionFloat32Workload.hpp
+++ /dev/null
@@ -1,21 +0,0 @@
-//
-// Copyright © 2017 Arm Ltd. All rights reserved.
-// SPDX-License-Identifier: MIT
-//
-
-#pragma once
-
-#include "backends/Workload.hpp"
-#include "backends/WorkloadData.hpp"
-
-namespace armnn
-{
-
-class RefDivisionFloat32Workload : public Float32Workload<DivisionQueueDescriptor>
-{
-public:
- using Float32Workload<DivisionQueueDescriptor>::Float32Workload;
- virtual void Execute() const override;
-};
-
-} //namespace armnn
diff --git a/src/armnn/backends/RefWorkloads/RefDivisionUint8Workload.cpp b/src/armnn/backends/RefWorkloads/RefDivisionUint8Workload.cpp
deleted file mode 100644
index d10d874137..0000000000
--- a/src/armnn/backends/RefWorkloads/RefDivisionUint8Workload.cpp
+++ /dev/null
@@ -1,41 +0,0 @@
-//
-// Copyright © 2017 Arm Ltd. All rights reserved.
-// SPDX-License-Identifier: MIT
-//
-
-#include "RefDivisionUint8Workload.hpp"
-
-#include "ArithmeticFunction.hpp"
-#include "RefWorkloadUtils.hpp"
-
-#include "Profiling.hpp"
-
-#include <vector>
-
-namespace armnn
-{
-
-void RefDivisionUint8Workload::Execute() const
-{
- ARMNN_SCOPED_PROFILING_EVENT(Compute::CpuRef, "RefDivisionUint8Workload_Execute");
-
- const TensorInfo& inputInfo0 = GetTensorInfo(m_Data.m_Inputs[0]);
- const TensorInfo& inputInfo1 = GetTensorInfo(m_Data.m_Inputs[1]);
- const TensorInfo& outputInfo = GetTensorInfo(m_Data.m_Outputs[0]);
-
- auto dequant0 = Dequantize(GetInputTensorDataU8(0, m_Data), inputInfo0);
- auto dequant1 = Dequantize(GetInputTensorDataU8(1, m_Data), inputInfo1);
-
- std::vector<float> results(outputInfo.GetNumElements());
-
- ArithmeticFunction<std::divides<float>>(inputInfo0.GetShape(),
- inputInfo1.GetShape(),
- outputInfo.GetShape(),
- dequant0.data(),
- dequant1.data(),
- results.data());
-
- Quantize(GetOutputTensorDataU8(0, m_Data), results.data(), outputInfo);
-}
-
-} //namespace armnn
diff --git a/src/armnn/backends/RefWorkloads/RefDivisionUint8Workload.hpp b/src/armnn/backends/RefWorkloads/RefDivisionUint8Workload.hpp
deleted file mode 100644
index 9c9f764551..0000000000
--- a/src/armnn/backends/RefWorkloads/RefDivisionUint8Workload.hpp
+++ /dev/null
@@ -1,21 +0,0 @@
-//
-// Copyright © 2017 Arm Ltd. All rights reserved.
-// SPDX-License-Identifier: MIT
-//
-
-#pragma once
-
-#include "backends/Workload.hpp"
-#include "backends/WorkloadData.hpp"
-
-namespace armnn
-{
-
-class RefDivisionUint8Workload : public Uint8Workload<DivisionQueueDescriptor>
-{
-public:
- using Uint8Workload<DivisionQueueDescriptor>::Uint8Workload;
- virtual void Execute() const override;
-};
-
-} //namespace armnn
diff --git a/src/armnn/backends/RefWorkloads/RefMultiplicationFloat32Workload.cpp b/src/armnn/backends/RefWorkloads/RefMultiplicationFloat32Workload.cpp
deleted file mode 100644
index 0b36f0ff00..0000000000
--- a/src/armnn/backends/RefWorkloads/RefMultiplicationFloat32Workload.cpp
+++ /dev/null
@@ -1,31 +0,0 @@
-//
-// Copyright © 2017 Arm Ltd. All rights reserved.
-// SPDX-License-Identifier: MIT
-//
-
-#include "RefMultiplicationFloat32Workload.hpp"
-
-#include "ArithmeticFunction.hpp"
-#include "RefWorkloadUtils.hpp"
-
-#include "Profiling.hpp"
-
-namespace armnn
-{
-
-void RefMultiplicationFloat32Workload::Execute() const
-{
- ARMNN_SCOPED_PROFILING_EVENT(Compute::CpuRef, "RefMultiplicationFloat32Workload_Execute");
-
- const TensorShape& inShape0 = GetTensorInfo(m_Data.m_Inputs[0]).GetShape();
- const TensorShape& inShape1 = GetTensorInfo(m_Data.m_Inputs[1]).GetShape();
- const TensorShape& outShape = GetTensorInfo(m_Data.m_Outputs[0]).GetShape();
-
- float* outputData = GetOutputTensorDataFloat(0, m_Data);
- const float* inputData0 = GetInputTensorDataFloat(0, m_Data);
- const float* inputData1 = GetInputTensorDataFloat(1, m_Data);
-
- ArithmeticFunction<std::multiplies<float>>(inShape0, inShape1, outShape, inputData0, inputData1, outputData);
-}
-
-} //namespace armnn
diff --git a/src/armnn/backends/RefWorkloads/RefMultiplicationFloat32Workload.hpp b/src/armnn/backends/RefWorkloads/RefMultiplicationFloat32Workload.hpp
deleted file mode 100644
index ba38ee04a9..0000000000
--- a/src/armnn/backends/RefWorkloads/RefMultiplicationFloat32Workload.hpp
+++ /dev/null
@@ -1,21 +0,0 @@
-//
-// Copyright © 2017 Arm Ltd. All rights reserved.
-// SPDX-License-Identifier: MIT
-//
-
-#pragma once
-
-#include "backends/Workload.hpp"
-#include "backends/WorkloadData.hpp"
-
-namespace armnn
-{
-
-class RefMultiplicationFloat32Workload : public Float32Workload<MultiplicationQueueDescriptor>
-{
-public:
- using Float32Workload<MultiplicationQueueDescriptor>::Float32Workload;
- virtual void Execute() const override;
-};
-
-} //namespace armnn
diff --git a/src/armnn/backends/RefWorkloads/RefMultiplicationUint8Workload.cpp b/src/armnn/backends/RefWorkloads/RefMultiplicationUint8Workload.cpp
deleted file mode 100644
index b929a53808..0000000000
--- a/src/armnn/backends/RefWorkloads/RefMultiplicationUint8Workload.cpp
+++ /dev/null
@@ -1,41 +0,0 @@
-//
-// Copyright © 2017 Arm Ltd. All rights reserved.
-// SPDX-License-Identifier: MIT
-//
-
-#include "RefMultiplicationUint8Workload.hpp"
-
-#include "ArithmeticFunction.hpp"
-#include "RefWorkloadUtils.hpp"
-
-#include "Profiling.hpp"
-
-#include <vector>
-
-namespace armnn
-{
-
-void RefMultiplicationUint8Workload::Execute() const
-{
- ARMNN_SCOPED_PROFILING_EVENT(Compute::CpuRef, "RefMultiplicationUint8Workload_Execute");
-
- const TensorInfo& inputInfo0 = GetTensorInfo(m_Data.m_Inputs[0]);
- const TensorInfo& inputInfo1 = GetTensorInfo(m_Data.m_Inputs[1]);
- const TensorInfo& outputInfo = GetTensorInfo(m_Data.m_Outputs[0]);
-
- auto dequant0 = Dequantize(GetInputTensorDataU8(0, m_Data), inputInfo0);
- auto dequant1 = Dequantize(GetInputTensorDataU8(1, m_Data), inputInfo1);
-
- std::vector<float> results(outputInfo.GetNumElements());
-
- ArithmeticFunction<std::multiplies<float>>(inputInfo0.GetShape(),
- inputInfo1.GetShape(),
- outputInfo.GetShape(),
- dequant0.data(),
- dequant1.data(),
- results.data());
-
- Quantize(GetOutputTensorDataU8(0, m_Data), results.data(), outputInfo);
-}
-
-} //namespace armnn
diff --git a/src/armnn/backends/RefWorkloads/RefMultiplicationUint8Workload.hpp b/src/armnn/backends/RefWorkloads/RefMultiplicationUint8Workload.hpp
deleted file mode 100644
index 2a37128d57..0000000000
--- a/src/armnn/backends/RefWorkloads/RefMultiplicationUint8Workload.hpp
+++ /dev/null
@@ -1,21 +0,0 @@
-//
-// Copyright © 2017 Arm Ltd. All rights reserved.
-// SPDX-License-Identifier: MIT
-//
-
-#pragma once
-
-#include "backends/Workload.hpp"
-#include "backends/WorkloadData.hpp"
-
-namespace armnn
-{
-
-class RefMultiplicationUint8Workload : public Uint8Workload<MultiplicationQueueDescriptor>
-{
-public:
- using Uint8Workload<MultiplicationQueueDescriptor>::Uint8Workload;
- virtual void Execute() const override;
-};
-
-} //namespace armnn
diff --git a/src/armnn/backends/RefWorkloads/RefSubtractionFloat32Workload.cpp b/src/armnn/backends/RefWorkloads/RefSubtractionFloat32Workload.cpp
deleted file mode 100644
index f1840c347b..0000000000
--- a/src/armnn/backends/RefWorkloads/RefSubtractionFloat32Workload.cpp
+++ /dev/null
@@ -1,31 +0,0 @@
-//
-// Copyright © 2017 Arm Ltd. All rights reserved.
-// SPDX-License-Identifier: MIT
-//
-
-#include "RefSubtractionFloat32Workload.hpp"
-
-#include "ArithmeticFunction.hpp"
-#include "RefWorkloadUtils.hpp"
-
-#include "Profiling.hpp"
-
-namespace armnn
-{
-
-void RefSubtractionFloat32Workload::Execute() const
-{
- ARMNN_SCOPED_PROFILING_EVENT(Compute::CpuRef, "RefSubtractionFloat32Workload_Execute");
-
- const TensorShape& inShape0 = GetTensorInfo(m_Data.m_Inputs[0]).GetShape();
- const TensorShape& inShape1 = GetTensorInfo(m_Data.m_Inputs[1]).GetShape();
- const TensorShape& outShape = GetTensorInfo(m_Data.m_Outputs[0]).GetShape();
-
- const float* inData0 = GetInputTensorDataFloat(0, m_Data);
- const float* inData1 = GetInputTensorDataFloat(1, m_Data);
- float* outData = GetOutputTensorDataFloat(0, m_Data);
-
- ArithmeticFunction<std::minus<float>>(inShape0, inShape1, outShape, inData0, inData1, outData);
-}
-
-} //namespace armnn
diff --git a/src/armnn/backends/RefWorkloads/RefSubtractionFloat32Workload.hpp b/src/armnn/backends/RefWorkloads/RefSubtractionFloat32Workload.hpp
deleted file mode 100644
index b3f5ed9474..0000000000
--- a/src/armnn/backends/RefWorkloads/RefSubtractionFloat32Workload.hpp
+++ /dev/null
@@ -1,21 +0,0 @@
-//
-// Copyright © 2017 Arm Ltd. All rights reserved.
-// SPDX-License-Identifier: MIT
-//
-
-#pragma once
-
-#include "backends/Workload.hpp"
-#include "backends/WorkloadData.hpp"
-
-namespace armnn
-{
-
-class RefSubtractionFloat32Workload : public Float32Workload<SubtractionQueueDescriptor>
-{
-public:
- using Float32Workload<SubtractionQueueDescriptor>::Float32Workload;
- virtual void Execute() const override;
-};
-
-} //namespace armnn
diff --git a/src/armnn/backends/RefWorkloads/RefSubtractionUint8Workload.cpp b/src/armnn/backends/RefWorkloads/RefSubtractionUint8Workload.cpp
deleted file mode 100644
index 1affbdd8b1..0000000000
--- a/src/armnn/backends/RefWorkloads/RefSubtractionUint8Workload.cpp
+++ /dev/null
@@ -1,41 +0,0 @@
-//
-// Copyright © 2017 Arm Ltd. All rights reserved.
-// SPDX-License-Identifier: MIT
-//
-
-#include "RefSubtractionUint8Workload.hpp"
-
-#include "ArithmeticFunction.hpp"
-#include "RefWorkloadUtils.hpp"
-
-#include "Profiling.hpp"
-
-#include <vector>
-
-namespace armnn
-{
-
-void RefSubtractionUint8Workload::Execute() const
-{
- ARMNN_SCOPED_PROFILING_EVENT(Compute::CpuRef, "RefSubtractionUint8Workload_Execute");
-
- const TensorInfo& inputInfo0 = GetTensorInfo(m_Data.m_Inputs[0]);
- const TensorInfo& inputInfo1 = GetTensorInfo(m_Data.m_Inputs[1]);
- const TensorInfo& outputInfo = GetTensorInfo(m_Data.m_Outputs[0]);
-
- auto dequant0 = Dequantize(GetInputTensorDataU8(0, m_Data), inputInfo0);
- auto dequant1 = Dequantize(GetInputTensorDataU8(1, m_Data), inputInfo1);
-
- std::vector<float> results(outputInfo.GetNumElements());
-
- ArithmeticFunction<std::minus<float>>(inputInfo0.GetShape(),
- inputInfo1.GetShape(),
- outputInfo.GetShape(),
- dequant0.data(),
- dequant1.data(),
- results.data());
-
- Quantize(GetOutputTensorDataU8(0, m_Data), results.data(), outputInfo);
-}
-
-} //namespace armnn
diff --git a/src/armnn/backends/RefWorkloads/RefSubtractionUint8Workload.hpp b/src/armnn/backends/RefWorkloads/RefSubtractionUint8Workload.hpp
deleted file mode 100644
index 582533253b..0000000000
--- a/src/armnn/backends/RefWorkloads/RefSubtractionUint8Workload.hpp
+++ /dev/null
@@ -1,21 +0,0 @@
-//
-// Copyright © 2017 Arm Ltd. All rights reserved.
-// SPDX-License-Identifier: MIT
-//
-
-#pragma once
-
-#include "backends/Workload.hpp"
-#include "backends/WorkloadData.hpp"
-
-namespace armnn
-{
-
-class RefSubtractionUint8Workload : public Uint8Workload<SubtractionQueueDescriptor>
-{
-public:
- using Uint8Workload<SubtractionQueueDescriptor>::Uint8Workload;
- virtual void Execute() const override;
-};
-
-} //namespace armnn