• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 //
2 // Copyright © 2017 Arm Ltd. All rights reserved.
3 // SPDX-License-Identifier: MIT
4 //
5 
6 #pragma once
7 
8 #include "DriverOptions.hpp"
9 #include "NamespaceAdaptor.hpp"
10 
11 #include <HalInterfaces.h>
12 
13 #ifdef ARMNN_ANDROID_R
14 using namespace android::nn;
15 #endif
16 
17 namespace V1_0 = ::android::hardware::neuralnetworks::V1_0;
18 namespace V1_1 = ::android::hardware::neuralnetworks::V1_1;
19 
20 #ifdef ARMNN_ANDROID_NN_V1_2 // Using ::android::hardware::neuralnetworks::V1_2
21 namespace V1_2 = ::android::hardware::neuralnetworks::V1_2;
22 #endif
23 
24 #ifdef ARMNN_ANDROID_NN_V1_3 // Using ::android::hardware::neuralnetworks::V1_3
25 namespace V1_2 = ::android::hardware::neuralnetworks::V1_2;
26 namespace V1_3 = ::android::hardware::neuralnetworks::V1_3;
27 #endif
28 
29 namespace armnn_driver
30 {
31 
32 template <typename Callback, typename Context>
33 struct CallbackContext
34 {
35     Callback callback;
36     Context ctx;
37 };
38 
39 template<typename HalPolicy>
40 class ArmnnDriverImpl
41 {
42 public:
43     using HalModel                     = typename HalPolicy::Model;
44     using HalGetSupportedOperations_cb = typename HalPolicy::getSupportedOperations_cb;
45     using HalErrorStatus               = typename HalPolicy::ErrorStatus;
46 
47     static Return<void> getSupportedOperations(
48             const armnn::IRuntimePtr& runtime,
49             const DriverOptions& options,
50             const HalModel& model,
51             HalGetSupportedOperations_cb);
52 
53     static Return<V1_0::ErrorStatus> prepareModel(
54             const armnn::IRuntimePtr& runtime,
55             const armnn::IGpuAccTunedParametersPtr& clTunedParameters,
56             const DriverOptions& options,
57             const HalModel& model,
58             const android::sp<V1_0::IPreparedModelCallback>& cb,
59             bool float32ToFloat16 = false);
60 
61     static Return<V1_0::DeviceStatus> getStatus();
62 
63 };
64 
65 } // namespace armnn_driver
66