diff options
author | Sadik Armagan <sadik.armagan@arm.com> | 2021-10-06 16:41:44 +0100 |
---|---|---|
committer | mike.kelly <mike.kelly@arm.com> | 2021-11-04 15:16:10 +0000 |
commit | 0a2dfabd76a45c58d0a14567f0503369c4e6fbf3 (patch) | |
tree | 035340e9f663d599f83992846e1772b161640654 /1.2/ArmnnDriver.hpp | |
parent | 1b46d132a3330692fcf9a603b21363a28f46ef03 (diff) | |
download | android-nn-driver-0a2dfabd76a45c58d0a14567f0503369c4e6fbf3.tar.gz |
IVGCVSW-5636 'Implement NNAPI caching functions'
* Cached serialized ArmNN model.
!armnn:6384
Signed-off-by: Sadik Armagan <sadik.armagan@arm.com>
Signed-off-by: Kevin May <kevin.may@arm.com>
Change-Id: I78120a7f8ea892a28c0ff25f1b54e67a4f912574
Diffstat (limited to '1.2/ArmnnDriver.hpp')
-rw-r--r-- | 1.2/ArmnnDriver.hpp | 40 |
1 files changed, 27 insertions, 13 deletions
diff --git a/1.2/ArmnnDriver.hpp b/1.2/ArmnnDriver.hpp index a350d3f4..c855b527 100644 --- a/1.2/ArmnnDriver.hpp +++ b/1.2/ArmnnDriver.hpp @@ -19,6 +19,8 @@ #include "../1.0/ArmnnDriverImpl.hpp" #include "../1.0/HalPolicy.hpp" +#include <armnn/BackendHelper.hpp> + #include <log/log.h> namespace armnn_driver @@ -135,20 +137,26 @@ public: } Return<V1_0::ErrorStatus> prepareModelFromCache( - const android::hardware::hidl_vec<android::hardware::hidl_handle>&, - const android::hardware::hidl_vec<android::hardware::hidl_handle>&, - const HidlToken&, - const android::sp<V1_2::IPreparedModelCallback>& callback) + const android::hardware::hidl_vec<android::hardware::hidl_handle>& modelCacheHandle, + const android::hardware::hidl_vec<android::hardware::hidl_handle>& dataCacheHandle, + const HidlToken& token, + const android::sp<V1_2::IPreparedModelCallback>& cb) { ALOGV("hal_1_2::ArmnnDriver::prepareModelFromCache()"); - callback->notify_1_2(V1_0::ErrorStatus::GENERAL_FAILURE, nullptr); - return V1_0::ErrorStatus::GENERAL_FAILURE; + return ArmnnDriverImpl::prepareModelFromCache(m_Runtime, + m_Options, + modelCacheHandle, + dataCacheHandle, + token, + cb); } - Return<V1_0::ErrorStatus> prepareModel_1_2(const V1_2::Model& model, V1_1::ExecutionPreference preference, - const android::hardware::hidl_vec<android::hardware::hidl_handle>&, - const android::hardware::hidl_vec<android::hardware::hidl_handle>&, const HidlToken&, - const android::sp<V1_2::IPreparedModelCallback>& cb) + Return<V1_0::ErrorStatus> prepareModel_1_2( + const V1_2::Model& model, V1_1::ExecutionPreference preference, + const android::hardware::hidl_vec<android::hardware::hidl_handle>& modelCacheHandle, + const android::hardware::hidl_vec<android::hardware::hidl_handle>& dataCacheHandle, + const HidlToken& token, + const android::sp<V1_2::IPreparedModelCallback>& cb) { ALOGV("hal_1_2::ArmnnDriver::prepareModel_1_2()"); @@ -165,6 +173,9 @@ public: m_ClTunedParameters, m_Options, model, + modelCacheHandle, + dataCacheHandle, + token, cb, model.relaxComputationFloat32toFloat16 && m_Options.GetFp16Enabled()); @@ -198,9 +209,12 @@ public: Return<void> getNumberOfCacheFilesNeeded(getNumberOfCacheFilesNeeded_cb cb) { ALOGV("hal_1_2::ArmnnDriver::getSupportedExtensions()"); - - // Set both numbers to be 0 for cache not supported. - cb(V1_0::ErrorStatus::NONE, 0, 0); + unsigned int numberOfCachedModelFiles = 0; + for (auto& backend : m_Options.GetBackends()) + { + numberOfCachedModelFiles += GetNumberOfCacheFiles(backend); + } + cb(V1_0::ErrorStatus::NONE, numberOfCachedModelFiles, 1ul); return Void(); } }; |