blob: 2e235b6c2aadf61371111ba4326685354f297bca [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 "NeonBackend.hpp"
arovir01a0944792018-10-11 15:00:58 +01007#include "NeonWorkloadFactory.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{
18
David Beck9df2d952018-10-10 15:11:44 +010019static const BackendId s_Id{"CpuAcc"};
David Beck6b779f02018-10-09 17:20:21 +010020
21static BackendRegistry::Helper g_RegisterHelper{
22 s_Id,
23 []()
24 {
25 return IBackendUniquePtr(new NeonBackend, &NeonBackend::Destroy);
26 }
27};
28
29}
arovir014424b0a2018-10-04 10:46:04 +010030
David Beck9df2d952018-10-10 15:11:44 +010031const BackendId& NeonBackend::GetId() const
arovir014424b0a2018-10-04 10:46:04 +010032{
33 return s_Id;
34}
35
36const ILayerSupport& NeonBackend::GetLayerSupport() const
37{
38 return m_LayerSupport;
39}
40
41std::unique_ptr<IWorkloadFactory> NeonBackend::CreateWorkloadFactory() const
42{
arovir01a0944792018-10-11 15:00:58 +010043 return std::make_unique<NeonWorkloadFactory>();
arovir014424b0a2018-10-04 10:46:04 +010044}
45
David Beck6b779f02018-10-09 17:20:21 +010046void NeonBackend::Destroy(IBackend* backend)
47{
48 delete boost::polymorphic_downcast<NeonBackend*>(backend);
49}
50
arovir014424b0a2018-10-04 10:46:04 +010051} // namespace armnn