1 // 2 // Copyright © 2022 Arm Ltd and Contributors. All rights reserved. 3 // SPDX-License-Identifier: MIT 4 // 5 6 #pragma once 7 8 #include "Decoders.hpp" 9 #include "Encoders.hpp" 10 11 #include <armnn/backends/TensorHandle.hpp> 12 #include "RefBaseWorkload.hpp" 13 14 namespace armnn 15 { 16 17 class RefTransposeConvolution2dWorkload : public RefBaseWorkload<TransposeConvolution2dQueueDescriptor> 18 { 19 public: 20 RefTransposeConvolution2dWorkload(const TransposeConvolution2dQueueDescriptor& descriptor, 21 const WorkloadInfo& info); 22 ~RefTransposeConvolution2dWorkload() = default; 23 24 void Execute() const override; 25 void ExecuteAsync(ExecutionData& executionData) override; 26 27 private: 28 void Execute(std::vector<ITensorHandle*> inputs, std::vector<ITensorHandle*> outputs) const; 29 std::unique_ptr<ScopedTensorHandle> m_Weights; 30 std::unique_ptr<ScopedTensorHandle> m_Biases; 31 32 std::unique_ptr<Decoder<float>> m_WeightsDecoder; 33 std::unique_ptr<Decoder<float>> m_BiasesDecoder; 34 35 TensorShape m_WeightsShape; 36 }; 37 38 } // namespace armnn