From 16ea11e4a5775fe4098fa262aaf9dcf533b8b564 Mon Sep 17 00:00:00 2001 From: Teresa Charlin Date: Thu, 26 Oct 2023 13:31:38 +0100 Subject: IVGCVSW-7722 Add ArmNNSettings to Opaque Delegate for ExecuteNetwork Signed-off-by: Teresa Charlin Change-Id: I0a111fa8ef62632c3c975537a727d75531a44b7a --- tests/ExecuteNetwork/TfliteExecutor.cpp | 29 +++++++++++++---------------- 1 file changed, 13 insertions(+), 16 deletions(-) diff --git a/tests/ExecuteNetwork/TfliteExecutor.cpp b/tests/ExecuteNetwork/TfliteExecutor.cpp index 04e510f938..4d64552028 100644 --- a/tests/ExecuteNetwork/TfliteExecutor.cpp +++ b/tests/ExecuteNetwork/TfliteExecutor.cpp @@ -71,27 +71,24 @@ TfLiteExecutor::TfLiteExecutor(const ExecuteNetworkParams& params, armnn::IRunti if (m_Params.m_TfLiteExecutor == ExecuteNetworkParams::TfLiteExecutor::ArmNNTfLiteOpaqueDelegate) { #if defined(ARMNN_TFLITE_OPAQUE_DELEGATE) - // Use default settings until options have been enabled - flatbuffers::FlatBufferBuilder flatBufferBuilder; - TFLiteSettingsBuilder tfliteSettingsBuilder(flatBufferBuilder); - flatbuffers::Offset tfliteSettings = tfliteSettingsBuilder.Finish(); - flatBufferBuilder.Finish(tfliteSettings); - const TFLiteSettings* settings = - flatbuffers::GetRoot(flatBufferBuilder.GetBufferPointer()); - - std::unique_ptr delegatePlugIn = - delegates::DelegatePluginRegistry::CreateByName("armnn_delegate", *settings); - - // Create Armnn Opaque Delegate from Armnn Delegate Plugin - delegates::TfLiteDelegatePtr armnnDelegate = delegatePlugIn->Create(); - - // Add Delegate to the builder - builder.AddDelegate(armnnDelegate.get()); if (builder(&m_TfLiteInterpreter) != kTfLiteOk) { LogAndThrow("Error loading the model into the TfLiteInterpreter."); } + // Populate a DelegateOptions from the ExecuteNetworkParams. + armnnDelegate::DelegateOptions delegateOptions = m_Params.ToDelegateOptions(); + delegateOptions.SetRuntimeOptions(runtimeOptions); + std::unique_ptr + theArmnnDelegate(armnnOpaqueDelegate::TfLiteArmnnOpaqueDelegateCreate(delegateOptions), + armnnOpaqueDelegate::TfLiteArmnnOpaqueDelegateDelete); + // Register armnn_delegate to TfLiteInterpreter + auto result = m_TfLiteInterpreter->ModifyGraphWithDelegate(std::move(theArmnnDelegate)); + if (result != kTfLiteOk) + { + LogAndThrow("Could not register ArmNN TfLite Opaque Delegate to TfLiteInterpreter: " + + TfLiteStatusToString(result) + "."); + } #else LogAndThrow("Not built with Arm NN Tensorflow-Lite opaque delegate support."); #endif -- cgit v1.2.1