diff options
author | Francis Murtagh <francis.murtagh@arm.com> | 2019-05-27 12:14:10 +0100 |
---|---|---|
committer | Francis Murtagh <francis.murtagh@arm.com> | 2019-05-27 12:14:10 +0100 |
commit | 43aec5886449c1b024b740fd6f4500e827bde221 (patch) | |
tree | c12a128dcc6895a0663a4e4dd27c4110e492c6dd /src/backends/reference/workloads/RefFullyConnectedUint8Workload.cpp | |
parent | 7f2c35a82ec11be50b3478bd15207320bbf3bd57 (diff) | |
download | armnn-43aec5886449c1b024b740fd6f4500e827bde221.tar.gz |
IVGCVSW-3134 Refactor FullyConnected workloads into single workload
* Refactor FullyConnected workloads into single workload.
* Refactor FullyConnected ref implementation to use Encoders
and Decoders to support all DataTypes.
* Deleted RefFullyConnectedFloat32Workload and
RefFullyConnected2dUint8Workload.
Change-Id: Iad30fb0287ab7491e1297997e7d61f1d00785541
Signed-off-by: Francis Murtagh <francis.murtagh@arm.com>
Diffstat (limited to 'src/backends/reference/workloads/RefFullyConnectedUint8Workload.cpp')
-rw-r--r-- | src/backends/reference/workloads/RefFullyConnectedUint8Workload.cpp | 66 |
1 files changed, 0 insertions, 66 deletions
diff --git a/src/backends/reference/workloads/RefFullyConnectedUint8Workload.cpp b/src/backends/reference/workloads/RefFullyConnectedUint8Workload.cpp deleted file mode 100644 index cd785d786c..0000000000 --- a/src/backends/reference/workloads/RefFullyConnectedUint8Workload.cpp +++ /dev/null @@ -1,66 +0,0 @@ -// -// Copyright © 2017 Arm Ltd. All rights reserved. -// SPDX-License-Identifier: MIT -// - -#include "RefFullyConnectedUint8Workload.hpp" - -#include "FullyConnected.hpp" -#include "RefWorkloadUtils.hpp" - -#include "Profiling.hpp" - -#include <vector> - -namespace armnn -{ -RefFullyConnectedUint8Workload::RefFullyConnectedUint8Workload( - const FullyConnectedQueueDescriptor& descriptor, const WorkloadInfo& info) - : Uint8Workload<FullyConnectedQueueDescriptor>(descriptor, info), - m_Weight(std::make_unique<ScopedCpuTensorHandle>(*(descriptor.m_Weight))), - m_Bias(descriptor.m_Parameters.m_BiasEnabled - ? std::make_unique<ScopedCpuTensorHandle>(*(descriptor.m_Bias)) : nullptr) {} - -void RefFullyConnectedUint8Workload::Execute() const -{ - ARMNN_SCOPED_PROFILING_EVENT(Compute::CpuRef, "RefFullyConnectedUint8Workload_Execute"); - - const TensorInfo& inputInfo = GetTensorInfo(m_Data.m_Inputs[0]); - const TensorInfo& outputInfo = GetTensorInfo(m_Data.m_Outputs[0]); - - const uint8_t* weightData = m_Weight->GetConstTensor<uint8_t>(); - - auto dequant = Dequantize(GetInputTensorDataU8(0, m_Data), inputInfo); - - auto weight = Dequantize(weightData, m_Weight->GetTensorInfo()); - - std::vector<float> results(outputInfo.GetNumElements()); - - if (m_Data.m_Parameters.m_BiasEnabled) - { - const int32_t* biasData = m_Bias->GetConstTensor<int32_t>(); - auto bias = Dequantize(biasData, m_Bias->GetTensorInfo()); - - FullyConnected(dequant.data(), - results.data(), - inputInfo, - outputInfo, - weight.data(), - bias.data(), - m_Data.m_Parameters.m_TransposeWeightMatrix); - } - else - { - FullyConnected(dequant.data(), - results.data(), - inputInfo, - outputInfo, - weight.data(), - nullptr, - m_Data.m_Parameters.m_TransposeWeightMatrix); - } - - Quantize(GetOutputTensorDataU8(0, m_Data), results.data(), outputInfo); -} - -} //namespace armnn |