From 46e574e8195ae2e8085086457a642210d9d3b8cd Mon Sep 17 00:00:00 2001 From: Narumol Prangnawarat Date: Fri, 5 May 2023 16:39:05 +0100 Subject: IVGCVSW-7626 Add Execute Network for Opaque Delegate Signed-off-by: Narumol Prangnawarat Change-Id: Ibdded86713368ecfdf31c4118dfe8a3404d1e3b8 --- delegate/CMakeLists.txt | 139 +++++++++++++-------- delegate/opaque/src/armnn_delegate.cpp | 2 +- .../opaque/src/test/ArmnnOpaqueDelegateTest.cpp | 4 +- 3 files changed, 87 insertions(+), 58 deletions(-) (limited to 'delegate') diff --git a/delegate/CMakeLists.txt b/delegate/CMakeLists.txt index f0b0e97b71..055ffce1c3 100644 --- a/delegate/CMakeLists.txt +++ b/delegate/CMakeLists.txt @@ -351,65 +351,94 @@ if(BUILD_UNIT_TESTS) endif() endif() -if(BUILD_DELEGATE_JNI_INTERFACE) +if(BUILD_DELEGATE_JNI_INTERFACE AND BUILD_CLASSIC_DELEGATE) add_subdirectory(armnnDelegateJNI) endif() #################################################### ## Export targets -set(armnn_delegate_export_targets) -list(APPEND armnn_delegate_export_targets - armnnClassicDelegateObject - armnnDelegate - tflite_headers - flatbuffer_headers - profiling_library_headers - thirdparty_headers) - -install( - TARGETS ${armnn_delegate_export_targets} - EXPORT armnn-delegate-targets - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) - -## Set export alias -set_target_properties(armnnDelegate - PROPERTIES - EXPORT_NAME ArmnnDelegate) - -## Export target scrips -install( - EXPORT armnn-delegate-targets - FILE ArmnnDelegateTargets.cmake - NAMESPACE ArmnnDelegate:: - DESTINATION ${CMAKE_INSTALL_LIBDIR}) - -## Create ArmnnDelegateConfig.cmake -include(CMakePackageConfigHelpers) -set(INSTALL_CONFIGDIR ${CMAKE_INSTALL_LIBDIR}) -message(STATUS "CMAKE_CURRENT_LIST_DIR ${CMAKE_CURRENT_LIST_DIR}" ) -message(STATUS "CMAKE_CURRENT_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}" ) -SET(Armnn_DIR "${Armnn_DIR}") - -configure_package_config_file( - ${CMAKE_CURRENT_LIST_DIR}/cmake/Modules/ArmnnDelegateConfig.cmake.in - ${CMAKE_CURRENT_BINARY_DIR}/ArmnnDelegateConfig.cmake - INSTALL_DESTINATION ${INSTALL_CONFIGDIR} - PATH_VARS Armnn_DIR) - -## Install ArmNN Delegate config file -install( - FILES - ${CMAKE_CURRENT_BINARY_DIR}/ArmnnDelegateConfig.cmake - DESTINATION ${INSTALL_CONFIGDIR}) - -## Export from build tree -export( - EXPORT armnn-delegate-targets - FILE ${CMAKE_CURRENT_BINARY_DIR}/ArmnnDelegateTargets.cmake - NAMESPACE ArmnnDelegate::) -add_library(ArmnnDelegate::ArmnnDelegate ALIAS armnnDelegate) - +if (BUILD_CLASSIC_DELEGATE) + set(armnn_delegate_export_targets) + list(APPEND armnn_delegate_export_targets + armnnClassicDelegateObject + armnnDelegate + tflite_headers + flatbuffer_headers + profiling_library_headers + thirdparty_headers) + + install( + TARGETS ${armnn_delegate_export_targets} + EXPORT armnn-delegate-targets + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) + + ## Set export alias + set_target_properties(armnnDelegate + PROPERTIES + EXPORT_NAME ArmnnDelegate) + + ## Export target scrips + install( + EXPORT armnn-delegate-targets + FILE ArmnnDelegateTargets.cmake + NAMESPACE ArmnnDelegate:: + DESTINATION ${CMAKE_INSTALL_LIBDIR}) + + ## Create ArmnnDelegateConfig.cmake + include(CMakePackageConfigHelpers) + set(INSTALL_CONFIGDIR ${CMAKE_INSTALL_LIBDIR}) + message(STATUS "CMAKE_CURRENT_LIST_DIR ${CMAKE_CURRENT_LIST_DIR}" ) + message(STATUS "CMAKE_CURRENT_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}" ) + SET(Armnn_DIR "${Armnn_DIR}") + + configure_package_config_file( + ${CMAKE_CURRENT_LIST_DIR}/cmake/Modules/ArmnnDelegateConfig.cmake.in + ${CMAKE_CURRENT_BINARY_DIR}/ArmnnDelegateConfig.cmake + INSTALL_DESTINATION ${INSTALL_CONFIGDIR} + PATH_VARS Armnn_DIR) + + ## Install ArmNN Delegate config file + install( + FILES + ${CMAKE_CURRENT_BINARY_DIR}/ArmnnDelegateConfig.cmake + DESTINATION ${INSTALL_CONFIGDIR}) + + ## Export from build tree + export( + EXPORT armnn-delegate-targets + FILE ${CMAKE_CURRENT_BINARY_DIR}/ArmnnDelegateTargets.cmake + NAMESPACE ArmnnDelegate::) + add_library(ArmnnDelegate::ArmnnDelegate ALIAS armnnDelegate) +endif() #################################################### +## Export opaque delegate targets + +if(BUILD_OPAQUE_DELEGATE) + set(armnn_opaque_delegate_export_targets) + list(APPEND armnn_opaque_delegate_export_targets + armnnOpaqueDelegateObject + armnnOpaqueDelegate + tflite_headers + flatbuffer_headers + profiling_library_headers + thirdparty_headers) + + install( + TARGETS armnnOpaqueDelegate + EXPORT armnn-opaque-delegate-targets + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) + + ## Set export alias + set_target_properties(armnnOpaqueDelegate + PROPERTIES + EXPORT_NAME ArmnnOpaqueDelegate) + + add_library(ArmnnDelegate::ArmnnOpaqueDelegate ALIAS armnnOpaqueDelegate) +endif() + +#################################################### \ No newline at end of file diff --git a/delegate/opaque/src/armnn_delegate.cpp b/delegate/opaque/src/armnn_delegate.cpp index 8cdf01ffc3..1c9f2d973e 100644 --- a/delegate/opaque/src/armnn_delegate.cpp +++ b/delegate/opaque/src/armnn_delegate.cpp @@ -578,7 +578,7 @@ TfLiteStatus ArmnnSubgraph::Invoke(TfLiteOpaqueContext* tfLiteContext, TfLiteOpa armnn::TensorInfo inputTensorInfo = inputBinding.second; inputTensorInfo.SetConstant(true); const armnn::ConstTensor inputTensor(inputTensorInfo, TfLiteOpaqueTensorData(tensor)); - inputTensors.emplace_back(inputIdx, inputTensor); + inputTensors.emplace_back(inputIndexArray[inputIdx], inputTensor); ++inputIndex; } diff --git a/delegate/opaque/src/test/ArmnnOpaqueDelegateTest.cpp b/delegate/opaque/src/test/ArmnnOpaqueDelegateTest.cpp index 79f98a9e5e..2669bc8480 100644 --- a/delegate/opaque/src/test/ArmnnOpaqueDelegateTest.cpp +++ b/delegate/opaque/src/test/ArmnnOpaqueDelegateTest.cpp @@ -44,8 +44,8 @@ TEST_CASE ("DelegatePluginTest") { // Use default settings until options have been enabled. flatbuffers::FlatBufferBuilder flatBufferBuilder; - tflite::TFLiteSettingsBuilder tfliteSettingBuilder(flatBufferBuilder); - flatbuffers::Offset tfliteSettings = tfliteSettingBuilder.Finish(); + tflite::TFLiteSettingsBuilder tfliteSettingsBuilder(flatBufferBuilder); + flatbuffers::Offset tfliteSettings = tfliteSettingsBuilder.Finish(); flatBufferBuilder.Finish(tfliteSettings); const tflite::TFLiteSettings* settings = flatbuffers::GetRoot( flatBufferBuilder.GetBufferPointer()); -- cgit v1.2.1