• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 //
2 // Copyright © 2019 Arm Ltd. All rights reserved.
3 // SPDX-License-Identifier: MIT
4 //
5 
6 #include "RefLogSoftmaxWorkload.hpp"
7 
8 #include "Decoders.hpp"
9 #include "Encoders.hpp"
10 #include "LogSoftmax.hpp"
11 #include "RefWorkloadUtils.hpp"
12 
13 #include <Profiling.hpp>
14 
15 #include <armnn/utility/Assert.hpp>
16 
17 namespace armnn
18 {
19 
Execute() const20 void RefLogSoftmaxWorkload::Execute() const
21 {
22     ARMNN_SCOPED_PROFILING_EVENT(Compute::CpuRef, "RefLogSoftmaxWorkload_Execute");
23 
24     const TensorInfo& inputInfo  = GetTensorInfo(m_Data.m_Inputs[0]);
25     const TensorInfo& outputInfo = GetTensorInfo(m_Data.m_Outputs[0]);
26 
27     std::unique_ptr<Decoder<float>> decoder = MakeDecoder<float>(inputInfo, m_Data.m_Inputs[0]->Map());
28     std::unique_ptr<Encoder<float>> encoder = MakeEncoder<float>(outputInfo, m_Data.m_Outputs[0]->Map());
29 
30     ARMNN_ASSERT(decoder != nullptr);
31     ARMNN_ASSERT(encoder != nullptr);
32 
33     LogSoftmax(*decoder, *encoder, inputInfo, m_Data.m_Parameters);
34 }
35 
36 } // namespace armnn
37