aboutsummaryrefslogtreecommitdiff
path: root/1.1/ArmnnDriver.hpp
diff options
context:
space:
mode:
Diffstat (limited to '1.1/ArmnnDriver.hpp')
-rw-r--r--1.1/ArmnnDriver.hpp103
1 files changed, 103 insertions, 0 deletions
diff --git a/1.1/ArmnnDriver.hpp b/1.1/ArmnnDriver.hpp
new file mode 100644
index 00000000..6bd8e03c
--- /dev/null
+++ b/1.1/ArmnnDriver.hpp
@@ -0,0 +1,103 @@
+//
+// Copyright © 2017 Arm Ltd. All rights reserved.
+// See LICENSE file in the project root for full license information.
+//
+
+#pragma once
+
+#include <HalInterfaces.h>
+
+#include "ArmnnDevice.hpp"
+#include "1.0/ArmnnDriverImpl.hpp"
+#include "1.1/ArmnnDriverImpl.hpp"
+
+#include <log/log.h>
+
+namespace armnn_driver {
+namespace V1_1 {
+
+class ArmnnDriver : public ArmnnDevice, public ::android::hardware::neuralnetworks::V1_1::IDevice
+{
+public:
+ ArmnnDriver(DriverOptions options)
+ : ArmnnDevice(std::move(options))
+ {
+ ALOGV("V1_1::ArmnnDriver::ArmnnDriver()");
+ }
+ ~ArmnnDriver() {}
+
+public:
+ Return<void> getCapabilities(
+ ::android::hardware::neuralnetworks::V1_0::IDevice::getCapabilities_cb cb)
+ {
+ ALOGV("V1_1::ArmnnDriver::getCapabilities()");
+
+ return V1_0::ArmnnDriverImpl::getCapabilities(m_Runtime, cb);
+ }
+
+ Return<void> getSupportedOperations(
+ const ::android::hardware::neuralnetworks::V1_0::Model& model,
+ ::android::hardware::neuralnetworks::V1_0::IDevice::getSupportedOperations_cb cb)
+ {
+ ALOGV("V1_1::ArmnnDriver::getSupportedOperations()");
+
+ return V1_0::ArmnnDriverImpl::getSupportedOperations(m_Runtime, m_Options, model, cb);
+ }
+
+ Return<ErrorStatus> prepareModel(
+ const ::android::hardware::neuralnetworks::V1_0::Model& model,
+ const android::sp<IPreparedModelCallback>& cb)
+ {
+ ALOGV("V1_1::ArmnnDriver::prepareModel()");
+
+ return V1_0::ArmnnDriverImpl::prepareModel(m_Runtime, m_ClTunedParameters, m_Options, model, cb);
+ }
+
+ Return<void> getCapabilities_1_1(
+ ::android::hardware::neuralnetworks::V1_1::IDevice::getCapabilities_1_1_cb cb)
+ {
+ ALOGV("V1_1::ArmnnDriver::getCapabilities_1_1()");
+
+ return V1_1::ArmnnDriverImpl::getCapabilities_1_1(m_Runtime, cb);
+ }
+
+ Return<void> getSupportedOperations_1_1(
+ const ::android::hardware::neuralnetworks::V1_1::Model& model,
+ ::android::hardware::neuralnetworks::V1_1::IDevice::getSupportedOperations_1_1_cb cb)
+ {
+ ALOGV("V1_1::ArmnnDriver::getSupportedOperations_1_1()");
+
+ return V1_1::ArmnnDriverImpl::getSupportedOperations_1_1(m_Runtime, m_Options, model, cb);
+ }
+
+ Return<ErrorStatus> prepareModel_1_1(
+ const ::android::hardware::neuralnetworks::V1_1::Model& model,
+ ::android::hardware::neuralnetworks::V1_1::ExecutionPreference preference,
+ const android::sp<IPreparedModelCallback>& cb)
+ {
+ using namespace ::android::hardware::neuralnetworks::V1_0;
+
+ ALOGV("V1_1::ArmnnDriver::prepareModel_1_1()");
+
+ if(!(preference == ExecutionPreference::LOW_POWER ||
+ preference == ExecutionPreference::FAST_SINGLE_ANSWER ||
+ preference == ExecutionPreference::SUSTAINED_SPEED))
+ {
+ ALOGV("V1_1::ArmnnDriver::prepareModel_1_1(): Invalid execution preference");
+ cb->notify(ErrorStatus::INVALID_ARGUMENT, nullptr);
+ return ErrorStatus::INVALID_ARGUMENT;
+ }
+
+ return V1_1::ArmnnDriverImpl::prepareModel_1_1(m_Runtime, m_ClTunedParameters, m_Options, model, cb);
+ }
+
+ Return<DeviceStatus> getStatus()
+ {
+ ALOGV("V1_1::ArmnnDriver::getStatus()");
+
+ return V1_0::ArmnnDriverImpl::getStatus();
+ }
+};
+
+} // armnn_driver::namespace V1_1
+} // namespace armnn_driver