diff options
author | Narumol Prangnawarat <narumol.prangnawarat@arm.com> | 2019-05-03 16:42:52 +0100 |
---|---|---|
committer | Narumol Prangnawarat <narumol.prangnawarat@arm.com> | 2019-05-03 16:53:08 +0100 |
commit | 856d1c9c9b0b1609282c4f797cbafefc6531240d (patch) | |
tree | 280526045f3c33727112640d82438da9081cad74 /ArmnnDevice.cpp | |
parent | 689c6ee3604ab34197812b13ad3ccefa4ca60418 (diff) | |
download | android-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.cpp | 25 |
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()); } |