blob: 51c21aec327d2ad787c5963b6746cf7fe373bdce [file] [log] [blame]
telsoa014fcda012018-03-09 14:13:49 +00001//
2// Copyright © 2017 Arm Ltd. All rights reserved.
3// See LICENSE file in the project root for full license information.
4//
5
6#pragma once
7
8#include "backends/ClWorkloadUtils.hpp"
9
surmeh013537c2c2018-05-18 16:31:43 +010010#include "arm_compute/runtime/MemoryManagerOnDemand.h"
11
12#include <memory>
13
telsoa014fcda012018-03-09 14:13:49 +000014namespace armnn
15{
surmeh013537c2c2018-05-18 16:31:43 +010016
telsoa01c577f2c2018-08-31 09:22:23 +010017class ClConvolution2dFloat32Workload : public FloatWorkload<Convolution2dQueueDescriptor>
telsoa014fcda012018-03-09 14:13:49 +000018{
19public:
surmeh013537c2c2018-05-18 16:31:43 +010020 ClConvolution2dFloat32Workload(const Convolution2dQueueDescriptor& descriptor, const WorkloadInfo& info,
21 std::shared_ptr<arm_compute::MemoryManagerOnDemand>& memoryManager);
telsoa014fcda012018-03-09 14:13:49 +000022 void Execute() const override;
23
24private:
telsoa01c577f2c2018-08-31 09:22:23 +010025 mutable arm_compute::CLConvolutionLayer m_ConvolutionLayer;
telsoa014fcda012018-03-09 14:13:49 +000026
telsoa01c577f2c2018-08-31 09:22:23 +010027 std::unique_ptr<arm_compute::CLTensor> m_KernelTensor;
28 std::unique_ptr<arm_compute::CLTensor> m_BiasTensor;
29
30 void FreeUnusedTensors();
telsoa014fcda012018-03-09 14:13:49 +000031};
32
33} //namespace armnn
34