All of lore.kernel.org
 help / color / mirror / Atom feed
From: Denys Dmytriyenko <denys@ti.com>
To: Jacob Stiffler <j-stiffler@ti.com>
Cc: meta-arago@arago-project.org
Subject: Re: [rocko/master][PATCH v8 5/5] armnn: ARM NN machine learning SDK.
Date: Fri, 14 Sep 2018 15:54:19 -0400	[thread overview]
Message-ID: <20180914195418.GY12296@beryl> (raw)
In-Reply-To: <1536949618-21293-5-git-send-email-j-stiffler@ti.com>

On Fri, Sep 14, 2018 at 02:26:58PM -0400, Jacob Stiffler wrote:
> From: Qin Su <qsu@ti.com>
> 
> Arm NN SDK is a set of open-source Linux software and tools that enables
> machine learning workloads on power-efficient devices. Arm NN takes Caffe,
> TensorFlow network frameworks, translate them to the internal Arm NN
> formatand then, through the Compute Library, deploy them efficiently on
> Cortex-A CPUs.
> 
> Signed-off-by: Qin Su <qsu@ti.com>
> Signed-off-by: Jacob Stiffler <j-stiffler@ti.com>
> ---
> Changes from v6:
> * Add SUMMARY
> * Add "Upstream-Status" to patches

Thanks again for all the fixes and cleanups! Especially detailed Upstream-status.


> Changes from previous versions:
> * Add "_git" suffix to recipe name.
> * Add version.
> * Add branch option for SRC_URI.
> * Remove bash-completion package as the file is not present.
> 
>  .../armnn/0001-stdlib-issue-work-around.patch      | 61 ++++++++++++++++++++++
>  .../0002-enable-use-of-boost-shared-library.patch  | 37 +++++++++++++
>  .../recipes-support/armnn/armnn_git.bb             | 46 ++++++++++++++++
>  3 files changed, 144 insertions(+)
>  create mode 100755 meta-arago-extras/recipes-support/armnn/armnn/0001-stdlib-issue-work-around.patch
>  create mode 100755 meta-arago-extras/recipes-support/armnn/armnn/0002-enable-use-of-boost-shared-library.patch
>  create mode 100644 meta-arago-extras/recipes-support/armnn/armnn_git.bb
> 
> diff --git a/meta-arago-extras/recipes-support/armnn/armnn/0001-stdlib-issue-work-around.patch b/meta-arago-extras/recipes-support/armnn/armnn/0001-stdlib-issue-work-around.patch
> new file mode 100755
> index 0000000..cf83532
> --- /dev/null
> +++ b/meta-arago-extras/recipes-support/armnn/armnn/0001-stdlib-issue-work-around.patch
> @@ -0,0 +1,61 @@
> +From 3691057b51010c1bd979998c460ad7b43f97496f Mon Sep 17 00:00:00 2001
> +From: Qin Su <qsu@ti.com>
> +Date: Fri, 10 Aug 2018 11:02:14 -0400
> +Subject: [PATCH] stdlib issue work around
> +
> +Upstream-Status: Pending
> +Need to invesitate whether this is appropriate, or if cmake should be
> +fixed. This is currently an open issue on the cmake project [1].
> +
> +[1] https://gitlab.kitware.com/cmake/cmake/issues/16291
> +
> +Signed-off-by: Qin Su <qsu@ti.com>
> +---
> + cmake/GlobalConfig.cmake | 28 ++++++++++++++++++++++++++++
> + 1 file changed, 28 insertions(+)
> + mode change 100644 => 100755 cmake/GlobalConfig.cmake
> +
> +diff --git a/cmake/GlobalConfig.cmake b/cmake/GlobalConfig.cmake
> +old mode 100644
> +new mode 100755
> +index 2dbeada..2b88c16
> +--- a/cmake/GlobalConfig.cmake
> ++++ b/cmake/GlobalConfig.cmake
> +@@ -47,6 +47,34 @@ elseif(${CMAKE_CXX_COMPILER_ID} STREQUAL MSVC)
> +     set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /EHsc /MP")
> +     add_definitions(-DNOMINMAX=1 -DNO_STRICT=1)
> + endif()
> ++
> ++# Ensure that the default include system directories are added to the list of CMake implicit includes.
> ++# This workarounds an issue that happens when using GCC 6 and using system includes (-isystem).
> ++# For more details check: https://bugs.webkit.org/show_bug.cgi?id=161697
> ++macro(DETERMINE_GCC_SYSTEM_INCLUDE_DIRS _lang _compiler _flags _result)
> ++    file(WRITE "${CMAKE_BINARY_DIR}/CMakeFiles/dummy" "\n")
> ++    separate_arguments(_buildFlags UNIX_COMMAND "${_flags}")
> ++    execute_process(COMMAND ${_compiler} ${_buildFlags} -v -E -x ${_lang} -dD dummy
> ++                    WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/CMakeFiles OUTPUT_QUIET
> ++                    ERROR_VARIABLE _gccOutput)
> ++    file(REMOVE "${CMAKE_BINARY_DIR}/CMakeFiles/dummy")
> ++    if ("${_gccOutput}" MATCHES "> search starts here[^\n]+\n *(.+) *\n *End of (search) list")
> ++        set(${_result} ${CMAKE_MATCH_1})
> ++        string(REPLACE "\n" " " ${_result} "${${_result}}")
> ++        separate_arguments(${_result})
> ++    endif ()
> ++endmacro()
> ++
> ++if (CMAKE_COMPILER_IS_GNUCC)
> ++   DETERMINE_GCC_SYSTEM_INCLUDE_DIRS("c" "${CMAKE_C_COMPILER}" "${CMAKE_C_FLAGS}" SYSTEM_INCLUDE_DIRS)
> ++   set(CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES ${CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES} ${SYSTEM_INCLUDE_DIRS})
> ++endif ()
> ++
> ++if (CMAKE_COMPILER_IS_GNUCXX)
> ++   DETERMINE_GCC_SYSTEM_INCLUDE_DIRS("c++" "${CMAKE_CXX_COMPILER}" "${CMAKE_CXX_FLAGS}" SYSTEM_INCLUDE_DIRS)
> ++   set(CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES ${CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES} ${SYSTEM_INCLUDE_DIRS})
> ++endif ()
> ++
> + if("${CMAKE_SYSTEM_NAME}" STREQUAL Android)
> +     set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -llog")
> +     set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -llog")
> +--
> +1.9.1
> +
> diff --git a/meta-arago-extras/recipes-support/armnn/armnn/0002-enable-use-of-boost-shared-library.patch b/meta-arago-extras/recipes-support/armnn/armnn/0002-enable-use-of-boost-shared-library.patch
> new file mode 100755
> index 0000000..50c2e1d
> --- /dev/null
> +++ b/meta-arago-extras/recipes-support/armnn/armnn/0002-enable-use-of-boost-shared-library.patch
> @@ -0,0 +1,37 @@
> +From 34a7ec821b11f7bed3dd644bf341cbaf6023516b Mon Sep 17 00:00:00 2001
> +From: Qin Su <qsu@ti.com>
> +Date: Tue, 11 Sep 2018 17:11:07 -0400
> +Subject: [PATCH] enable use of boost shared library
> +
> +Upstream-Status: Inappropriate [configuration]
> +This is a hack to modify hard coded configuration. If anything, it
> +should be made configurable.
> +
> +Signed-off-by: Qin Su <qsu@ti.com>
> +---
> + cmake/GlobalConfig.cmake | 6 ++++--
> + 1 file changed, 4 insertions(+), 2 deletions(-)
> + mode change 100644 => 100755 cmake/GlobalConfig.cmake
> +
> +diff --git a/cmake/GlobalConfig.cmake b/cmake/GlobalConfig.cmake
> +old mode 100644
> +new mode 100755
> +index 2dbeada..a5a1113
> +--- a/cmake/GlobalConfig.cmake
> ++++ b/cmake/GlobalConfig.cmake
> +@@ -96,8 +96,10 @@ endif()
> + set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules ${CMAKE_MODULE_PATH})
> +
> + # Boost
> +-add_definitions("-DBOOST_ALL_NO_LIB") # Turn off auto-linking as we specify the libs manually
> +-set(Boost_USE_STATIC_LIBS ON)
> ++#add_definitions("-DBOOST_ALL_NO_LIB") # Turn off auto-linking as we specify the libs manually
> ++#set(Boost_USE_STATIC_LIBS ON)
> ++add_definitions(-DBOOST_ALL_DYN_LINK) # use shared library
> ++set(Boost_USE_STATIC_LIBS OFF)
> + find_package(Boost 1.59 REQUIRED COMPONENTS unit_test_framework system filesystem log program_options)
> + include_directories(SYSTEM "${Boost_INCLUDE_DIR}")
> + link_directories(${Boost_LIBRARY_DIR})
> +--
> +1.9.1
> +
> diff --git a/meta-arago-extras/recipes-support/armnn/armnn_git.bb b/meta-arago-extras/recipes-support/armnn/armnn_git.bb
> new file mode 100644
> index 0000000..3bd4c82
> --- /dev/null
> +++ b/meta-arago-extras/recipes-support/armnn/armnn_git.bb
> @@ -0,0 +1,46 @@
> +SUMMARY = "ARM Neural Network SDK"
> +DESCRIPTION = "Linux software and tools to enable machine learning (Caffe/Tensorflow) workloads on power-efficient devices"
> +LICENSE = "MIT"
> +LIC_FILES_CHKSUM = "file://LICENSE;md5=3e14a924c16f7d828b8335a59da64074"
> +
> +PV = "20180502"
> +
> +BRANCH = "master"
> +SRCREV = "4c7098bfeab1ffe1cdc77f6c15548d3e73274746"
> +
> +S = "${WORKDIR}/git"
> +
> +inherit cmake
> +
> +SRC_URI = " \
> +    git://github.com/ARM-software/armnn.git;branch=${BRANCH} \
> +    file://0001-stdlib-issue-work-around.patch \
> +    file://0002-enable-use-of-boost-shared-library.patch \
> +"
> +
> +DEPENDS = " \
> +    boost \
> +    protobuf \
> +    stb \
> +    arm-compute-library \
> +    armnn-caffe \
> +    armnn-tensorflow \
> +"
> +
> +EXTRA_OECMAKE=" \
> +    -DBUILD_SHARED_LIBS=ON -DREGISTER_INSTALL_PREFIX=OFF \
> +    -DARMCOMPUTE_ROOT=${STAGING_DIR_HOST}${datadir}/arm-compute-library \
> +    -DARMCOMPUTE_BUILD_DIR=${STAGING_DIR_HOST}${datadir}/arm-compute-library/build \
> +    -DCAFFE_GENERATED_SOURCES=${STAGING_DIR_HOST}${datadir}/armnn-caffe \
> +    -DTF_GENERATED_SOURCES=${STAGING_DIR_HOST}${datadir}/armnn-tensorflow \
> +    -DBUILD_CAFFE_PARSER=1 -DBUILD_TF_PARSER=1 \
> +    -DARMCOMPUTENEON=1 \
> +    -DBUILD_TESTS=1 -DPROFILING=1 \
> +    -DTHIRD_PARTY_INCLUDE_DIRS=${STAGING_DIR_HOST}${includedir} \
> +"
> +
> +CXXFLAGS += "-fopenmp"
> +LIBS += "-larmpl_lp64_mp"
> +
> +FILES_${PN}-dev += "{libdir}/cmake/*"
> +INSANE_SKIP_${PN}-dev = "dev-elf"
> -- 
> 2.7.4
> 
> _______________________________________________
> meta-arago mailing list
> meta-arago@arago-project.org
> http://arago-project.org/cgi-bin/mailman/listinfo/meta-arago


      reply	other threads:[~2018-09-14 19:55 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-09-14 18:26 [rocko/master][PATCH v8 2/5] arm-compute-library: Machine Learning library for ARM Jacob Stiffler
2018-09-14 18:26 ` [rocko/master][PATCH v8 4/5] armnn-tensorflow: tensorflow protobuf files for building tensorflow models in armnn Jacob Stiffler
2018-09-14 18:26 ` [rocko/master][PATCH v8 5/5] armnn: ARM NN machine learning SDK Jacob Stiffler
2018-09-14 19:54   ` Denys Dmytriyenko [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180914195418.GY12296@beryl \
    --to=denys@ti.com \
    --cc=j-stiffler@ti.com \
    --cc=meta-arago@arago-project.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.