diff options
author | Matthew Bentham <matthew.bentham@arm.com> | 2019-07-02 15:45:18 +0100 |
---|---|---|
committer | Matthew Bentham <matthew.bentham@arm.com> | 2019-07-03 14:41:41 +0000 |
commit | 4686af0384d6102dc637cfb0ef0c576c6663e7cc (patch) | |
tree | d133bdca4d304d02f75fa767360fb2abd5e42350 /src/backends/reference | |
parent | da1fb9b01ce9545b375c61a3bf5a5337199834a7 (diff) | |
download | armnn-4686af0384d6102dc637cfb0ef0c576c6663e7cc.tar.gz |
IVGCVSW-3307 TransposeConvolution: Don't call Map() before Execute()
Change-Id: I7a812eafc8c73d074049ba95189cbc17d276eee3
Signed-off-by: Matthew Bentham <matthew.bentham@arm.com>
Diffstat (limited to 'src/backends/reference')
-rw-r--r-- | src/backends/reference/workloads/RefTransposeConvolution2dWorkload.cpp | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/backends/reference/workloads/RefTransposeConvolution2dWorkload.cpp b/src/backends/reference/workloads/RefTransposeConvolution2dWorkload.cpp index ec600305a7..2ab76041ef 100644 --- a/src/backends/reference/workloads/RefTransposeConvolution2dWorkload.cpp +++ b/src/backends/reference/workloads/RefTransposeConvolution2dWorkload.cpp @@ -21,7 +21,7 @@ RefTransposeConvolution2dWorkload::RefTransposeConvolution2dWorkload( m_Weights = std::make_unique<ScopedCpuTensorHandle>(*(descriptor.m_Weight)); const TensorInfo& weightsInfo = m_Weights->GetTensorInfo(); - m_WeightsDecoder = MakeDecoder<float>(weightsInfo, m_Weights.get()->Map(true)); + m_WeightsDecoder = MakeDecoder<float>(weightsInfo, m_Weights->Map(true)); m_WeightsShape = weightsInfo.GetShape(); // set up biases decoder @@ -29,7 +29,7 @@ RefTransposeConvolution2dWorkload::RefTransposeConvolution2dWorkload( { m_Biases = std::make_unique<ScopedCpuTensorHandle>(*(descriptor.m_Bias)); const TensorInfo& biasesInfo = m_Biases->GetTensorInfo(); - m_BiasesDecoder = MakeDecoder<float>(biasesInfo, m_Biases.get()->Map(true)); + m_BiasesDecoder = MakeDecoder<float>(biasesInfo, m_Biases->Map(true)); } } @@ -40,20 +40,23 @@ void RefTransposeConvolution2dWorkload::PostAllocationConfigure() const TensorInfo& inputInfo = GetTensorInfo(input); m_InputShape = inputInfo.GetShape(); - m_InputDecoder = MakeDecoder<float>(inputInfo, input->Map()); + m_InputDecoder = MakeDecoder<float>(inputInfo); // set up output encoder ITensorHandle* output = m_Data.m_Outputs[0]; const TensorInfo& outputInfo = GetTensorInfo(output); m_OutputShape = outputInfo.GetShape(); - m_OutputEncoder = MakeEncoder<float>(outputInfo, output->Map()); + m_OutputEncoder = MakeEncoder<float>(outputInfo); } void RefTransposeConvolution2dWorkload::Execute() const { ARMNN_SCOPED_PROFILING_EVENT(Compute::CpuRef, "RefTransposeConvolution2dWorkload_Execute"); + m_InputDecoder->Reset(m_Data.m_Inputs[0]->Map()); + m_OutputEncoder->Reset(m_Data.m_Outputs[0]->Map()); + TransposeConvolution2dImpl(m_Data.m_Parameters, m_InputShape, *m_InputDecoder, |