diff options
author | Sadik Armagan <sadik.armagan@arm.com> | 2022-06-17 15:38:22 +0100 |
---|---|---|
committer | Sadik Armagan <sadik.armagan@arm.com> | 2022-06-20 14:41:39 +0100 |
commit | 8f397a1efed11e17e9f8cb12b53a72b7e32ab978 (patch) | |
tree | 5a4f351ee688bd760449c82c455b0e324b11f88d /shim/sl/canonical/ArmnnDriverImpl.hpp | |
parent | d2e52e8873629ff920188615121cb104eb0fcc96 (diff) | |
download | armnn-8f397a1efed11e17e9f8cb12b53a72b7e32ab978.tar.gz |
IVGCVSW-6989 "Merged experimental/armnn_shim_sl"
* Updated Serializer CMakeLists.txt to build armnnSerializerObj
* Added constant tensors as input support to SL
Signed-off-by: Sadik Armagan <sadik.armagan@arm.com>
Change-Id: I22f6cf50147d99a01f7fe70d7446b114a4c57af3
Diffstat (limited to 'shim/sl/canonical/ArmnnDriverImpl.hpp')
-rw-r--r-- | shim/sl/canonical/ArmnnDriverImpl.hpp | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/shim/sl/canonical/ArmnnDriverImpl.hpp b/shim/sl/canonical/ArmnnDriverImpl.hpp new file mode 100644 index 0000000000..836bf469cc --- /dev/null +++ b/shim/sl/canonical/ArmnnDriverImpl.hpp @@ -0,0 +1,59 @@ +// +// Copyright © 2022 Arm Ltd and Contributors. All rights reserved. +// SPDX-License-Identifier: MIT +// + +#pragma once + +#include "DriverOptions.hpp" + +#include <armnn/ArmNN.hpp> + +#include <nnapi/IPreparedModel.h> +#include <nnapi/Result.h> +#include <nnapi/TypeUtils.h> +#include <nnapi/Types.h> +#include <nnapi/Validation.h> + +using namespace android::nn; + +namespace armnn_driver +{ + +class ArmnnDriverImpl +{ +public: + static GeneralResult<SharedPreparedModel> PrepareArmnnModel( + const armnn::IRuntimePtr& runtime, + const armnn::IGpuAccTunedParametersPtr& clTunedParameters, + const DriverOptions& options, + const Model& model, + const std::vector<SharedHandle>& modelCacheHandle, + const std::vector<SharedHandle>& dataCacheHandle, + const CacheToken& token, + bool float32ToFloat16 = false, + Priority priority = Priority::MEDIUM); + + static GeneralResult<SharedPreparedModel> PrepareArmnnModelFromCache( + const armnn::IRuntimePtr& runtime, + const armnn::IGpuAccTunedParametersPtr& clTunedParameters, + const DriverOptions& options, + const std::vector<SharedHandle>& modelCacheHandle, + const std::vector<SharedHandle>& dataCacheHandle, + const CacheToken& token, + bool float32ToFloat16 = false); + + static const Capabilities& GetCapabilities(const armnn::IRuntimePtr& runtime); + + static std::vector<armnn::NetworkId>& GetLoadedNetworks(); + + static void ClearNetworks(); + +private: + static bool ValidateSharedHandle(const SharedHandle& sharedHandle); + static bool ValidateDataCacheHandle(const std::vector<SharedHandle>& dataCacheHandle, const size_t dataSize); + + static std::vector<armnn::NetworkId> m_NetworkIDs; +}; + +} // namespace armnn_driver
\ No newline at end of file |