diff --git a/ComputeLibrary-20.11.tar.gz b/ComputeLibrary-20.11.tar.gz deleted file mode 100644 index dd7ac37..0000000 --- a/ComputeLibrary-20.11.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2c4cfbe5f87cf47170aa497209c24567d425365fa5f959129a50be665317a8ab -size 12722838 diff --git a/ComputeLibrary-21.02.tar.gz b/ComputeLibrary-21.02.tar.gz new file mode 100644 index 0000000..2ecb370 --- /dev/null +++ b/ComputeLibrary-21.02.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cdb3d8a7ab7ea13f0df207a20657f2827ac631c24aa0e8487bacf97697237bdf +size 12823745 diff --git a/ComputeLibrary.changes b/ComputeLibrary.changes index f2a6259..2cb815f 100644 --- a/ComputeLibrary.changes +++ b/ComputeLibrary.changes @@ -1,3 +1,23 @@ +------------------------------------------------------------------- +Wed Apr 7 16:40:47 UTC 2021 - Guillaume GARDET + +- Add patch to fix build of ArmNN with openCL: + * acl-fix-packaging-issue.patch + +------------------------------------------------------------------- +Wed Apr 7 11:12:51 UTC 2021 - Guillaume GARDET + +- Package separately libarm_compute_core and libarm_compute_graph + +------------------------------------------------------------------- +Mon Mar 29 12:14:30 UTC 2021 - Guillaume GARDET + +- Update to 21.02: + * Public major release + * Documentation (API, changelogs, build guide, + contribution guide, errata, etc.) available here: + https://arm-software.github.io/ComputeLibrary/v21.02/ + ------------------------------------------------------------------- Wed Dec 9 14:30:01 UTC 2020 - Guillaume GARDET diff --git a/ComputeLibrary.spec b/ComputeLibrary.spec index c400bf7..a55afcd 100644 --- a/ComputeLibrary.spec +++ b/ComputeLibrary.spec @@ -1,7 +1,7 @@ # # spec file for package ComputeLibrary # -# Copyright (c) 2020 SUSE LLC +# Copyright (c) 2021 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -16,16 +16,18 @@ # -%define so_ver 21 +%define so_ver 22 # Disable validation tests by default due to opencl needing to be set up %bcond_with computelibrary_tests Name: ComputeLibrary -Version: 20.11 +Version: 21.02 Release: 0 Summary: ARM Compute Library License: MIT URL: https://developer.arm.com/technologies/compute-library Source: https://github.com/ARM-software/ComputeLibrary/archive/v%{version}.tar.gz#/ComputeLibrary-%{version}.tar.gz +# PATCH-FIX-UPSTREAM - https://github.com/ARM-software/armnn/issues/531 +Patch1: acl-fix-packaging-issue.patch BuildRequires: gcc-c++ BuildRequires: git-core BuildRequires: ocl-icd-devel @@ -46,10 +48,30 @@ A software library for computer vision and machine learning. The Compute Library is a collection of low-level functions optimized for Arm CPU and GPU architectures targeted at image processing, computer vision, and machine learning. Library part. +%package -n libarm_compute_core%{so_ver} +Summary: ARM Compute Library - Core part + +%description -n libarm_compute_core%{so_ver} +A software library for computer vision and machine learning. +The Compute Library is a collection of low-level functions optimized for Arm CPU and GPU architectures targeted at image processing, computer vision, and machine learning. +Library part. + +%package -n libarm_compute_graph%{so_ver} +Summary: ARM Compute Library - Graph part + +%description -n libarm_compute_graph%{so_ver} +A software library for computer vision and machine learning. +The Compute Library is a collection of low-level functions optimized for Arm CPU and GPU architectures targeted at image processing, computer vision, and machine learning. +Library part. + %package devel Summary: ARM Compute Library -- devel Requires: %{name} = %{version} Requires: libarm_compute%{so_ver} = %{version} +Requires: libarm_compute_core%{so_ver} = %{version} +Requires: libarm_compute_graph%{so_ver} = %{version} +# stb headers are required +Requires: stb-devel %description devel A software library for computer vision and machine learning. @@ -64,10 +86,12 @@ Summary: Compute Library sample data Free *.npy and *.ppm files to use with example binaries. %prep -%setup -q -n ComputeLibrary-%{version} +%autosetup -p1 -n ComputeLibrary-%{version} %build -scons os=linux build=native \ +scons os=linux \ + build=native \ + install_dir=install \ set_soname=1 \ examples=1 \ gles_compute=0 \ @@ -98,8 +122,9 @@ mkdir -p %{buildroot}%{_bindir} install -Dm0755 build/examples/* %{buildroot}%{_bindir}/ mkdir -p %{buildroot}%{_libdir} cp -a build/*.so* %{buildroot}%{_libdir}/ +# FIXME: scons should install headers thanks to: install_dir=%%{buildroot}%%{_prefix} but this is broken mkdir -p %{buildroot}%{_includedir}/ -cp -a arm_compute/ include/half/ include/libnpy/ support/ utils/ %{buildroot}%{_includedir}/ +cp -a arm_compute/ support/ utils/ include/half/ include/libnpy/ include/linux %{buildroot}%{_includedir}/ # Remove *.cpp files from includedir rm -f $(find %{buildroot}%{_includedir}/ -name *.cpp) # Install sample data @@ -107,6 +132,7 @@ mkdir -p %{buildroot}%{_datadir}/ComputeLibrary/%{sampledir} cp -r data/* %{buildroot}%{_datadir}/ComputeLibrary/%{sampledir} # Install scripts install -Dm0755 scripts/* %{buildroot}%{_bindir} +rm -f %{buildroot}%{_bindir}/*.h # Fix Python scripts interpreter for pyfile in `ls %{buildroot}%{_bindir}/*.py`; do sed -i -e 's|#!%{_bindir}/env python|#!%{_bindir}/python|' $pyfile @@ -115,6 +141,12 @@ done %post -n libarm_compute%{so_ver} -p /sbin/ldconfig %postun -n libarm_compute%{so_ver} -p /sbin/ldconfig +%post -n libarm_compute_core%{so_ver} -p /sbin/ldconfig +%postun -n libarm_compute_core%{so_ver} -p /sbin/ldconfig + +%post -n libarm_compute_graph%{so_ver} -p /sbin/ldconfig +%postun -n libarm_compute_graph%{so_ver} -p /sbin/ldconfig + %if %{with computelibrary_tests} %check LD_LIBRARY_PATH="build/" build/tests/arm_compute_validation @@ -125,17 +157,27 @@ LD_LIBRARY_PATH="build/" build/tests/arm_compute_validation %files -n libarm_compute%{so_ver} %license LICENSE -%{_libdir}/*.so.%{so_ver}* +%{_libdir}/libarm_compute.so.%{so_ver}* + +%files -n libarm_compute_core%{so_ver} +%license LICENSE +%{_libdir}/libarm_compute_core.so.%{so_ver}* + +%files -n libarm_compute_graph%{so_ver} +%license LICENSE +%{_libdir}/libarm_compute_graph.so.%{so_ver}* %files devel %dir %{_includedir}/arm_compute %dir %{_includedir}/half %dir %{_includedir}/libnpy +%dir %{_includedir}/linux %dir %{_includedir}/support %dir %{_includedir}/utils %{_includedir}/arm_compute/* %{_includedir}/half/* %{_includedir}/libnpy/* +%{_includedir}/linux/* %{_includedir}/support/* %{_includedir}/utils/* %{_libdir}/*.so diff --git a/acl-fix-packaging-issue.patch b/acl-fix-packaging-issue.patch new file mode 100644 index 0000000..e1239e9 --- /dev/null +++ b/acl-fix-packaging-issue.patch @@ -0,0 +1,210 @@ +From 368aec3803280924eb003e423b90128265bed677 Mon Sep 17 00:00:00 2001 +From: Sheri Zhang +Date: Tue, 6 Apr 2021 18:26:44 +0100 +Subject: [PATCH] Fix Debian packaging issue caused by headers from src are + included by runtime header + +Use forward declation for CLFillBorderKernel and CLScaleKernel used by CLSacle, and include header files in .cpp file. + +Resolves: COMPMID-4350 + +Signed-off-by: Sheri Zhang +Change-Id: I285488d35bd3b2df49b86ba16428e55c1fd80eaa +--- + arm_compute/runtime/CL/functions/CLScale.h | 8 ++++---- + examples/cl_events.cpp | 4 +++- + examples/neoncl_scale_median_gaussian.cpp | 2 ++ + src/runtime/CL/functions/CLCropResize.cpp | 1 + + src/runtime/CL/functions/CLLaplacianReconstruct.cpp | 3 ++- + src/runtime/CL/functions/CLScale.cpp | 4 ++++ + tests/benchmark/CL/Scale.cpp | 3 ++- + tests/validation/CL/LaplacianReconstruct.cpp | 4 +++- + tests/validation/CL/Scale.cpp | 4 +++- + 9 files changed, 24 insertions(+), 9 deletions(-) + +diff --git a/arm_compute/runtime/CL/functions/CLScale.h b/arm_compute/runtime/CL/functions/CLScale.h +index 173919097..749411a43 100644 +--- a/arm_compute/runtime/CL/functions/CLScale.h ++++ b/arm_compute/runtime/CL/functions/CLScale.h +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 2016-2020 Arm Limited. ++ * Copyright (c) 2016-2021 Arm Limited. + * + * SPDX-License-Identifier: MIT + * +@@ -28,8 +28,6 @@ + #include "arm_compute/core/Types.h" + #include "arm_compute/runtime/CL/CLRuntimeContext.h" + #include "arm_compute/runtime/IFunction.h" +-#include "src/core/CL/kernels/CLFillBorderKernel.h" +-#include "src/core/CL/kernels/CLScaleKernel.h" + + #include + +@@ -39,6 +37,8 @@ namespace arm_compute + class CLCompileContext; + class ICLTensor; + class ITensorInfo; ++class CLFillBorderKernel; ++class CLScaleKernel; + + /** Basic function to run @ref CLScaleKernel */ + class CLScale : public IFunction +@@ -47,7 +47,7 @@ public: + /** Default Constructor */ + CLScale(); + /** Default Destructor */ +- ~CLScale() = default; ++ ~CLScale(); + /** Prevent instances of this class from being copied (As this class contains pointers) */ + CLScale(const CLScale &) = delete; + /** Default move constructor */ +diff --git a/examples/cl_events.cpp b/examples/cl_events.cpp +index 27c063cbc..46a613f71 100644 +--- a/examples/cl_events.cpp ++++ b/examples/cl_events.cpp +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 2017-2020 Arm Limited. ++ * Copyright (c) 2017-2021 Arm Limited. + * + * SPDX-License-Identifier: MIT + * +@@ -30,6 +30,8 @@ + #include "arm_compute/runtime/CL/functions/CLGaussian5x5.h" + #include "arm_compute/runtime/CL/functions/CLMedian3x3.h" + #include "arm_compute/runtime/CL/functions/CLScale.h" ++#include "src/core/CL/kernels/CLFillBorderKernel.h" ++#include "src/core/CL/kernels/CLScaleKernel.h" + #include "utils/ImageLoader.h" + #include "utils/Utils.h" + +diff --git a/examples/neoncl_scale_median_gaussian.cpp b/examples/neoncl_scale_median_gaussian.cpp +index 2580a35f2..2a096366f 100644 +--- a/examples/neoncl_scale_median_gaussian.cpp ++++ b/examples/neoncl_scale_median_gaussian.cpp +@@ -30,6 +30,8 @@ + #include "arm_compute/runtime/CL/functions/CLGaussian5x5.h" + #include "arm_compute/runtime/CL/functions/CLScale.h" + #include "arm_compute/runtime/NEON/NEFunctions.h" ++#include "src/core/CL/kernels/CLFillBorderKernel.h" ++#include "src/core/CL/kernels/CLScaleKernel.h" + #include "utils/ImageLoader.h" + #include "utils/Utils.h" + +diff --git a/src/runtime/CL/functions/CLCropResize.cpp b/src/runtime/CL/functions/CLCropResize.cpp +index 77c44d539..c0bc70202 100644 +--- a/src/runtime/CL/functions/CLCropResize.cpp ++++ b/src/runtime/CL/functions/CLCropResize.cpp +@@ -26,6 +26,7 @@ + #include "arm_compute/core/CL/CLHelpers.h" + #include "arm_compute/runtime/CL/CLScheduler.h" + #include "src/core/CL/kernels/CLFillBorderKernel.h" ++#include "src/core/CL/kernels/CLScaleKernel.h" + #include "src/core/helpers/AutoConfiguration.h" + #include "src/core/helpers/WindowHelpers.h" + +diff --git a/src/runtime/CL/functions/CLLaplacianReconstruct.cpp b/src/runtime/CL/functions/CLLaplacianReconstruct.cpp +index d7fd81754..8e490a4c1 100644 +--- a/src/runtime/CL/functions/CLLaplacianReconstruct.cpp ++++ b/src/runtime/CL/functions/CLLaplacianReconstruct.cpp +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 2017-2020 Arm Limited. ++ * Copyright (c) 2017-2021 Arm Limited. + * + * SPDX-License-Identifier: MIT + * +@@ -30,6 +30,7 @@ + #include "arm_compute/core/TensorInfo.h" + #include "arm_compute/core/Validate.h" + #include "src/core/CL/kernels/CLFillBorderKernel.h" ++#include "src/core/CL/kernels/CLScaleKernel.h" + + #include + +diff --git a/src/runtime/CL/functions/CLScale.cpp b/src/runtime/CL/functions/CLScale.cpp +index 9862d0a1b..7c5af64f5 100644 +--- a/src/runtime/CL/functions/CLScale.cpp ++++ b/src/runtime/CL/functions/CLScale.cpp +@@ -27,6 +27,8 @@ + #include "arm_compute/core/Error.h" + #include "arm_compute/core/Validate.h" + #include "arm_compute/runtime/CL/CLScheduler.h" ++#include "src/core/CL/kernels/CLFillBorderKernel.h" ++#include "src/core/CL/kernels/CLScaleKernel.h" + + namespace arm_compute + { +@@ -35,6 +37,8 @@ CLScale::CLScale() + { + } + ++CLScale::~CLScale() = default; ++ + void CLScale::configure(ICLTensor *input, ICLTensor *output, const ScaleKernelInfo &info) + { + configure(CLKernelLibrary::get().get_compile_context(), input, output, info); +diff --git a/tests/benchmark/CL/Scale.cpp b/tests/benchmark/CL/Scale.cpp +index 8a1ceb663..66f90f160 100644 +--- a/tests/benchmark/CL/Scale.cpp ++++ b/tests/benchmark/CL/Scale.cpp +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 2017-2020 Arm Limited. ++ * Copyright (c) 2017-2021 Arm Limited. + * + * SPDX-License-Identifier: MIT + * +@@ -27,6 +27,7 @@ + #include "arm_compute/runtime/CL/CLTensorAllocator.h" + #include "arm_compute/runtime/CL/functions/CLScale.h" + #include "src/core/CL/kernels/CLFillBorderKernel.h" ++#include "src/core/CL/kernels/CLScaleKernel.h" + #include "tests/CL/CLAccessor.h" + #include "tests/benchmark/fixtures/ScaleFixture.h" + #include "tests/datasets/BorderModeDataset.h" +diff --git a/tests/validation/CL/LaplacianReconstruct.cpp b/tests/validation/CL/LaplacianReconstruct.cpp +index e6e32ce91..96202cd4d 100644 +--- a/tests/validation/CL/LaplacianReconstruct.cpp ++++ b/tests/validation/CL/LaplacianReconstruct.cpp +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 2018-2020 Arm Limited. ++ * Copyright (c) 2018-2021 Arm Limited. + * + * SPDX-License-Identifier: MIT + * +@@ -27,6 +27,8 @@ + #include "arm_compute/runtime/CL/functions/CLLaplacianReconstruct.h" + #include "arm_compute/runtime/Tensor.h" + #include "arm_compute/runtime/TensorAllocator.h" ++#include "src/core/CL/kernels/CLFillBorderKernel.h" ++#include "src/core/CL/kernels/CLScaleKernel.h" + #include "tests/CL/CLAccessor.h" + #include "tests/datasets/BorderModeDataset.h" + #include "tests/datasets/ShapeDatasets.h" +diff --git a/tests/validation/CL/Scale.cpp b/tests/validation/CL/Scale.cpp +index 523b49deb..4e4fe6bb4 100644 +--- a/tests/validation/CL/Scale.cpp ++++ b/tests/validation/CL/Scale.cpp +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 2017-2020 Arm Limited. ++ * Copyright (c) 2017-2021 Arm Limited. + * + * SPDX-License-Identifier: MIT + * +@@ -26,6 +26,8 @@ + #include "arm_compute/runtime/CL/functions/CLScale.h" + #include "arm_compute/runtime/Tensor.h" + #include "arm_compute/runtime/TensorAllocator.h" ++#include "src/core/CL/kernels/CLFillBorderKernel.h" ++#include "src/core/CL/kernels/CLScaleKernel.h" + #include "tests/CL/CLAccessor.h" + #include "tests/PaddingCalculator.h" + #include "tests/datasets/ScaleValidationDataset.h" +-- +GitLab +