aboutsummaryrefslogtreecommitdiff
path: root/ArmnnDevice.cpp
diff options
context:
space:
mode:
authorNarumol Prangnawarat <narumol.prangnawarat@arm.com>2019-05-03 16:42:52 +0100
committerNarumol Prangnawarat <narumol.prangnawarat@arm.com>2019-05-03 16:53:08 +0100
commit856d1c9c9b0b1609282c4f797cbafefc6531240d (patch)
tree280526045f3c33727112640d82438da9081cad74 /ArmnnDevice.cpp
parent689c6ee3604ab34197812b13ad3ccefa4ca60418 (diff)
downloadandroid-nn-driver-856d1c9c9b0b1609282c4f797cbafefc6531240d.tar.gz
IVGCVSW-3014 Check supported backends from runtime divice spec
!armnn:1070 Signed-off-by: Narumol Prangnawarat <narumol.prangnawarat@arm.com> Change-Id: If0f411f2232e856ebc4f1a4c10fa626e3277a6ab
Diffstat (limited to 'ArmnnDevice.cpp')
-rw-r--r--ArmnnDevice.cpp25
1 files changed, 25 insertions, 0 deletions
diff --git a/ArmnnDevice.cpp b/ArmnnDevice.cpp
index 216b010c..c96798a8 100644
--- a/ArmnnDevice.cpp
+++ b/ArmnnDevice.cpp
@@ -81,6 +81,31 @@ ArmnnDevice::ArmnnDevice(DriverOptions options)
ALOGE("ArmnnDevice: Failed to setup CL runtime: %s. Device will be unavailable.", error.what());
}
#endif
+ std::vector<armnn::BackendId> backends;
+
+ if (m_Runtime)
+ {
+ const armnn::BackendIdSet supportedDevices = m_Runtime->GetDeviceSpec().GetSupportedBackends();
+ for (auto &backend : m_Options.GetBackends())
+ {
+ if (std::find(supportedDevices.cbegin(), supportedDevices.cend(), backend) == supportedDevices.cend())
+ {
+ ALOGW("Requested unknown backend %s", backend.Get().c_str());
+ }
+ else
+ {
+ backends.push_back(backend);
+ }
+ }
+ }
+
+ if (backends.empty())
+ {
+ backends.emplace_back("GpuAcc");
+ ALOGW("No known backend specified. Defaulting to: GpuAcc");
+ }
+
+ m_Options.SetBackends(backends);
ALOGV("ArmnnDevice: Created device with the following backends: %s",
GetBackendString(m_Options).c_str());
}