aboutsummaryrefslogtreecommitdiff
path: root/ArmnnDriver.hpp
diff options
context:
space:
mode:
authortelsoa01 <telmo.soares@arm.com>2018-03-09 13:51:08 +0000
committertelsoa01 <telmo.soares@arm.com>2018-03-09 14:05:45 +0000
commit5307bc10ac488261e84ac76b2dede6039ea3fe96 (patch)
tree09de3cc29026ca9722179f6beb25b9a66efcf88e /ArmnnDriver.hpp
downloadandroid-nn-driver-5307bc10ac488261e84ac76b2dede6039ea3fe96.tar.gz
Release 18.02
Change-Id: I41a89c149534a7c354a58e2c66a32cba572fc0c1
Diffstat (limited to 'ArmnnDriver.hpp')
-rw-r--r--ArmnnDriver.hpp61
1 files changed, 61 insertions, 0 deletions
diff --git a/ArmnnDriver.hpp b/ArmnnDriver.hpp
new file mode 100644
index 00000000..8b66e774
--- /dev/null
+++ b/ArmnnDriver.hpp
@@ -0,0 +1,61 @@
+//
+// Copyright © 2017 Arm Ltd. All rights reserved.
+// See LICENSE file in the project root for full license information.
+//
+
+#pragma once
+
+#include "HalInterfaces.h"
+#include "NeuralNetworks.h"
+#include <armnn/ArmNN.hpp>
+
+#include <memory>
+#include <set>
+#include <string>
+
+namespace armnn_driver
+{
+
+class DriverOptions
+{
+public:
+ DriverOptions(armnn::Compute computeDevice);
+ DriverOptions(int argc, char** argv);
+ DriverOptions(DriverOptions&& other) = default;
+
+ armnn::Compute GetComputeDevice() const { return m_ComputeDevice; }
+ bool IsVerboseLoggingEnabled() const { return m_VerboseLogging; }
+ const std::string& GetRequestInputsAndOutputsDumpDir() const { return m_RequestInputsAndOutputsDumpDir; }
+ bool UseAndroidNnCpuExecutor() const { return m_UseAndroidNnCpuExecutor; }
+ const std::set<unsigned int>& GetForcedUnsupportedOperations() const { return m_ForcedUnsupportedOperations; }
+ const std::string& GetClTunedParametersFile() const { return m_ClTunedParametersFile; }
+ armnn::IClTunedParameters::Mode GetClTunedParametersMode() const { return m_ClTunedParametersMode; }
+
+private:
+ armnn::Compute m_ComputeDevice;
+ bool m_VerboseLogging;
+ bool m_UseAndroidNnCpuExecutor;
+ std::string m_RequestInputsAndOutputsDumpDir;
+ std::set<unsigned int> m_ForcedUnsupportedOperations;
+ std::string m_ClTunedParametersFile;
+ armnn::IClTunedParameters::Mode m_ClTunedParametersMode;
+};
+
+class ArmnnDriver : public IDevice {
+public:
+ ArmnnDriver(DriverOptions options);
+ virtual ~ArmnnDriver() {}
+ virtual Return<void> getCapabilities(getCapabilities_cb _hidl_cb) override;
+ virtual Return<void> getSupportedOperations(const Model &model,
+ getSupportedOperations_cb _hidl_cb) override;
+ virtual Return<ErrorStatus> prepareModel(const Model &model,
+ const android::sp<IPreparedModelCallback>& callback);
+ virtual Return<DeviceStatus> getStatus() override;
+
+private:
+ armnn::IRuntimePtr m_Runtime;
+ armnn::IClTunedParametersPtr m_ClTunedParameters;
+ DriverOptions m_Options;
+};
+
+}