blob: 29d1b3a4022fc6dbdf87c2868d7657a112ee62f6 [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
6#include "ClBackend.hpp"
arovir01a0944792018-10-11 15:00:58 +01007#include "ClWorkloadFactory.hpp"
8
David Beck6b779f02018-10-09 17:20:21 +01009#include <backends/BackendRegistry.hpp>
arovir01a0944792018-10-11 15:00:58 +010010
David Beck6b779f02018-10-09 17:20:21 +010011#include <boost/cast.hpp>
arovir014424b0a2018-10-04 10:46:04 +010012
13namespace armnn
14{
15
David Beck6b779f02018-10-09 17:20:21 +010016namespace
17{
David Beck6b779f02018-10-09 17:20:21 +010018
19static BackendRegistry::Helper g_RegisterHelper{
David Beck3cc9a622018-10-12 10:38:31 +010020 ClBackend::GetIdStatic(),
David Beck6b779f02018-10-09 17:20:21 +010021 []()
22 {
23 return IBackendUniquePtr(new ClBackend, &ClBackend::Destroy);
24 }
25};
26
27}
arovir014424b0a2018-10-04 10:46:04 +010028
David Beck3cc9a622018-10-12 10:38:31 +010029const BackendId& ClBackend::GetIdStatic()
arovir014424b0a2018-10-04 10:46:04 +010030{
David Beck3cc9a622018-10-12 10:38:31 +010031 static const BackendId s_Id{"GpuAcc"};
arovir014424b0a2018-10-04 10:46:04 +010032 return s_Id;
33}
34
35const ILayerSupport& ClBackend::GetLayerSupport() const
36{
37 return m_LayerSupport;
38}
39
40std::unique_ptr<IWorkloadFactory> ClBackend::CreateWorkloadFactory() const
41{
arovir01a0944792018-10-11 15:00:58 +010042 return std::make_unique<ClWorkloadFactory>();
arovir014424b0a2018-10-04 10:46:04 +010043}
44
David Beck6b779f02018-10-09 17:20:21 +010045void ClBackend::Destroy(IBackend* backend)
46{
47 delete boost::polymorphic_downcast<ClBackend*>(backend);
48}
49
arovir014424b0a2018-10-04 10:46:04 +010050} // namespace armnn