blob: f033a0c5a73de66f2f0cd2f9c017bddff11169ce [file] [log] [blame]
arovir014424b0a2018-10-04 10:46:04 +01001//
2// Copyright © 2017 Arm Ltd. All rights reserved.
3// SPDX-License-Identifier: MIT
4//
5#pragma once
6
Aron Virginas-Tarc9cc8042018-11-01 16:15:57 +00007#include <backendsCommon/IBackendInternal.hpp>
arovir014424b0a2018-10-04 10:46:04 +01008
9namespace armnn
10{
11
12class ClBackend : public IBackendInternal
13{
14public:
David Beck9efb57d2018-11-05 13:40:33 +000015 ClBackend() = default;
16 ~ClBackend() = default;
arovir014424b0a2018-10-04 10:46:04 +010017
David Beck3cc9a622018-10-12 10:38:31 +010018 static const BackendId& GetIdStatic();
19 const BackendId& GetId() const override { return GetIdStatic(); }
arovir014424b0a2018-10-04 10:46:04 +010020
Aron Virginas-Tar56055192018-11-12 18:10:43 +000021 IBackendInternal::IMemoryManagerUniquePtr CreateMemoryManager() const override;
22
23 IBackendInternal::IWorkloadFactoryPtr CreateWorkloadFactory(
24 const IBackendInternal::IMemoryManagerSharedPtr& memoryManager = nullptr) const override;
25
Jan Eilerse9f0f0f2019-08-16 10:28:37 +010026 IBackendInternal::IWorkloadFactoryPtr CreateWorkloadFactory(
27 TensorHandleFactoryRegistry& registry) const override;
28
29 std::vector<ITensorHandleFactory::FactoryId> GetHandleFactoryPreferences() const override;
30
31 void RegisterTensorHandleFactories(TensorHandleFactoryRegistry& registry) override;
32
David Beck1b61be52018-11-08 09:19:14 +000033 IBackendInternal::IBackendContextPtr CreateBackendContext(const IRuntime::CreationOptions&) const override;
Aron Virginas-Tar56055192018-11-12 18:10:43 +000034
David Beck263e3492018-11-09 14:46:40 +000035 IBackendInternal::Optimizations GetOptimizations() const override;
David Beck111b5d92018-11-12 14:59:37 +000036 IBackendInternal::ILayerSupportSharedPtr GetLayerSupport() const override;
Matteo Martincighadddddb2019-01-24 14:06:23 +000037
Matteo Martincighc3ba50e2019-05-22 14:28:16 +010038 OptimizationViews OptimizeSubgraphView(const SubgraphView& subgraph) const override;
arovir014424b0a2018-10-04 10:46:04 +010039};
40
Matteo Martincighadddddb2019-01-24 14:06:23 +000041} // namespace armnn