aboutsummaryrefslogtreecommitdiff
path: root/shim/sl/canonical/ArmnnDriverImpl.hpp
diff options
context:
space:
mode:
authorSadik Armagan <sadik.armagan@arm.com>2022-06-17 15:38:22 +0100
committerSadik Armagan <sadik.armagan@arm.com>2022-06-20 14:41:39 +0100
commit8f397a1efed11e17e9f8cb12b53a72b7e32ab978 (patch)
tree5a4f351ee688bd760449c82c455b0e324b11f88d /shim/sl/canonical/ArmnnDriverImpl.hpp
parentd2e52e8873629ff920188615121cb104eb0fcc96 (diff)
downloadarmnn-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.hpp59
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