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() const20void 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