From bf18a266bf5d0fe74db7cca0f54fb1ae25869da8 Mon Sep 17 00:00:00 2001 From: Francis Murtagh Date: Tue, 27 Oct 2020 15:20:40 +0000 Subject: Bugfix: Allow use of dynamic backendId in execute network * Stops execute network rejecting backendId based on BackendRegistry * Dynamically loaded backends arent visible yet as runtime isn't initialized Change-Id: I87adfd137b2225ab07f8c3e996db9565caf276eb Signed-off-by: Francis Murtagh --- tests/ExecuteNetwork/ExecuteNetworkParams.cpp | 20 ++++++++++++-------- .../ExecuteNetwork/ExecuteNetworkProgramOptions.cpp | 1 + 2 files changed, 13 insertions(+), 8 deletions(-) (limited to 'tests') diff --git a/tests/ExecuteNetwork/ExecuteNetworkParams.cpp b/tests/ExecuteNetwork/ExecuteNetworkParams.cpp index c298bd614a..ccf80648fe 100644 --- a/tests/ExecuteNetwork/ExecuteNetworkParams.cpp +++ b/tests/ExecuteNetwork/ExecuteNetworkParams.cpp @@ -125,14 +125,18 @@ void CheckClTuningParameter(const int& tuningLevel, void ExecuteNetworkParams::ValidateParams() { - // Check compute devices - std::string invalidBackends; - if (!CheckRequestedBackendsAreValid(m_ComputeDevices, armnn::Optional(invalidBackends))) - { - throw armnn::InvalidArgumentException(fmt::format("Some of the requested compute devices are invalid. " - "\nInvalid devices: {} \nAvailable devices are: {}", - invalidBackends, - armnn::BackendRegistryInstance().GetBackendIdsAsString())); + if (m_DynamicBackendsPath=="") + { + // Check compute devices are valid unless they are dynamically loaded at runtime + std::string invalidBackends; + if (!CheckRequestedBackendsAreValid(m_ComputeDevices, armnn::Optional(invalidBackends))) + { + throw armnn::InvalidArgumentException( + fmt::format("Some of the requested compute devices are invalid. " + "\nInvalid devices: {} \nAvailable devices are: {}", + invalidBackends, + armnn::BackendRegistryInstance().GetBackendIdsAsString())); + } } CheckClTuningParameter(m_TuningLevel, m_TuningPath, m_ComputeDevices); diff --git a/tests/ExecuteNetwork/ExecuteNetworkProgramOptions.cpp b/tests/ExecuteNetwork/ExecuteNetworkProgramOptions.cpp index 8434adf691..72b784c72e 100644 --- a/tests/ExecuteNetwork/ExecuteNetworkProgramOptions.cpp +++ b/tests/ExecuteNetwork/ExecuteNetworkProgramOptions.cpp @@ -371,6 +371,7 @@ void ProgramOptions::ParseOptions(int ac, const char* av[]) ParseStringList(GetOptionValue("write-outputs-to-file", m_CxxResult), ","); m_ExNetParams.m_GenerateTensorData = m_ExNetParams.m_InputTensorDataFilePaths.empty(); + m_ExNetParams.m_DynamicBackendsPath = m_RuntimeOptions.m_DynamicBackendsPath; // Parse input tensor shape from the string we got from the command-line. std::vector inputTensorShapesVector = -- cgit v1.2.1