Accepting request 736849 from home:Guillaume_G:branches:home:mslacken:ml

- Replace patch with an upstreamable version:
 * armnn-generate-versioned-library.patch
- Add ONNX Parser support (disabled by default as there is no 
  official ONNX package yet)

OBS-URL: https://build.opensuse.org/request/show/736849
OBS-URL: https://build.opensuse.org/package/show/science:machinelearning/armnn?expand=0&rev=8
This commit is contained in:
Guillaume GARDET 2019-10-10 12:22:47 +00:00 committed by Git OBS Bridge
parent 98cd3ecc18
commit 3beeef13a8
3 changed files with 142 additions and 20 deletions

View File

@ -1,7 +1,38 @@
diff -purN armnn-19.08.orig/CMakeLists.txt armnn-19.08/CMakeLists.txt
--- armnn-19.08.orig/CMakeLists.txt 2019-08-30 07:49:26.000000000 +0000
+++ armnn-19.08/CMakeLists.txt 2019-09-05 08:13:37.958980306 +0000
@@ -95,6 +95,7 @@ if(BUILD_CAFFE_PARSER)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index fc68f3af..3616ae8e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -7,6 +7,7 @@ project(armnn)
set(additional_cmake_files)
list(APPEND additional_cmake_files
+ cmake/armnnVersion.cmake
cmake/Utils.cmake
cmake/GlobalConfig.cmake
cmake/AddDllCopyCommands.cmake)
@@ -15,6 +16,21 @@ foreach(cmake_file ${additional_cmake_files})
include(${cmake_file})
endforeach()
+
+# Define LIB version
+set(GENERIC_LIB_VERSION "${ARMNN_MAJOR_VERSION}.${ARMNN_MINOR_VERSION}")
+# Define LIB soversion
+set(GENERIC_LIB_SOVERSION "${ARMNN_MAJOR_VERSION}")
+# Define _ARMNN_VERSION string to be used in include/armnn/Version.hpp for ARMNN_VERSION string
+set(_ARMNN_VERSION
+ "20${ARMNN_MAJOR_VERSION}${ARMNN_MINOR_VERSION}${ARMNN_BUILD_VERSION}")
+if(${CMAKE_VERSION} VERSION_LESS "3.12.0")
+ add_definitions(-D_ARMNN_VERSION=${_ARMNN_VERSION})
+else()
+ add_compile_definitions(_ARMNN_VERSION=${_ARMNN_VERSION})
+endif()
+
+
if (DYNAMIC_BACKEND_PATHS)
# It's expected to have the format: DYNAMIC_BACKEND_PATHS="PATH_1:PATH_2...:PATH_N"
add_definitions('-DDYNAMIC_BACKEND_PATHS="${DYNAMIC_BACKEND_PATHS}"')
@@ -95,6 +111,7 @@ if(BUILD_CAFFE_PARSER)
target_link_libraries(armnnCaffeParser armnn)
target_link_libraries(armnnCaffeParser ${PROTOBUF_LIBRARIES})
@ -9,7 +40,7 @@ diff -purN armnn-19.08.orig/CMakeLists.txt armnn-19.08/CMakeLists.txt
endif()
@@ -119,6 +120,7 @@ if(BUILD_ONNX_PARSER)
@@ -119,6 +136,7 @@ if(BUILD_ONNX_PARSER)
# Protobuf
target_link_libraries(armnnOnnxParser ${PROTOBUF_LIBRARIES})
@ -17,7 +48,7 @@ diff -purN armnn-19.08.orig/CMakeLists.txt armnn-19.08/CMakeLists.txt
endif()
if(BUILD_TF_PARSER)
@@ -142,6 +144,7 @@ if(BUILD_TF_PARSER)
@@ -142,6 +160,7 @@ if(BUILD_TF_PARSER)
# Protobuf (use the specific version tensorflow wants)
target_link_libraries(armnnTfParser ${PROTOBUF_LIBRARIES})
@ -25,16 +56,16 @@ diff -purN armnn-19.08.orig/CMakeLists.txt armnn-19.08/CMakeLists.txt
endif()
if(BUILD_ARMNN_QUANTIZER AND ARMNNREF)
@@ -199,6 +202,8 @@ if(BUILD_ARMNN_QUANTIZER AND ARMNNREF)
if(Threads_FOUND AND (NOT ("${CMAKE_SYSTEM_NAME}" STREQUAL Android)))
@@ -200,6 +219,8 @@ if(BUILD_ARMNN_QUANTIZER AND ARMNNREF)
target_link_libraries(ArmnnQuantizer pthread)
endif()
+
+ set_target_properties(ArmnnQuantizer PROPERTIES VERSION ${GENERIC_LIB_VERSION} SOVERSION ${GENERIC_LIB_SOVERSION} )
+ set_target_properties(ArmnnQuantizer PROPERTIES VERSION ${GENERIC_LIB_VERSION} SOVERSION ${GENERIC_LIB_SOVERSION} )
+
endif()
@@ -484,6 +489,7 @@ endif()
@@ -539,6 +560,7 @@ endif()
if(PROFILING_BACKEND_STREAMLINE)
target_link_libraries(armnn pthread)
endif()
@ -42,18 +73,41 @@ diff -purN armnn-19.08.orig/CMakeLists.txt armnn-19.08/CMakeLists.txt
if(BUILD_UNIT_TESTS)
set(unittest_sources)
diff -purN armnn-19.08.orig/src/armnnSerializer/CMakeLists.txt armnn-19.08/src/armnnSerializer/CMakeLists.txt
--- armnn-19.08.orig/src/armnnSerializer/CMakeLists.txt 2019-08-30 07:49:26.000000000 +0000
+++ armnn-19.08/src/armnnSerializer/CMakeLists.txt 2019-09-05 08:18:41.108319913 +0000
diff --git a/cmake/armnnVersion.cmake b/cmake/armnnVersion.cmake
new file mode 100644
index 00000000..68783370
--- /dev/null
+++ b/cmake/armnnVersion.cmake
@@ -0,0 +1,4 @@
+# ArmNN version number components.
+set(ARMNN_MAJOR_VERSION 19)
+set(ARMNN_MINOR_VERSION 08)
+set(ARMNN_BUILD_VERSION 00)
diff --git a/include/armnn/Version.hpp b/include/armnn/Version.hpp
index 9d73cd54..735be6b9 100644
--- a/include/armnn/Version.hpp
+++ b/include/armnn/Version.hpp
@@ -9,4 +9,5 @@
// YYYY = 4-digit year number
// MM = 2-digit month number
// PP = 2-digit patch number
-#define ARMNN_VERSION "20190800"
+// Defined in CMakeLists.txt
+#define ARMNN_VERSION _ARMNN_VERSION
diff --git a/src/armnnSerializer/CMakeLists.txt b/src/armnnSerializer/CMakeLists.txt
index 225999bb..ccc924e6 100755
--- a/src/armnnSerializer/CMakeLists.txt
+++ b/src/armnnSerializer/CMakeLists.txt
@@ -43,4 +43,5 @@ if(BUILD_ARMNN_SERIALIZER)
install(TARGETS armnnSerializer
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
+ set_target_properties(armnnSerializer PROPERTIES VERSION ${GENERIC_LIB_VERSION} SOVERSION ${GENERIC_LIB_SOVERSION} )
endif()
diff -purN armnn-19.08.orig/src/armnnTfLiteParser/CMakeLists.txt armnn-19.08/src/armnnTfLiteParser/CMakeLists.txt
--- armnn-19.08.orig/src/armnnTfLiteParser/CMakeLists.txt 2019-08-30 07:49:26.000000000 +0000
+++ armnn-19.08/src/armnnTfLiteParser/CMakeLists.txt 2019-09-05 08:20:47.788043949 +0000
diff --git a/src/armnnTfLiteParser/CMakeLists.txt b/src/armnnTfLiteParser/CMakeLists.txt
index 17d4cf68..ae60079a 100755
--- a/src/armnnTfLiteParser/CMakeLists.txt
+++ b/src/armnnTfLiteParser/CMakeLists.txt
@@ -21,6 +21,8 @@ if(BUILD_TF_LITE_PARSER)
target_link_libraries(armnnTfLiteParser ${Boost_FILESYSTEM_LIBRARY} ${Boost_THREAD_LIBRARY})
target_link_libraries(armnnTfLiteParser armnn ${FLATBUFFERS_LIBRARY})

View File

@ -1,3 +1,15 @@
-------------------------------------------------------------------
Mon Oct 7 13:00:59 UTC 2019 - Guillaume GARDET <guillaume.gardet@opensuse.org>
- Replace patch with an upstreamable version:
* armnn-generate-versioned-library.patch
-------------------------------------------------------------------
Tue Oct 1 19:04:50 UTC 2019 - Guillaume GARDET <guillaume.gardet@opensuse.org>
- Add ONNX Parser support (disabled by default as there is no
official ONNX package yet)
-------------------------------------------------------------------
Tue Oct 1 14:30:13 UTC 2019 - Guillaume GARDET <guillaume.gardet@opensuse.org>

View File

@ -65,6 +65,9 @@
%bcond_with armnn_tf
%endif # suse_version
# Disable ONNX
%bcond_with armnn_onnx
%define version_major 19
%define version_minor 08
@ -77,7 +80,7 @@ Group: Development/Libraries/Other
Url: https://developer.arm.com/products/processors/machine-learning/arm-nn
Source0: https://github.com/ARM-software/armnn/archive/v%{version}.tar.gz#/armnn-%{version}.tar.gz
Source1: armnn-rpmlintrc
# PATCH: based on http://arago-project.org/git/?p=meta-arago.git;a=blob;f=meta-arago-extras/recipes-support/armnn/armnn/0004-generate-versioned-library.patch;hb=master
# PATCH-FIX-UPSTREAM - https://github.com/ARM-software/armnn/issues/275
Patch1: armnn-generate-versioned-library.patch
# Patch: http://arago-project.org/git/?p=meta-arago.git;a=blob;f=meta-arago-extras/recipes-support/armnn/armnn/0007-enable-use-of-arm-compute-shared-library.patch;hb=master
Patch2: 0007-enable-use-of-arm-compute-shared-library.patch
@ -115,6 +118,9 @@ BuildRequires: Mesa-libOpenCL
BuildRequires: ocl-icd-devel
BuildRequires: opencl-cpp-headers
%endif
%if %{with armnn_onnx}
BuildRequires: python3-onnx-devel
%endif
BuildRequires: protobuf-devel
BuildRequires: python-rpm-macros
%if %{with armnn_tests}
@ -136,6 +142,9 @@ Requires: libarmnnTfLiteParser%{version_major}%{?package_suffix} = %{versi
%if %{with armnn_caffe}
Requires: libarmnnCaffeParser%{version_major}%{?package_suffix} = %{version}
%endif
%if %{with armnn_onnx}
Requires: libarmnnOnnxParser%{version_major}%{?package_suffix} = %{version}
%endif
%if %{with armnn_tf}
Requires: libarmnnTfParser%{version_major}%{?package_suffix} = %{version}
%endif
@ -166,6 +175,9 @@ Requires: libarmnnTfLiteParser%{version_major}%{?package_suffix} = %{versi
%if %{with armnn_caffe}
Requires: libarmnnCaffeParser%{version_major}%{?package_suffix} = %{version}
%endif
%if %{with armnn_onnx}
Requires: libarmnnOnnxParser%{version_major}%{?package_suffix} = %{version}
%endif
%if %{with armnn_tf}
Requires: libarmnnTfParser%{version_major}%{?package_suffix} = %{version}
%endif
@ -275,6 +287,26 @@ modification across Arm Cortex CPUs and Arm Mali GPUs.
This package contains the libarmnnCaffeParser library from armnn.
%endif
%if %{with armnn_onnx}
%package -n libarmnnOnnxParser%{version_major}%{?package_suffix}
%if "%{target}" == "opencl"
Conflicts: libarmnnOnnxParser%{version_major}
%else
Conflicts: libarmnnOnnxParser%{version_major}-opencl
%endif
Summary: libarmnnOnnxParser from armnn
Group: Development/Libraries/C and C++
%description -n libarmnnOnnxParser%{version_major}%{?package_suffix}
Arm NN is an inference engine for CPUs, GPUs and NPUs.
It bridges the gap between existing NN frameworks and the underlying IP.
It enables efficient translation of existing neural network frameworks,
such as TensorFlow and Caffe, allowing them to run efficiently without
modification across Arm Cortex CPUs and Arm Mali GPUs.
This package contains the libarmnnOnnxParser library from armnn.
%endif
%prep
%setup -q -n armnn-%{version}
%patch1 -p1
@ -291,9 +323,12 @@ sed -i 's/find_package(Boost 1.59 REQUIRED COMPONENTS unit_test_framework system
sed -i 's/-Wsign-conversion//' ./cmake/GlobalConfig.cmake
%build
%if %{with armnn_onnx}
mkdir onnx_deps
PROTO=$(find %{_libdir} -name onnx.proto)
protoc $PROTO --proto_path=. --proto_path=%{_includedir} --proto_path=$(dirname $(find %{_libdir} -name onnx)) --cpp_out=./onnx_deps
%endif
%cmake \
-DGENERIC_LIB_VERSION=%{version} \
-DGENERIC_LIB_SOVERSION=%{version_major} \
-DCMAKE_CXX_FLAGS:STRING="%{optflags} -pthread" \
-DBOOST_LIBRARYDIR=%{_libdir} \
%if %{with armnn_caffe}
@ -302,7 +337,12 @@ sed -i 's/-Wsign-conversion//' ./cmake/GlobalConfig.cmake
-DBUILD_CAFFE_PARSER=OFF \
%endif
-DCAFFE_GENERATED_SOURCES=%{_includedir}/ \
%if %{with armnn_onnx}
-DBUILD_ONNX_PARSER=ON \
-DONNX_GENERATED_SOURCES=../onnx_deps/ \
%else
-DBUILD_ONNX_PARSER=OFF \
%endif
%if %{with armnn_flatbuffers}
-DBUILD_ARMNN_SERIALIZER=ON \
-DFLATC_DIR=%{_bindir} \
@ -408,6 +448,11 @@ LD_LIBRARY_PATH="$(pwd)/build/" \
%postun -n libarmnnCaffeParser%{version_major}%{?package_suffix} -p /sbin/ldconfig
%endif
%if %{with armnn_onnx}
%post -n libarmnnOnnxParser%{version_major}%{?package_suffix} -p /sbin/ldconfig
%postun -n libarmnnOnnxParser%{version_major}%{?package_suffix} -p /sbin/ldconfig
%endif
%files
%defattr(-,root,root)
@ -423,6 +468,9 @@ LD_LIBRARY_PATH="$(pwd)/build/" \
%{_bindir}/TfLite*-Armnn
%{_bindir}/Image*Generator
%endif
%if %{with armnn_onnx}
%{_bindir}/Onnx*-Armnn
%endif
%if %{with armnn_tf}
%{_bindir}/Tf*-Armnn
%endif
@ -452,6 +500,11 @@ LD_LIBRARY_PATH="$(pwd)/build/" \
%{_libdir}/libarmnnCaffeParser.so.*
%endif
%if %{with armnn_onnx}
%files -n libarmnnOnnxParser%{version_major}%{?package_suffix}
%{_libdir}/libarmnnOnnxParser.so.*
%endif
%files devel
%defattr(-,root,root)
%dir %{_includedir}/armnn/
@ -481,6 +534,9 @@ LD_LIBRARY_PATH="$(pwd)/build/" \
%if %{with armnn_caffe}
%{_libdir}/libarmnnCaffeParser.so
%endif
%if %{with armnn_onnx}
%{_libdir}/libarmnnOnnxParser.so
%endif
%changelog