1 // 2 // Copyright © 2020 Arm Ltd. All rights reserved. 3 // SPDX-License-Identifier: MIT 4 // 5 6 #pragma once 7 8 #include <HalInterfaces.h> 9 10 #include "../CacheDataHandler.hpp" 11 #include "../DriverOptions.hpp" 12 13 #include <armnn/ArmNN.hpp> 14 15 #if !defined(ARMNN_ANDROID_S) 16 using namespace android::nn::hal; 17 #endif 18 19 #ifdef ARMNN_ANDROID_S 20 using namespace android::hardware; 21 #endif 22 23 namespace V1_0 = ::android::hardware::neuralnetworks::V1_0; 24 namespace V1_2 = ::android::hardware::neuralnetworks::V1_2; 25 namespace V1_3 = ::android::hardware::neuralnetworks::V1_3; 26 27 namespace armnn_driver 28 { 29 namespace hal_1_3 30 { 31 32 class ArmnnDriverImpl 33 { 34 public: 35 using HidlToken = android::hardware::hidl_array<uint8_t, ANEURALNETWORKS_BYTE_SIZE_OF_CACHE_TOKEN>; 36 37 static Return<V1_3::ErrorStatus> prepareArmnnModel_1_3( 38 const armnn::IRuntimePtr& runtime, 39 const armnn::IGpuAccTunedParametersPtr& clTunedParameters, 40 const DriverOptions& options, 41 const V1_3::Model& model, 42 const android::hardware::hidl_vec<android::hardware::hidl_handle>& modelCacheHandle, 43 const android::hardware::hidl_vec<android::hardware::hidl_handle>& dataCacheHandle, 44 const HidlToken& token, 45 const android::sp<V1_3::IPreparedModelCallback>& cb, 46 bool float32ToFloat16 = false, 47 V1_3::Priority priority = V1_3::Priority::MEDIUM); 48 49 static Return<V1_3::ErrorStatus> prepareModelFromCache_1_3( 50 const armnn::IRuntimePtr& runtime, 51 const DriverOptions& options, 52 const android::hardware::hidl_vec<android::hardware::hidl_handle>& modelCacheHandle, 53 const android::hardware::hidl_vec<android::hardware::hidl_handle>& dataCacheHandle, 54 const HidlToken& token, 55 const android::sp<V1_3::IPreparedModelCallback>& cb); 56 57 static Return<void> getCapabilities_1_3(const armnn::IRuntimePtr& runtime, 58 V1_3::IDevice::getCapabilities_1_3_cb cb); 59 }; 60 61 } // namespace hal_1_3 62 } // namespace armnn_driver