* [meta-arago][scarthgap/master][PATCH 0/2] Add ARM Compute Library
@ 2024-12-20 16:49 Andrew Davis
2024-12-20 16:49 ` [meta-arago][scarthgap/master][PATCH 1/2] flatbuffers: Remove this recipe Andrew Davis
` (2 more replies)
0 siblings, 3 replies; 10+ messages in thread
From: Andrew Davis @ 2024-12-20 16:49 UTC (permalink / raw)
To: Denys Dmytriyenko, Ryan Eatmon, meta-arago; +Cc: Andrew Davis
Hello all,
This series adds support for arm-compute-library which will be used
as the base for several other ARM based ML frameworks and apps.
This package will be sent for inclusion in meta-arm as it is ARM
produced and supported software. This will be done after the patches
here for ACL are taken into the project's upstream. We can drop
this out of meta-arago master after that.
Thanks,
Andrew
Andrew Davis (2):
flatbuffers: Remove this recipe
meta-arago-extras: Add recipe for arm-compute-library
...-indention-in-cmake-generator-script.patch | 130 ++++++++++++
...ENABLE_NEON-in-code-for-checking-NEO.patch | 114 ++++++++++
...ENABLE_SVE-in-code-for-checking-SVE-.patch | 197 ++++++++++++++++++
...rce-files-at-library-definition-time.patch | 167 +++++++++++++++
...ptions-for-SVE-SVE2-and-BF16-support.patch | 112 ++++++++++
...SVE2-support-to-be-disabled-in-CMake.patch | 91 ++++++++
.../0007-Allow-ARMv7-builds-using-CMake.patch | 86 ++++++++
...ymbol-error-when-building-TensorInfo.patch | 46 ++++
.../arm-compute-library_24.12.bb | 79 +++++++
.../flatbuffers/flatbuffers_1.11.0.bb | 34 ---
.../recipes-core/packagegroups/ti-test.bb | 1 +
11 files changed, 1023 insertions(+), 34 deletions(-)
create mode 100644 meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0001-fix-Fix-indention-in-cmake-generator-script.patch
create mode 100644 meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0002-Use-ARM_COMPUTE_ENABLE_NEON-in-code-for-checking-NEO.patch
create mode 100644 meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0003-Use-ARM_COMPUTE_ENABLE_SVE-in-code-for-checking-SVE-.patch
create mode 100644 meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0004-Add-source-files-at-library-definition-time.patch
create mode 100644 meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0005-Add-CMake-options-for-SVE-SVE2-and-BF16-support.patch
create mode 100644 meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0006-Allow-SVE-and-SVE2-support-to-be-disabled-in-CMake.patch
create mode 100644 meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0007-Allow-ARMv7-builds-using-CMake.patch
create mode 100644 meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0008-Fix-undefined-symbol-error-when-building-TensorInfo.patch
create mode 100644 meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library_24.12.bb
delete mode 100644 meta-arago-extras/recipes-devtools/flatbuffers/flatbuffers_1.11.0.bb
--
2.39.2
^ permalink raw reply [flat|nested] 10+ messages in thread* [meta-arago][scarthgap/master][PATCH 1/2] flatbuffers: Remove this recipe 2024-12-20 16:49 [meta-arago][scarthgap/master][PATCH 0/2] Add ARM Compute Library Andrew Davis @ 2024-12-20 16:49 ` Andrew Davis 2024-12-20 17:52 ` Denys Dmytriyenko 2024-12-20 16:49 ` [meta-arago][scarthgap/master][PATCH 2/2] meta-arago-extras: Add recipe for arm-compute-library Andrew Davis 2024-12-20 18:04 ` [meta-arago][scarthgap/master][PATCH 0/2] Add ARM Compute Library Denys Dmytriyenko 2 siblings, 1 reply; 10+ messages in thread From: Andrew Davis @ 2024-12-20 16:49 UTC (permalink / raw) To: Denys Dmytriyenko, Ryan Eatmon, meta-arago; +Cc: Andrew Davis This was used for TFlite and ARMNN before it was included in meta-oe. A newer better maintained version of this is in meta-oe now. Signed-off-by: Andrew Davis <afd@ti.com> --- .../flatbuffers/flatbuffers_1.11.0.bb | 34 ------------------- 1 file changed, 34 deletions(-) delete mode 100644 meta-arago-extras/recipes-devtools/flatbuffers/flatbuffers_1.11.0.bb diff --git a/meta-arago-extras/recipes-devtools/flatbuffers/flatbuffers_1.11.0.bb b/meta-arago-extras/recipes-devtools/flatbuffers/flatbuffers_1.11.0.bb deleted file mode 100644 index 7f7b8b99..00000000 --- a/meta-arago-extras/recipes-devtools/flatbuffers/flatbuffers_1.11.0.bb +++ /dev/null @@ -1,34 +0,0 @@ -SUMMARY = "Memory Efficient Serialization Library" -HOMEPAGE = "https://github.com/google/flatbuffers" -SECTION = "console/tools" -LICENSE = "Apache-2.0" - -PACKAGE_BEFORE_PN = "${PN}-compiler" - -RDEPENDS:${PN}-compiler = "${PN}" -RDEPENDS:${PN}-dev += "${PN}-compiler" - -LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=a873c5645c184d51e0f9b34e1d7cf559" - -SRCREV = "bf9eb67ab9371755c6bcece13cadc7693bcbf264" - -SRC_URI = "git://github.com/google/flatbuffers.git;protocol=https;branch=master" - -# Make sure C++11 is used, required for example for GCC 4.9 -CXXFLAGS += "-std=c++11" -BUILD_CXXFLAGS += "-std=c++11" - -# BUILD_TYPE=Release is required, otherwise flatc is not installed -EXTRA_OECMAKE += "\ - -DCMAKE_BUILD_TYPE=Release \ - -DFLATBUFFERS_BUILD_TESTS=OFF \ - -DFLATBUFFERS_BUILD_SHAREDLIB=ON \ -" - -inherit cmake - -S = "${WORKDIR}/git" - -FILES:${PN}-compiler = "${bindir}" - -BBCLASSEXTEND = "native nativesdk" -- 2.39.2 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [meta-arago][scarthgap/master][PATCH 1/2] flatbuffers: Remove this recipe 2024-12-20 16:49 ` [meta-arago][scarthgap/master][PATCH 1/2] flatbuffers: Remove this recipe Andrew Davis @ 2024-12-20 17:52 ` Denys Dmytriyenko 2024-12-21 19:52 ` Andrew Davis 0 siblings, 1 reply; 10+ messages in thread From: Denys Dmytriyenko @ 2024-12-20 17:52 UTC (permalink / raw) To: afd; +Cc: Denys Dmytriyenko, Ryan Eatmon, meta-arago On Fri, Dec 20, 2024 at 10:49:09AM -0600, Andrew Davis via lists.yoctoproject.org wrote: > This was used for TFlite and ARMNN before it was included in meta-oe. > A newer better maintained version of this is in meta-oe now. This was already merged? https://git.yoctoproject.org/meta-arago/commit/?id=5b89c02419ba9dc6a2025019f55f46f4f12ea052 > Signed-off-by: Andrew Davis <afd@ti.com> > --- > .../flatbuffers/flatbuffers_1.11.0.bb | 34 ------------------- > 1 file changed, 34 deletions(-) > delete mode 100644 meta-arago-extras/recipes-devtools/flatbuffers/flatbuffers_1.11.0.bb > > diff --git a/meta-arago-extras/recipes-devtools/flatbuffers/flatbuffers_1.11.0.bb b/meta-arago-extras/recipes-devtools/flatbuffers/flatbuffers_1.11.0.bb > deleted file mode 100644 > index 7f7b8b99..00000000 > --- a/meta-arago-extras/recipes-devtools/flatbuffers/flatbuffers_1.11.0.bb > +++ /dev/null > @@ -1,34 +0,0 @@ > -SUMMARY = "Memory Efficient Serialization Library" > -HOMEPAGE = "https://github.com/google/flatbuffers" > -SECTION = "console/tools" > -LICENSE = "Apache-2.0" > - > -PACKAGE_BEFORE_PN = "${PN}-compiler" > - > -RDEPENDS:${PN}-compiler = "${PN}" > -RDEPENDS:${PN}-dev += "${PN}-compiler" > - > -LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=a873c5645c184d51e0f9b34e1d7cf559" > - > -SRCREV = "bf9eb67ab9371755c6bcece13cadc7693bcbf264" > - > -SRC_URI = "git://github.com/google/flatbuffers.git;protocol=https;branch=master" > - > -# Make sure C++11 is used, required for example for GCC 4.9 > -CXXFLAGS += "-std=c++11" > -BUILD_CXXFLAGS += "-std=c++11" > - > -# BUILD_TYPE=Release is required, otherwise flatc is not installed > -EXTRA_OECMAKE += "\ > - -DCMAKE_BUILD_TYPE=Release \ > - -DFLATBUFFERS_BUILD_TESTS=OFF \ > - -DFLATBUFFERS_BUILD_SHAREDLIB=ON \ > -" > - > -inherit cmake > - > -S = "${WORKDIR}/git" > - > -FILES:${PN}-compiler = "${bindir}" > - > -BBCLASSEXTEND = "native nativesdk" > -- > 2.39.2 ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [meta-arago][scarthgap/master][PATCH 1/2] flatbuffers: Remove this recipe 2024-12-20 17:52 ` Denys Dmytriyenko @ 2024-12-21 19:52 ` Andrew Davis 0 siblings, 0 replies; 10+ messages in thread From: Andrew Davis @ 2024-12-21 19:52 UTC (permalink / raw) To: Denys Dmytriyenko; +Cc: Denys Dmytriyenko, Ryan Eatmon, meta-arago On 12/20/24 11:52 AM, Denys Dmytriyenko wrote: > On Fri, Dec 20, 2024 at 10:49:09AM -0600, Andrew Davis via lists.yoctoproject.org wrote: >> This was used for TFlite and ARMNN before it was included in meta-oe. >> A newer better maintained version of this is in meta-oe now. > > This was already merged? > https://git.yoctoproject.org/meta-arago/commit/?id=5b89c02419ba9dc6a2025019f55f46f4f12ea052 > Was merged to master, didn't realize it would be needed here on scarthgap. Probably should have made this patch [scarthgap] only, but the second patch in this series can go into both scarthgap/master. Andrew > >> Signed-off-by: Andrew Davis <afd@ti.com> >> --- >> .../flatbuffers/flatbuffers_1.11.0.bb | 34 ------------------- >> 1 file changed, 34 deletions(-) >> delete mode 100644 meta-arago-extras/recipes-devtools/flatbuffers/flatbuffers_1.11.0.bb >> >> diff --git a/meta-arago-extras/recipes-devtools/flatbuffers/flatbuffers_1.11.0.bb b/meta-arago-extras/recipes-devtools/flatbuffers/flatbuffers_1.11.0.bb >> deleted file mode 100644 >> index 7f7b8b99..00000000 >> --- a/meta-arago-extras/recipes-devtools/flatbuffers/flatbuffers_1.11.0.bb >> +++ /dev/null >> @@ -1,34 +0,0 @@ >> -SUMMARY = "Memory Efficient Serialization Library" >> -HOMEPAGE = "https://github.com/google/flatbuffers" >> -SECTION = "console/tools" >> -LICENSE = "Apache-2.0" >> - >> -PACKAGE_BEFORE_PN = "${PN}-compiler" >> - >> -RDEPENDS:${PN}-compiler = "${PN}" >> -RDEPENDS:${PN}-dev += "${PN}-compiler" >> - >> -LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=a873c5645c184d51e0f9b34e1d7cf559" >> - >> -SRCREV = "bf9eb67ab9371755c6bcece13cadc7693bcbf264" >> - >> -SRC_URI = "git://github.com/google/flatbuffers.git;protocol=https;branch=master" >> - >> -# Make sure C++11 is used, required for example for GCC 4.9 >> -CXXFLAGS += "-std=c++11" >> -BUILD_CXXFLAGS += "-std=c++11" >> - >> -# BUILD_TYPE=Release is required, otherwise flatc is not installed >> -EXTRA_OECMAKE += "\ >> - -DCMAKE_BUILD_TYPE=Release \ >> - -DFLATBUFFERS_BUILD_TESTS=OFF \ >> - -DFLATBUFFERS_BUILD_SHAREDLIB=ON \ >> -" >> - >> -inherit cmake >> - >> -S = "${WORKDIR}/git" >> - >> -FILES:${PN}-compiler = "${bindir}" >> - >> -BBCLASSEXTEND = "native nativesdk" >> -- >> 2.39.2 ^ permalink raw reply [flat|nested] 10+ messages in thread
* [meta-arago][scarthgap/master][PATCH 2/2] meta-arago-extras: Add recipe for arm-compute-library 2024-12-20 16:49 [meta-arago][scarthgap/master][PATCH 0/2] Add ARM Compute Library Andrew Davis 2024-12-20 16:49 ` [meta-arago][scarthgap/master][PATCH 1/2] flatbuffers: Remove this recipe Andrew Davis @ 2024-12-20 16:49 ` Andrew Davis 2025-01-09 18:27 ` Ryan Eatmon 2024-12-20 18:04 ` [meta-arago][scarthgap/master][PATCH 0/2] Add ARM Compute Library Denys Dmytriyenko 2 siblings, 1 reply; 10+ messages in thread From: Andrew Davis @ 2024-12-20 16:49 UTC (permalink / raw) To: Denys Dmytriyenko, Ryan Eatmon, meta-arago; +Cc: Andrew Davis The Compute Library is a collection of low-level machine learning functions optimized for Arm. This will be used for ARMNN and other machine learning applications and frameworks. Signed-off-by: Andrew Davis <afd@ti.com> --- ...-indention-in-cmake-generator-script.patch | 130 ++++++++++++ ...ENABLE_NEON-in-code-for-checking-NEO.patch | 114 ++++++++++ ...ENABLE_SVE-in-code-for-checking-SVE-.patch | 197 ++++++++++++++++++ ...rce-files-at-library-definition-time.patch | 167 +++++++++++++++ ...ptions-for-SVE-SVE2-and-BF16-support.patch | 112 ++++++++++ ...SVE2-support-to-be-disabled-in-CMake.patch | 91 ++++++++ .../0007-Allow-ARMv7-builds-using-CMake.patch | 86 ++++++++ ...ymbol-error-when-building-TensorInfo.patch | 46 ++++ .../arm-compute-library_24.12.bb | 79 +++++++ .../recipes-core/packagegroups/ti-test.bb | 1 + 10 files changed, 1023 insertions(+) create mode 100644 meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0001-fix-Fix-indention-in-cmake-generator-script.patch create mode 100644 meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0002-Use-ARM_COMPUTE_ENABLE_NEON-in-code-for-checking-NEO.patch create mode 100644 meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0003-Use-ARM_COMPUTE_ENABLE_SVE-in-code-for-checking-SVE-.patch create mode 100644 meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0004-Add-source-files-at-library-definition-time.patch create mode 100644 meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0005-Add-CMake-options-for-SVE-SVE2-and-BF16-support.patch create mode 100644 meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0006-Allow-SVE-and-SVE2-support-to-be-disabled-in-CMake.patch create mode 100644 meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0007-Allow-ARMv7-builds-using-CMake.patch create mode 100644 meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0008-Fix-undefined-symbol-error-when-building-TensorInfo.patch create mode 100644 meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library_24.12.bb diff --git a/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0001-fix-Fix-indention-in-cmake-generator-script.patch b/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0001-fix-Fix-indention-in-cmake-generator-script.patch new file mode 100644 index 00000000..9e36d254 --- /dev/null +++ b/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0001-fix-Fix-indention-in-cmake-generator-script.patch @@ -0,0 +1,130 @@ +From 1e4c3016547b5f75e515d4b9a7202733c47f5a18 Mon Sep 17 00:00:00 2001 +From: Andrew Davis <afd@ti.com> +Date: Wed, 4 Dec 2024 14:46:17 -0600 +Subject: [PATCH] fix: Fix indention in cmake generator script + +All other items in these lists use tabs, the first couple +lines should match. Switch them to tabs then regenerate +the CMakeLists.txt file. + +While here fix the missing ending newline. + +Upstream-Status: Pending + +Signed-off-by: Andrew Davis <afd@ti.com> +Change-Id: Icab852fc43ae08e7858857881c996d233c835289 +--- + scripts/generate_build_files.py | 27 ++++++++++++++------------- + src/CMakeLists.txt | 26 +++++++++++++------------- + 2 files changed, 27 insertions(+), 26 deletions(-) + +diff --git a/scripts/generate_build_files.py b/scripts/generate_build_files.py +index f88cf1af44..52a8cc14da 100644 +--- a/scripts/generate_build_files.py ++++ b/scripts/generate_build_files.py +@@ -168,28 +168,29 @@ def build_from_template_cmake(srcs_graph, srcs_sve, srcs_sve2, srcs_core): + template = f"""{get_template_header()} + + target_sources( +- arm_compute_graph +- PRIVATE +- {line_separator.join(srcs_graph)} ++ arm_compute_graph ++ PRIVATE ++ {line_separator.join(srcs_graph)} + ) + + target_sources( +- arm_compute_sve +- PRIVATE +- {line_separator.join(srcs_sve)} ++ arm_compute_sve ++ PRIVATE ++ {line_separator.join(srcs_sve)} + ) + + target_sources( +- arm_compute_sve2 +- PRIVATE +- {line_separator.join(srcs_sve2)} ++ arm_compute_sve2 ++ PRIVATE ++ {line_separator.join(srcs_sve2)} + ) + + target_sources( +- arm_compute +- PRIVATE +- {line_separator.join(srcs_core)} +-)""" ++ arm_compute ++ PRIVATE ++ {line_separator.join(srcs_core)} ++) ++""" + return template + + +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index ff3bed96df..f1b275532a 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -21,9 +21,9 @@ + # SOFTWARE. + + target_sources( +- arm_compute_graph +- PRIVATE +- graph/DataLayerVisitor.cpp ++ arm_compute_graph ++ PRIVATE ++ graph/DataLayerVisitor.cpp + graph/Graph.cpp + graph/GraphBuilder.cpp + graph/GraphContext.cpp +@@ -101,9 +101,9 @@ target_sources( + ) + + target_sources( +- arm_compute_sve +- PRIVATE +- core/NEON/kernels/arm_conv/depthwise/interleaves/sve_s8q_3x3_dot.cpp ++ arm_compute_sve ++ PRIVATE ++ core/NEON/kernels/arm_conv/depthwise/interleaves/sve_s8q_3x3_dot.cpp + core/NEON/kernels/arm_conv/depthwise/interleaves/sve_u8q_3x3_dot.cpp + core/NEON/kernels/arm_conv/depthwise/kernels/sme2_fp16_nhwc_3x3_s1_output2x2_mla_depthfirst/generic_direct.cpp + core/NEON/kernels/arm_conv/depthwise/kernels/sme2_fp16_nhwc_3x3_s1_output2x2_mla_depthfirst/generic_indirect.cpp +@@ -332,9 +332,9 @@ target_sources( + ) + + target_sources( +- arm_compute_sve2 +- PRIVATE +- cpu/kernels/activation/generic/sve2/lut.cpp ++ arm_compute_sve2 ++ PRIVATE ++ cpu/kernels/activation/generic/sve2/lut.cpp + cpu/kernels/activation/generic/sve2/qasymm8.cpp + cpu/kernels/activation/generic/sve2/qasymm8_signed.cpp + cpu/kernels/activation/generic/sve2/qsymm16.cpp +@@ -357,9 +357,9 @@ target_sources( + ) + + target_sources( +- arm_compute +- PRIVATE +- c/AclContext.cpp ++ arm_compute ++ PRIVATE ++ c/AclContext.cpp + c/AclOperator.cpp + c/AclQueue.cpp + c/AclTensor.cpp +@@ -1049,4 +1049,4 @@ target_sources( + runtime/experimental/operators/CpuSub.cpp + runtime/experimental/operators/CpuTranspose.cpp + runtime/experimental/operators/CpuWinogradConv2d.cpp +-) +\ No newline at end of file ++) diff --git a/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0002-Use-ARM_COMPUTE_ENABLE_NEON-in-code-for-checking-NEO.patch b/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0002-Use-ARM_COMPUTE_ENABLE_NEON-in-code-for-checking-NEO.patch new file mode 100644 index 00000000..174327c5 --- /dev/null +++ b/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0002-Use-ARM_COMPUTE_ENABLE_NEON-in-code-for-checking-NEO.patch @@ -0,0 +1,114 @@ +From 4350c56d14b7b68acd060d8331f3ade1fb74e167 Mon Sep 17 00:00:00 2001 +From: Andrew Davis <afd@ti.com> +Date: Thu, 5 Dec 2024 09:21:23 -0600 +Subject: [PATCH] Use ARM_COMPUTE_ENABLE_NEON in code for checking NEON support + +ENABLE_NEON is a flag used by the build systems. The flag is not used +in code, instead ARM_COMPUTE_ENABLE_NEON is used everywhere. + +Drop the ENABLE_NEON compiler definition to prevent any accidental +use in code. + +Upstream-Status: Pending + +Signed-off-by: Andrew Davis <afd@ti.com> +Change-Id: I65f5e7411c99280e2dd8c187140909cefd1c6892 +--- + Android.bp | 1 - + BUILD.bazel | 1 - + SConscript | 2 +- + SConstruct | 2 +- + cmake/Options.cmake | 6 +----- + scripts/generate_android_bp.py | 1 - + 6 files changed, 3 insertions(+), 10 deletions(-) + +diff --git a/Android.bp b/Android.bp +index 69379472b0..9288bba2d4 100644 +--- a/Android.bp ++++ b/Android.bp +@@ -157,7 +157,6 @@ arm_compute_library_defaults { + "-DEMBEDDED_KERNELS", + "-DARM_COMPUTE_ASSERTS_ENABLED", + "-DARM_COMPUTE_CPP_SCHEDULER", +- "-DENABLE_NEON", + "-DARM_COMPUTE_ENABLE_NEON", + "-Wno-unused-parameter", + "-DNO_DOT_IN_TOOLCHAIN", +diff --git a/BUILD.bazel b/BUILD.bazel +index f553b7bfad..2262a09655 100644 +--- a/BUILD.bazel ++++ b/BUILD.bazel +@@ -170,7 +170,6 @@ config_setting( + cc_library( + name = "common_defines", + defines = [ +- "ENABLE_NEON", + "ARM_COMPUTE_CPU_ENABLED", + "ARM_COMPUTE_ENABLE_NEON", + "ARM_COMPUTE_ENABLE_I8MM", +diff --git a/SConscript b/SConscript +index 12e8fd1025..69a564873f 100644 +--- a/SConscript ++++ b/SConscript +@@ -97,7 +97,7 @@ def build_multiisa_lib_objects(): + + # note that ARM_COMPUTE_ENABLE_FP16 is enabled in update_data_type_layout_flags() to make + # sure the environment is progated to the validation suite +- arm_compute_env.Append(CPPDEFINES = ['ENABLE_NEON', 'ARM_COMPUTE_ENABLE_NEON', ++ arm_compute_env.Append(CPPDEFINES = ['ARM_COMPUTE_ENABLE_NEON', + 'ENABLE_SVE', 'ARM_COMPUTE_ENABLE_SVE','ARM_COMPUTE_ENABLE_BF16', + 'ARM_COMPUTE_ENABLE_I8MM', 'ARM_COMPUTE_ENABLE_SVEF32MM']) + +diff --git a/SConstruct b/SConstruct +index 8d7bd291e8..7381300fc8 100644 +--- a/SConstruct ++++ b/SConstruct +@@ -302,7 +302,7 @@ if 'v7a' in env['estate'] and env['estate'] == '64': + print("ERROR: armv7a architecture has only 32-bit execution state") + Exit(1) + +-env.Append(CPPDEFINES = ['ENABLE_NEON', 'ARM_COMPUTE_ENABLE_NEON']) ++env.Append(CPPDEFINES = ['ARM_COMPUTE_ENABLE_NEON']) + + if 'sve' in env['arch']: + env.Append(CPPDEFINES = ['ENABLE_SVE', 'ARM_COMPUTE_ENABLE_SVE']) +diff --git a/cmake/Options.cmake b/cmake/Options.cmake +index 5d685be48d..121d527718 100644 +--- a/cmake/Options.cmake ++++ b/cmake/Options.cmake +@@ -53,7 +53,6 @@ option(ARM_COMPUTE_ENABLE_SVE_VALIDATION "" OFF) + + option(ENABLE_NEON "Enable Arm® Neon™ support" ON) + option(ARM_COMPUTE_CPU_ENABLED "" ON) +-option(ARM_COMPUTE_ENABLE_NEON "" ON) + option(ARM_COMPUTE_ENABLE_I8MM "" ON) + option(ENABLE_FP32_KERNELS "" ON) + option(ENABLE_QASYMM8_KERNELS "" ON) +@@ -70,14 +69,11 @@ option(ENABLE_FP16_KERNELS "" OFF) + option(ARM_COMPUTE_ENABLE_FP16 "" OFF) + + if(ENABLE_NEON) +- add_definitions(-DENABLE_NEON) ++ add_definitions(-DARM_COMPUTE_ENABLE_NEON) + endif() + if(ARM_COMPUTE_CPU_ENABLED) + add_definitions(-DARM_COMPUTE_CPU_ENABLED) + endif() +-if(ARM_COMPUTE_ENABLE_NEON) +- add_definitions(-DARM_COMPUTE_ENABLE_NEON) +-endif() + if(ARM_COMPUTE_ENABLE_FP16) + add_definitions(-DARM_COMPUTE_ENABLE_FP16) + endif() +diff --git a/scripts/generate_android_bp.py b/scripts/generate_android_bp.py +index d5b268f522..99a04e7071 100755 +--- a/scripts/generate_android_bp.py ++++ b/scripts/generate_android_bp.py +@@ -94,7 +94,6 @@ arm_compute_library_defaults { + "-DEMBEDDED_KERNELS", + "-DARM_COMPUTE_ASSERTS_ENABLED", + "-DARM_COMPUTE_CPP_SCHEDULER", +- "-DENABLE_NEON", + "-DARM_COMPUTE_ENABLE_NEON", + "-Wno-unused-parameter", + "-DNO_DOT_IN_TOOLCHAIN", diff --git a/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0003-Use-ARM_COMPUTE_ENABLE_SVE-in-code-for-checking-SVE-.patch b/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0003-Use-ARM_COMPUTE_ENABLE_SVE-in-code-for-checking-SVE-.patch new file mode 100644 index 00000000..b51e4534 --- /dev/null +++ b/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0003-Use-ARM_COMPUTE_ENABLE_SVE-in-code-for-checking-SVE-.patch @@ -0,0 +1,197 @@ +From 92a881cebfee5504b188a046a96d39dd9361ddb1 Mon Sep 17 00:00:00 2001 +From: Andrew Davis <afd@ti.com> +Date: Thu, 5 Dec 2024 08:57:38 -0600 +Subject: [PATCH] Use ARM_COMPUTE_ENABLE_SVE in code for checking SVE support + +ENABLE_SVE is a flag used by the build systems. The flag used in code +is ARM_COMPUTE_ENABLE_SVE. There are just a couple spots where the +build system flag is used instead causing the need to define both. + +Switch these last users of ENABLE_SVE over to ARM_COMPUTE_ENABLE_SVE +then drop the ENABLE_SVE definition to prevent any more instances +being added in the future. + +Upstream-Status: Pending + +Signed-off-by: Andrew Davis <afd@ti.com> +Change-Id: I00da7580c4520647b62c6989bc7fbdd5efc7935e +--- + BUILD.bazel | 3 --- + SConscript | 2 +- + SConstruct | 2 +- + .../batchnormalization/impl/SVE/fp16.cpp | 2 +- + .../batchnormalization/impl/SVE/fp32.cpp | 2 +- + tests/BUILD.bazel | 1 - + tests/validation/NEON/ActivationLayer.cpp | 24 +++++++++---------- + tests/validation/NEON/ArithmeticAddition.cpp | 6 ++--- + 8 files changed, 19 insertions(+), 23 deletions(-) + +diff --git a/BUILD.bazel b/BUILD.bazel +index 2262a09655..c04a52e084 100644 +--- a/BUILD.bazel ++++ b/BUILD.bazel +@@ -297,7 +297,6 @@ cc_library( + "//conditions:default": [], + }), + local_defines = [ +- "ENABLE_SVE", + "ARM_COMPUTE_ENABLE_SVE", + "ARM_COMPUTE_ENABLE_SVE2", + "ARM_COMPUTE_ENABLE_BF16", +@@ -348,7 +347,6 @@ cc_library( + "//conditions:default": [], + }), + local_defines = [ +- "ENABLE_SVE", + "ARM_COMPUTE_ENABLE_SVE", + "ARM_COMPUTE_ENABLE_BF16", + ], +@@ -409,7 +407,6 @@ cc_library( + "//conditions:default": [], + }), + local_defines = [ +- "ENABLE_SVE", + "ARM_COMPUTE_ENABLE_SVE", + "ARM_COMPUTE_ENABLE_BF16", + ], +diff --git a/SConscript b/SConscript +index 69a564873f..c2ca549b71 100644 +--- a/SConscript ++++ b/SConscript +@@ -98,7 +98,7 @@ def build_multiisa_lib_objects(): + # note that ARM_COMPUTE_ENABLE_FP16 is enabled in update_data_type_layout_flags() to make + # sure the environment is progated to the validation suite + arm_compute_env.Append(CPPDEFINES = ['ARM_COMPUTE_ENABLE_NEON', +- 'ENABLE_SVE', 'ARM_COMPUTE_ENABLE_SVE','ARM_COMPUTE_ENABLE_BF16', ++ 'ARM_COMPUTE_ENABLE_SVE','ARM_COMPUTE_ENABLE_BF16', + 'ARM_COMPUTE_ENABLE_I8MM', 'ARM_COMPUTE_ENABLE_SVEF32MM']) + + # Build all the common files for the base architecture +diff --git a/SConstruct b/SConstruct +index 7381300fc8..17f5615acf 100644 +--- a/SConstruct ++++ b/SConstruct +@@ -305,7 +305,7 @@ if 'v7a' in env['estate'] and env['estate'] == '64': + env.Append(CPPDEFINES = ['ARM_COMPUTE_ENABLE_NEON']) + + if 'sve' in env['arch']: +- env.Append(CPPDEFINES = ['ENABLE_SVE', 'ARM_COMPUTE_ENABLE_SVE']) ++ env.Append(CPPDEFINES = ['ARM_COMPUTE_ENABLE_SVE']) + if 'sve2' in env['arch']: + env.Append(CPPDEFINES = ['ARM_COMPUTE_ENABLE_SVE2']) + +diff --git a/src/core/NEON/kernels/batchnormalization/impl/SVE/fp16.cpp b/src/core/NEON/kernels/batchnormalization/impl/SVE/fp16.cpp +index 48caaa3e63..e07593312c 100644 +--- a/src/core/NEON/kernels/batchnormalization/impl/SVE/fp16.cpp ++++ b/src/core/NEON/kernels/batchnormalization/impl/SVE/fp16.cpp +@@ -128,4 +128,4 @@ void fp16_sve_batch_normalization(ITensor *src, + } + } // namespace cpu + } // namespace arm_compute +-#endif // ENABLE_SVE ++#endif // ARM_COMPUTE_ENABLE_SVE +diff --git a/src/core/NEON/kernels/batchnormalization/impl/SVE/fp32.cpp b/src/core/NEON/kernels/batchnormalization/impl/SVE/fp32.cpp +index df4fbfe607..0d52d2c3c0 100644 +--- a/src/core/NEON/kernels/batchnormalization/impl/SVE/fp32.cpp ++++ b/src/core/NEON/kernels/batchnormalization/impl/SVE/fp32.cpp +@@ -128,4 +128,4 @@ void fp32_sve_batch_normalization(ITensor *src, + } + } // namespace cpu + } // namespace arm_compute +-#endif // ENABLE_SVE ++#endif // ARM_COMPUTE_ENABLE_SVE +diff --git a/tests/BUILD.bazel b/tests/BUILD.bazel +index 7085f1facc..4b4be8b257 100644 +--- a/tests/BUILD.bazel ++++ b/tests/BUILD.bazel +@@ -114,7 +114,6 @@ cc_binary( + }) + + select({ + "//:sve_validation_flag": [ +- "ENABLE_SVE", + "ARM_COMPUTE_ENABLE_SVE", + ], + "//conditions:default": [], +diff --git a/tests/validation/NEON/ActivationLayer.cpp b/tests/validation/NEON/ActivationLayer.cpp +index 119d51808a..69a8b52354 100644 +--- a/tests/validation/NEON/ActivationLayer.cpp ++++ b/tests/validation/NEON/ActivationLayer.cpp +@@ -73,11 +73,11 @@ RelativeTolerance<float> relative_tolerance(DataType data_type, ActivationLayerI + switch(data_type) + { + case DataType::F16: +-#if defined(ENABLE_SVE) ++#if defined(ARM_COMPUTE_ENABLE_SVE) + return RelativeTolerance<float>(0.25f); +-#else // !defined(ENABLE_SVE) ++#else // !defined(ARM_COMPUTE_ENABLE_SVE) + return RelativeTolerance<float>(0.1f); +-#endif // defined(ENABLE_SVE) ++#endif // defined(ARM_COMPUTE_ENABLE_SVE) + default: + return RelativeTolerance<float>(0.05f); + } +@@ -85,11 +85,11 @@ RelativeTolerance<float> relative_tolerance(DataType data_type, ActivationLayerI + switch(data_type) + { + case DataType::F16: +-#if defined(ENABLE_SVE) ++#if defined(ARM_COMPUTE_ENABLE_SVE) + return RelativeTolerance<float>(0.9f); +-#else // !defined(ENABLE_SVE) ++#else // !defined(ARM_COMPUTE_ENABLE_SVE) + return RelativeTolerance<float>(0.01f); +-#endif // defined(ENABLE_SVE) ++#endif // defined(ARM_COMPUTE_ENABLE_SVE) + default: + return RelativeTolerance<float>(0.00001f); + } +@@ -117,11 +117,11 @@ AbsoluteTolerance<float> absolute_tolerance(DataType data_type, ActivationLayerI + switch(data_type) + { + case DataType::F16: +-#if defined(ENABLE_SVE) ++#if defined(ARM_COMPUTE_ENABLE_SVE) + return AbsoluteTolerance<float>(0.25f); +-#else // !defined(ENABLE_SVE) ++#else // !defined(ARM_COMPUTE_ENABLE_SVE) + return AbsoluteTolerance<float>(0.01f); +-#endif // defined(ENABLE_SVE) ++#endif // defined(ARM_COMPUTE_ENABLE_SVE) + default: + return AbsoluteTolerance<float>(0.00001f); + } +@@ -129,11 +129,11 @@ AbsoluteTolerance<float> absolute_tolerance(DataType data_type, ActivationLayerI + switch(data_type) + { + case DataType::F16: +-#if defined(ENABLE_SVE) ++#if defined(ARM_COMPUTE_ENABLE_SVE) + return AbsoluteTolerance<float>(0.9f); +-#else // !defined(ENABLE_SVE) ++#else // !defined(ARM_COMPUTE_ENABLE_SVE) + return AbsoluteTolerance<float>(0.01f); +-#endif // defined(ENABLE_SVE) ++#endif // defined(ARM_COMPUTE_ENABLE_SVE) + default: + return AbsoluteTolerance<float>(0.00001f); + } +diff --git a/tests/validation/NEON/ArithmeticAddition.cpp b/tests/validation/NEON/ArithmeticAddition.cpp +index c0033daab0..bae8535ff3 100644 +--- a/tests/validation/NEON/ArithmeticAddition.cpp ++++ b/tests/validation/NEON/ArithmeticAddition.cpp +@@ -48,11 +48,11 @@ namespace validation + using framework::dataset::make; + namespace + { +-#if !defined(__aarch64__) || defined(ENABLE_SVE) ++#if !defined(__aarch64__) || defined(ARM_COMPUTE_ENABLE_SVE) + constexpr AbsoluteTolerance<float> tolerance_quant(1); /**< Tolerance value for comparing reference's output against implementation's output for quantized data types */ +-#else // !defined(__aarch64__) || defined(ENABLE_SVE) ++#else // !defined(__aarch64__) || defined(ARM_COMPUTE_ENABLE_SVE) + constexpr AbsoluteTolerance<float> tolerance_quant(1); +-#endif // !defined(__aarch64__) || defined(ENABLE_SVE) ++#endif // !defined(__aarch64__) || defined(ARM_COMPUTE_ENABLE_SVE) + const auto InPlaceDataSet = framework::dataset::make("InPlace", { false, true }); + const auto OutOfPlaceDataSet = framework::dataset::make("InPlace", { false }); + } // namespace diff --git a/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0004-Add-source-files-at-library-definition-time.patch b/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0004-Add-source-files-at-library-definition-time.patch new file mode 100644 index 00000000..971658b4 --- /dev/null +++ b/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0004-Add-source-files-at-library-definition-time.patch @@ -0,0 +1,167 @@ +From a3c7d6aefc289dcce6656fc6d9f9c8c9b1af8f0b Mon Sep 17 00:00:00 2001 +From: Andrew Davis <afd@ti.com> +Date: Thu, 5 Dec 2024 09:38:26 -0600 +Subject: [PATCH] Add source files at library definition time + +This allows for easier conditional disabling of these libraries. + +Upstream-Status: Pending + +Signed-off-by: Andrew Davis <afd@ti.com> +Change-Id: I442aaa03060f2cb7db4ed0c1d93e64dbc223fdc6 +--- + CMakeLists.txt | 20 ++++++++++---------- + scripts/generate_build_files.py | 16 ++++------------ + src/CMakeLists.txt | 16 ++++------------ + 3 files changed, 18 insertions(+), 34 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index e8bdf2af1a..4073e06b17 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -46,6 +46,12 @@ set(CMAKE_CXX_EXTENSIONS OFF) + list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake") + include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/Options.cmake) + include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/Version.cmake) ++include(${CMAKE_CURRENT_SOURCE_DIR}/src/CMakeLists.txt) ++ ++list(TRANSFORM ARM_COMPUTE_GRAPH_SOURCES PREPEND "src/") ++list(TRANSFORM ARM_COMPUTE_SVE_SOURCES PREPEND "src/") ++list(TRANSFORM ARM_COMPUTE_SVE2_SOURCES PREPEND "src/") ++list(TRANSFORM ARM_COMPUTE_SOURCES PREPEND "src/") + + # Require at least gcc/g++ 11) CMAKE_CXX_COMPILER_VERSION OR + if(CMAKE_C_COMPILER_VERSION VERSION_LESS 10.2 OR CMAKE_CXX_COMPILER_VERSION +@@ -139,8 +145,7 @@ endif() + + # --------------------------------------------------------------------- + # SVE Object Library +- +-add_library(arm_compute_sve OBJECT "") ++add_library(arm_compute_sve OBJECT ${ARM_COMPUTE_SVE_SOURCES}) + target_compile_options(arm_compute_sve + PRIVATE "-march=armv8.2-a+sve+fp16+dotprod" + PRIVATE "-fPIC") +@@ -162,8 +167,7 @@ target_include_directories( + + # --------------------------------------------------------------------- + # SVE2 Object Library +- +-add_library(arm_compute_sve2 OBJECT "") ++add_library(arm_compute_sve2 OBJECT ${ARM_COMPUTE_SVE2_SOURCES}) + target_compile_options(arm_compute_sve2 + PRIVATE "-march=armv8.6-a+sve2+fp16+dotprod" + PRIVATE "-fPIC") +@@ -187,7 +191,7 @@ target_include_directories( + # --------------------------------------------------------------------- + # Core Library + +-add_library(arm_compute "") ++add_library(arm_compute ${ARM_COMPUTE_SOURCES}) + target_compile_options(arm_compute PRIVATE "-march=${ARM_COMPUTE_ARCH}") + target_compile_definitions(arm_compute PRIVATE ARM_COMPUTE_ENABLE_BF16) + target_compile_definitions(arm_compute PRIVATE ENABLE_SVE) +@@ -216,7 +220,7 @@ target_link_libraries( + # --------------------------------------------------------------------- + # Graph Library + +-add_library(arm_compute_graph "") ++add_library(arm_compute_graph ${ARM_COMPUTE_GRAPH_SOURCES}) + target_compile_options(arm_compute_graph PRIVATE "-march=${ARM_COMPUTE_ARCH}") + target_compile_definitions(arm_compute_graph PRIVATE ENABLE_SVE) + target_compile_definitions(arm_compute_graph PRIVATE ARM_COMPUTE_ENABLE_SVE) +@@ -238,10 +242,6 @@ target_compile_options(arm_compute_graph PUBLIC ${COMMON_CXX_FLAGS}) + + add_library(ArmCompute::Graph ALIAS arm_compute_graph) + +-# --------------------------------------------------------------------- +-# Library Target Sources +-add_subdirectory(src) +- + if(ARM_COMPUTE_BUILD_TESTING) + # --------------------------------------------------------------------- + # Validation Framework Library +diff --git a/scripts/generate_build_files.py b/scripts/generate_build_files.py +index 52a8cc14da..4c4a14623f 100644 +--- a/scripts/generate_build_files.py ++++ b/scripts/generate_build_files.py +@@ -167,27 +167,19 @@ def build_from_template_cmake(srcs_graph, srcs_sve, srcs_sve2, srcs_core): + + template = f"""{get_template_header()} + +-target_sources( +- arm_compute_graph +- PRIVATE ++set(ARM_COMPUTE_GRAPH_SOURCES + {line_separator.join(srcs_graph)} + ) + +-target_sources( +- arm_compute_sve +- PRIVATE ++set(ARM_COMPUTE_SVE_SOURCES + {line_separator.join(srcs_sve)} + ) + +-target_sources( +- arm_compute_sve2 +- PRIVATE ++set(ARM_COMPUTE_SVE2_SOURCES + {line_separator.join(srcs_sve2)} + ) + +-target_sources( +- arm_compute +- PRIVATE ++set(ARM_COMPUTE_SOURCES + {line_separator.join(srcs_core)} + ) + """ +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index f1b275532a..73871563e1 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -20,9 +20,7 @@ + # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + # SOFTWARE. + +-target_sources( +- arm_compute_graph +- PRIVATE ++set(ARM_COMPUTE_GRAPH_SOURCES + graph/DataLayerVisitor.cpp + graph/Graph.cpp + graph/GraphBuilder.cpp +@@ -100,9 +98,7 @@ target_sources( + graph/printers/DotGraphPrinter.cpp + ) + +-target_sources( +- arm_compute_sve +- PRIVATE ++set(ARM_COMPUTE_SVE_SOURCES + core/NEON/kernels/arm_conv/depthwise/interleaves/sve_s8q_3x3_dot.cpp + core/NEON/kernels/arm_conv/depthwise/interleaves/sve_u8q_3x3_dot.cpp + core/NEON/kernels/arm_conv/depthwise/kernels/sme2_fp16_nhwc_3x3_s1_output2x2_mla_depthfirst/generic_direct.cpp +@@ -331,9 +327,7 @@ target_sources( + cpu/kernels/softmax/generic/sve/impl_bf16.cpp + ) + +-target_sources( +- arm_compute_sve2 +- PRIVATE ++set(ARM_COMPUTE_SVE2_SOURCES + cpu/kernels/activation/generic/sve2/lut.cpp + cpu/kernels/activation/generic/sve2/qasymm8.cpp + cpu/kernels/activation/generic/sve2/qasymm8_signed.cpp +@@ -356,9 +350,7 @@ target_sources( + cpu/kernels/softmax/generic/sve2/impl.cpp + ) + +-target_sources( +- arm_compute +- PRIVATE ++set(ARM_COMPUTE_SOURCES + c/AclContext.cpp + c/AclOperator.cpp + c/AclQueue.cpp diff --git a/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0005-Add-CMake-options-for-SVE-SVE2-and-BF16-support.patch b/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0005-Add-CMake-options-for-SVE-SVE2-and-BF16-support.patch new file mode 100644 index 00000000..29ca02f5 --- /dev/null +++ b/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0005-Add-CMake-options-for-SVE-SVE2-and-BF16-support.patch @@ -0,0 +1,112 @@ +From cdb765df59d8ce5f388ac2a820b5da76eb8d610c Mon Sep 17 00:00:00 2001 +From: Andrew Davis <afd@ti.com> +Date: Thu, 5 Dec 2024 09:47:25 -0600 +Subject: [PATCH] Add CMake options for SVE, SVE2, and BF16 support + +These should be optional, add options for these. Remove the hard-coded +definitions of these for the libraries. This also makes it so validation +options are not needed, if SVE is enabled it will be validated. + +Upstream-Status: Pending + +Signed-off-by: Andrew Davis <afd@ti.com> +Change-Id: I03182ac6ece843e813c027ef6a573cbba254dee9 +--- + CMakeLists.txt | 19 ------------------- + cmake/Options.cmake | 16 +++++++++++++--- + 2 files changed, 13 insertions(+), 22 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 4073e06b17..4d95fb1bfd 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -149,9 +149,6 @@ add_library(arm_compute_sve OBJECT ${ARM_COMPUTE_SVE_SOURCES}) + target_compile_options(arm_compute_sve + PRIVATE "-march=armv8.2-a+sve+fp16+dotprod" + PRIVATE "-fPIC") +-target_compile_definitions(arm_compute_sve PRIVATE ARM_COMPUTE_ENABLE_BF16) +-target_compile_definitions(arm_compute_sve PRIVATE ENABLE_SVE) +-target_compile_definitions(arm_compute_sve PRIVATE ARM_COMPUTE_ENABLE_SVE) + target_include_directories( + arm_compute_sve + PUBLIC $<INSTALL_INTERFACE:include> +@@ -171,10 +168,6 @@ add_library(arm_compute_sve2 OBJECT ${ARM_COMPUTE_SVE2_SOURCES}) + target_compile_options(arm_compute_sve2 + PRIVATE "-march=armv8.6-a+sve2+fp16+dotprod" + PRIVATE "-fPIC") +-target_compile_definitions(arm_compute_sve2 PRIVATE ARM_COMPUTE_ENABLE_SVE2) +-target_compile_definitions(arm_compute_sve2 PRIVATE ARM_COMPUTE_ENABLE_BF16) +-target_compile_definitions(arm_compute_sve2 PRIVATE ENABLE_SVE) +-target_compile_definitions(arm_compute_sve2 PRIVATE ARM_COMPUTE_ENABLE_SVE) + target_include_directories( + arm_compute_sve2 + PUBLIC $<INSTALL_INTERFACE:include> +@@ -193,9 +186,6 @@ target_include_directories( + + add_library(arm_compute ${ARM_COMPUTE_SOURCES}) + target_compile_options(arm_compute PRIVATE "-march=${ARM_COMPUTE_ARCH}") +-target_compile_definitions(arm_compute PRIVATE ARM_COMPUTE_ENABLE_BF16) +-target_compile_definitions(arm_compute PRIVATE ENABLE_SVE) +-target_compile_definitions(arm_compute PRIVATE ARM_COMPUTE_ENABLE_SVE) + target_include_directories( + arm_compute + PUBLIC $<INSTALL_INTERFACE:include> +@@ -222,8 +212,6 @@ target_link_libraries( + + add_library(arm_compute_graph ${ARM_COMPUTE_GRAPH_SOURCES}) + target_compile_options(arm_compute_graph PRIVATE "-march=${ARM_COMPUTE_ARCH}") +-target_compile_definitions(arm_compute_graph PRIVATE ENABLE_SVE) +-target_compile_definitions(arm_compute_graph PRIVATE ARM_COMPUTE_ENABLE_SVE) + # add_subdirectory(src/graph) + + target_include_directories( +@@ -268,13 +256,6 @@ if(ARM_COMPUTE_BUILD_TESTING) + + add_executable(arm_compute_validation "") + target_compile_options(arm_compute_validation PRIVATE "-march=${ARM_COMPUTE_ARCH}") +- if(ARM_COMPUTE_ENABLE_BF16_VALIDATION) +- target_compile_definitions(arm_compute_validation PRIVATE ARM_COMPUTE_ENABLE_BF16) +- endif() +- if(ARM_COMPUTE_ENABLE_SVE_VALIDATION) +- target_compile_definitions(arm_compute_validation PRIVATE ENABLE_SVE) +- target_compile_definitions(arm_compute_validation PRIVATE ARM_COMPUTE_ENABLE_SVE) +- endif() + add_subdirectory(tests/validation) + target_compile_options(arm_compute_validation PUBLIC ${COMMON_CXX_FLAGS}) + set_target_properties( +diff --git a/cmake/Options.cmake b/cmake/Options.cmake +index 121d527718..5c23fcb490 100644 +--- a/cmake/Options.cmake ++++ b/cmake/Options.cmake +@@ -48,11 +48,12 @@ set(ARM_COMPUTE_ARCH armv8-a CACHE STRING "Architecture to use") + # --------------------------------------------------------------------- + # Backends + +-option(ARM_COMPUTE_ENABLE_BF16_VALIDATION "" ON) +-option(ARM_COMPUTE_ENABLE_SVE_VALIDATION "" OFF) +- + option(ENABLE_NEON "Enable Arm® Neon™ support" ON) ++option(ENABLE_SVE "Enable Arm® SVE support" ON) ++option(ENABLE_SVE2 "Enable Arm® SVE2 support" ON) ++ + option(ARM_COMPUTE_CPU_ENABLED "" ON) ++option(ARM_COMPUTE_ENABLE_BF16 "" ON) + option(ARM_COMPUTE_ENABLE_I8MM "" ON) + option(ENABLE_FP32_KERNELS "" ON) + option(ENABLE_QASYMM8_KERNELS "" ON) +@@ -74,6 +75,15 @@ endif() + if(ARM_COMPUTE_CPU_ENABLED) + add_definitions(-DARM_COMPUTE_CPU_ENABLED) + endif() ++if(ENABLE_SVE) ++ add_definitions(-DARM_COMPUTE_ENABLE_SVE) ++endif() ++if(ENABLE_SVE2) ++ add_definitions(-DARM_COMPUTE_ENABLE_SVE2) ++endif() ++if(ARM_COMPUTE_ENABLE_BF16) ++ add_definitions(-DARM_COMPUTE_ENABLE_BF16) ++endif() + if(ARM_COMPUTE_ENABLE_FP16) + add_definitions(-DARM_COMPUTE_ENABLE_FP16) + endif() diff --git a/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0006-Allow-SVE-and-SVE2-support-to-be-disabled-in-CMake.patch b/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0006-Allow-SVE-and-SVE2-support-to-be-disabled-in-CMake.patch new file mode 100644 index 00000000..06370adb --- /dev/null +++ b/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0006-Allow-SVE-and-SVE2-support-to-be-disabled-in-CMake.patch @@ -0,0 +1,91 @@ +From ab5bf5b8f86337a31bfd48277650f583a040e658 Mon Sep 17 00:00:00 2001 +From: Andrew Davis <afd@ti.com> +Date: Thu, 5 Dec 2024 09:59:48 -0600 +Subject: [PATCH] Allow SVE and SVE2 support to be disabled in CMake + +Currently these are hard-coded as enabled. The SVE and SVE2 libraries +are built unconditionally. These should only be built when SVE or +SVE2 is available. + +Upstream-Status: Pending + +Signed-off-by: Andrew Davis <afd@ti.com> +Change-Id: I176259f872a84f736028622694d65d4c5b57e379 +--- + CMakeLists.txt | 25 ++++++++++++++++++------- + 1 file changed, 18 insertions(+), 7 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 4d95fb1bfd..d233d6bc67 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -145,6 +145,7 @@ endif() + + # --------------------------------------------------------------------- + # SVE Object Library ++if(ENABLE_SVE) + add_library(arm_compute_sve OBJECT ${ARM_COMPUTE_SVE_SOURCES}) + target_compile_options(arm_compute_sve + PRIVATE "-march=armv8.2-a+sve+fp16+dotprod" +@@ -161,9 +162,11 @@ target_include_directories( + src/core/cpu/kernels/assembly + src/cpu/kernels/assembly + src/core/NEON/kernels/arm_gemm/merges) ++endif() # ENABLE_SVE + + # --------------------------------------------------------------------- + # SVE2 Object Library ++if(ENABLE_SVE2) + add_library(arm_compute_sve2 OBJECT ${ARM_COMPUTE_SVE2_SOURCES}) + target_compile_options(arm_compute_sve2 + PRIVATE "-march=armv8.6-a+sve2+fp16+dotprod" +@@ -180,6 +183,7 @@ target_include_directories( + src/core/cpu/kernels/assembly + src/cpu/kernels/assembly + src/core/NEON/kernels/arm_gemm/merges) ++endif() # ENABLE_SVE2 + + # --------------------------------------------------------------------- + # Core Library +@@ -203,9 +207,12 @@ target_compile_options(arm_compute PUBLIC ${COMMON_CXX_FLAGS}) + add_library(ArmCompute::Core ALIAS arm_compute) + + # arm_compute_sve and arm_compute_sve2 obj files will not be public in the arm_compute.so +-target_link_libraries( +- arm_compute PRIVATE $<TARGET_OBJECTS:arm_compute_sve> +- PRIVATE $<TARGET_OBJECTS:arm_compute_sve2>) ++if(ENABLE_SVE) ++ target_link_libraries(arm_compute PRIVATE $<TARGET_OBJECTS:arm_compute_sve>) ++endif() ++if(ENABLE_SVE2) ++ target_link_libraries(arm_compute PRIVATE $<TARGET_OBJECTS:arm_compute_sve2>) ++endif() + + # --------------------------------------------------------------------- + # Graph Library +@@ -263,8 +270,10 @@ if(ARM_COMPUTE_BUILD_TESTING) + "${CMAKE_BINARY_DIR}/validation") + target_link_libraries( + arm_compute_validation +- PUBLIC arm_compute arm_compute_graph arm_compute_validation_framework +- arm_compute_sve) ++ PUBLIC arm_compute arm_compute_graph arm_compute_validation_framework) ++ if(ENABLE_SVE) ++ target_link_libraries(arm_compute_validation PUBLIC arm_compute_sve) ++ endif() + target_link_directories(arm_compute_validation PUBLIC tests) + + # --------------------------------------------------------------------- +@@ -299,8 +308,10 @@ if(ARM_COMPUTE_BUILD_EXAMPLES) + set_target_properties( + ${test_name} PROPERTIES RUNTIME_OUTPUT_DIRECTORY + "${CMAKE_BINARY_DIR}/examples") +- target_link_libraries(${test_name} PUBLIC arm_compute +- arm_compute_graph arm_compute_sve) ++ target_link_libraries(${test_name} PUBLIC arm_compute arm_compute_graph) ++ if(ENABLE_SVE) ++ target_link_libraries(${test_name} PUBLIC arm_compute_sve) ++ endif() + endforeach() + + # NEON Examples diff --git a/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0007-Allow-ARMv7-builds-using-CMake.patch b/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0007-Allow-ARMv7-builds-using-CMake.patch new file mode 100644 index 00000000..07dd4bee --- /dev/null +++ b/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0007-Allow-ARMv7-builds-using-CMake.patch @@ -0,0 +1,86 @@ +From 416cffe2a75a4ec66a75e00bc00297f2f0187e0f Mon Sep 17 00:00:00 2001 +From: Andrew Davis <afd@ti.com> +Date: Thu, 5 Dec 2024 10:05:03 -0600 +Subject: [PATCH] Allow ARMv7 builds using CMake + +Upstream-Status: Pending + +Signed-off-by: Andrew Davis <afd@ti.com> +Change-Id: Ib6bae5820569a8eadd53afdfe31e611a3089140e +--- + CMakeLists.txt | 25 +++++++++++++++++-- + .../fixtures/CpuGemmAssemblyDispatchFixture.h | 3 +++ + 2 files changed, 26 insertions(+), 2 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index d233d6bc67..4fc27553f3 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -148,7 +148,7 @@ endif() + if(ENABLE_SVE) + add_library(arm_compute_sve OBJECT ${ARM_COMPUTE_SVE_SOURCES}) + target_compile_options(arm_compute_sve +- PRIVATE "-march=armv8.2-a+sve+fp16+dotprod" ++ PRIVATE "-march=${ARM_COMPUTE_ARCH}" + PRIVATE "-fPIC") + target_include_directories( + arm_compute_sve +@@ -169,7 +169,7 @@ endif() # ENABLE_SVE + if(ENABLE_SVE2) + add_library(arm_compute_sve2 OBJECT ${ARM_COMPUTE_SVE2_SOURCES}) + target_compile_options(arm_compute_sve2 +- PRIVATE "-march=armv8.6-a+sve2+fp16+dotprod" ++ PRIVATE "-march=${ARM_COMPUTE_ARCH}" + PRIVATE "-fPIC") + target_include_directories( + arm_compute_sve2 +@@ -204,6 +204,15 @@ target_include_directories( + src/core/NEON/kernels/convolution/winograd) + target_compile_options(arm_compute PUBLIC ${COMMON_CXX_FLAGS}) + ++if(ARM_COMPUTE_ARCH MATCHES "armv7") ++ target_sources( ++ arm_compute ++ PRIVATE ++ src/core/NEON/kernels/arm_gemm/kernels/a32_sgemm_8x6/a53.cpp ++ src/core/NEON/kernels/arm_gemm/kernels/a32_sgemm_8x6/a55r1.cpp ++ src/core/NEON/kernels/arm_gemm/kernels/a32_sgemm_8x6/generic.cpp) ++endif() ++ + add_library(ArmCompute::Core ALIAS arm_compute) + + # arm_compute_sve and arm_compute_sve2 obj files will not be public in the arm_compute.so +@@ -264,6 +273,18 @@ if(ARM_COMPUTE_BUILD_TESTING) + add_executable(arm_compute_validation "") + target_compile_options(arm_compute_validation PRIVATE "-march=${ARM_COMPUTE_ARCH}") + add_subdirectory(tests/validation) ++ target_include_directories( ++ arm_compute_validation ++ PUBLIC $<INSTALL_INTERFACE:include> ++ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include> ++ ${CMAKE_CURRENT_SOURCE_DIR} ++ PRIVATE src ++ src/cpu/kernels/assembly ++ src/core/NEON/kernels/arm_gemm ++ src/core/NEON/kernels/assembly ++ src/core/NEON/kernels/convolution/common ++ src/core/NEON/kernels/arm_conv/depthwise ++ src/core/NEON/kernels/convolution/winograd) + target_compile_options(arm_compute_validation PUBLIC ${COMMON_CXX_FLAGS}) + set_target_properties( + arm_compute_validation PROPERTIES RUNTIME_OUTPUT_DIRECTORY +diff --git a/tests/validation/fixtures/CpuGemmAssemblyDispatchFixture.h b/tests/validation/fixtures/CpuGemmAssemblyDispatchFixture.h +index 5d74e210d5..0b45cdf356 100644 +--- a/tests/validation/fixtures/CpuGemmAssemblyDispatchFixture.h ++++ b/tests/validation/fixtures/CpuGemmAssemblyDispatchFixture.h +@@ -25,7 +25,10 @@ + #define ACL_TESTS_VALIDATION_FIXTURES_CPUGEMMASSEMBLYDISPATCHFIXTURE_H + + #include "arm_compute/core/Helpers.h" ++ ++#ifdef ARM_COMPUTE_ENABLE_FIXED_FORMAT_KERNELS + #include "arm_compute/runtime/NEON/functions/NEReorderLayer.h" ++#endif //ARM_COMPUTE_ENABLE_FIXED_FORMAT_KERNELS + #include "arm_compute/runtime/NEON/functions/NETranspose.h" + + #include "src/core/NEON/kernels/arm_gemm/utils.hpp" diff --git a/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0008-Fix-undefined-symbol-error-when-building-TensorInfo.patch b/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0008-Fix-undefined-symbol-error-when-building-TensorInfo.patch new file mode 100644 index 00000000..9883a44d --- /dev/null +++ b/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0008-Fix-undefined-symbol-error-when-building-TensorInfo.patch @@ -0,0 +1,46 @@ +From 58698788adaeb2f74cf9fcddf06f3e9a2e78b984 Mon Sep 17 00:00:00 2001 +From: Andrew Davis <afd@ti.com> +Date: Mon, 16 Dec 2024 09:42:22 -0600 +Subject: [PATCH] Fix undefined symbol error when building TensorInfo + +Upstream-Status: Pending + +Signed-off-by: Andrew Davis <afd@ti.com> +Change-Id: I657d1b7faaad94147c685c4826916d3c21da82e1 +--- + arm_compute/core/TensorInfo.h | 5 +---- + src/core/TensorInfo.cpp | 5 +++++ + 2 files changed, 6 insertions(+), 4 deletions(-) + +diff --git a/arm_compute/core/TensorInfo.h b/arm_compute/core/TensorInfo.h +index e4c9cbe879..2bfe83c4b1 100644 +--- a/arm_compute/core/TensorInfo.h ++++ b/arm_compute/core/TensorInfo.h +@@ -242,10 +242,7 @@ public: + { + return _num_channels; + } +- const TensorShape &tensor_shape() const override +- { +- return _tensor_shape; +- } ++ const TensorShape &tensor_shape() const override; + const TensorDimsState &tensor_dims_state() const override + { + return _dims_state; +diff --git a/src/core/TensorInfo.cpp b/src/core/TensorInfo.cpp +index 31bddbde40..884203fd7c 100644 +--- a/src/core/TensorInfo.cpp ++++ b/src/core/TensorInfo.cpp +@@ -395,6 +395,11 @@ ITensorInfo &TensorInfo::set_tensor_dims_state(const TensorDimsState &state) + return *this; + } + ++const TensorShape &TensorInfo::tensor_shape() const ++{ ++ return _tensor_shape; ++} ++ + ITensorInfo &TensorInfo::set_quantization_info(const QuantizationInfo &quantization_info) + { + _quantization_info = quantization_info; diff --git a/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library_24.12.bb b/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library_24.12.bb new file mode 100644 index 00000000..d069da4c --- /dev/null +++ b/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library_24.12.bb @@ -0,0 +1,79 @@ +SUMMARY = "The ARM Computer Vision and Machine Learning library" +DESCRIPTION = "The ARM Computer Vision and Machine Learning library is a set of functions optimised for both ARM CPUs and GPUs." +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSES/MIT.txt;md5=35f8944fae972976691f3483b0ac9dba" + +SRC_URI = " \ + git://github.com/ARM-software/ComputeLibrary.git;branch=main;protocol=https \ + file://0001-fix-Fix-indention-in-cmake-generator-script.patch \ + file://0002-Use-ARM_COMPUTE_ENABLE_NEON-in-code-for-checking-NEO.patch \ + file://0003-Use-ARM_COMPUTE_ENABLE_SVE-in-code-for-checking-SVE-.patch \ + file://0004-Add-source-files-at-library-definition-time.patch \ + file://0005-Add-CMake-options-for-SVE-SVE2-and-BF16-support.patch \ + file://0006-Allow-SVE-and-SVE2-support-to-be-disabled-in-CMake.patch \ + file://0007-Allow-ARMv7-builds-using-CMake.patch \ + file://0008-Fix-undefined-symbol-error-when-building-TensorInfo.patch \ +" +SRCREV = "32bcced2af7feea6969dd1d22e58d0718dc488e3" + +S = "${WORKDIR}/git" + +COMPATIBLE_HOST = "(arm|aarch64).*-linux" + +inherit cmake + +PACKAGECONFIG ??= "examples tests cppthreads openmp" + +PACKAGECONFIG[Werror] = "-DARM_COMPUTE_WERROR=ON,-DARM_COMPUTE_WERROR=OFF" +PACKAGECONFIG[examples] = "-DARM_COMPUTE_BUILD_EXAMPLES=ON,-DARM_COMPUTE_BUILD_EXAMPLES=OFF" +PACKAGECONFIG[tests] = "-DARM_COMPUTE_BUILD_TESTING=ON,-DARM_COMPUTE_BUILD_TESTING=OFF" +PACKAGECONFIG[cppthreads] = "-DARM_COMPUTE_CPPTHREADS=ON,-DARM_COMPUTE_CPPTHREADS=OFF" +PACKAGECONFIG[openmp] = "-DARM_COMPUTE_OPENMP=ON,-DARM_COMPUTE_OPENMP=OFF" + +EXTRA_OECMAKE:append:aarch64 = " \ + -DARM_COMPUTE_ARCH=armv8-a \ + -DENABLE_NEON=ON \ + -DENABLE_SVE=OFF \ + -DENABLE_SVE2=OFF \ +" +EXTRA_OECMAKE:append:arm = " \ + -DARM_COMPUTE_ARCH=armv7-a \ + -DENABLE_NEON=ON \ + -DENABLE_SVE=OFF \ + -DENABLE_SVE2=OFF \ + -DARM_COMPUTE_ENABLE_BF16=OFF \ + -DARM_COMPUTE_ENABLE_FIXED_FORMAT_KERNELS=OFF \ +" + +INHIBIT_PACKAGE_DEBUG_SPLIT = "1" + +# package unversioned .so files in PN (they are not dev symlinks) +FILES_SOLIBSDEV = "" +FILES:${PN} += "${libdir}/*.so" + +# Install headers and examples +do_install:append() { + # Install headers + CP_ARGS="-Prf --preserve=mode,timestamps --no-preserve=ownership" + install -d ${D}${includedir} + cp $CP_ARGS ${S}/arm_compute ${D}${includedir} + cp $CP_ARGS ${S}/support ${D}${includedir}/support + + # Install examples + if ${@bb.utils.contains('PACKAGECONFIG', 'examples', 'true', 'false', d)}; then + install -d ${D}${bindir}/${PN}-${PV}/examples + for example in ${B}/examples/*; do + if [ -d "$example" ]; then + continue + fi + case "$example" in + (*.o|*.a|*.cmake) continue;; + esac + install -m 0555 $example ${D}${bindir}/${PN}-${PV}/examples + done + fi +} + +PACKAGES =+ "${PN}-tests ${PN}-examples" +FILES:${PN}-tests += "${libdir}/tests" +FILES:${PN}-examples += "${bindir}/*/examples" diff --git a/meta-arago-test/recipes-core/packagegroups/ti-test.bb b/meta-arago-test/recipes-core/packagegroups/ti-test.bb index e8458cef..37f75a39 100644 --- a/meta-arago-test/recipes-core/packagegroups/ti-test.bb +++ b/meta-arago-test/recipes-core/packagegroups/ti-test.bb @@ -61,6 +61,7 @@ TI_TEST_EXTRAS = " \ piglit \ python3-numpy \ wayland-utils \ + arm-compute-library-tests \ " TI_TEST_BASE:append:armv7a = " \ -- 2.39.2 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [meta-arago][scarthgap/master][PATCH 2/2] meta-arago-extras: Add recipe for arm-compute-library 2024-12-20 16:49 ` [meta-arago][scarthgap/master][PATCH 2/2] meta-arago-extras: Add recipe for arm-compute-library Andrew Davis @ 2025-01-09 18:27 ` Ryan Eatmon 2025-01-09 18:44 ` Andrew Davis 0 siblings, 1 reply; 10+ messages in thread From: Ryan Eatmon @ 2025-01-09 18:27 UTC (permalink / raw) To: Andrew Davis, Denys Dmytriyenko, meta-arago This fails to build for omapl138-lcdk. Do we need a v2 that address this? On 12/20/2024 10:49 AM, Andrew Davis wrote: > The Compute Library is a collection of low-level machine learning > functions optimized for Arm. This will be used for ARMNN and > other machine learning applications and frameworks. > > Signed-off-by: Andrew Davis <afd@ti.com> > --- > ...-indention-in-cmake-generator-script.patch | 130 ++++++++++++ > ...ENABLE_NEON-in-code-for-checking-NEO.patch | 114 ++++++++++ > ...ENABLE_SVE-in-code-for-checking-SVE-.patch | 197 ++++++++++++++++++ > ...rce-files-at-library-definition-time.patch | 167 +++++++++++++++ > ...ptions-for-SVE-SVE2-and-BF16-support.patch | 112 ++++++++++ > ...SVE2-support-to-be-disabled-in-CMake.patch | 91 ++++++++ > .../0007-Allow-ARMv7-builds-using-CMake.patch | 86 ++++++++ > ...ymbol-error-when-building-TensorInfo.patch | 46 ++++ > .../arm-compute-library_24.12.bb | 79 +++++++ > .../recipes-core/packagegroups/ti-test.bb | 1 + > 10 files changed, 1023 insertions(+) > create mode 100644 meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0001-fix-Fix-indention-in-cmake-generator-script.patch > create mode 100644 meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0002-Use-ARM_COMPUTE_ENABLE_NEON-in-code-for-checking-NEO.patch > create mode 100644 meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0003-Use-ARM_COMPUTE_ENABLE_SVE-in-code-for-checking-SVE-.patch > create mode 100644 meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0004-Add-source-files-at-library-definition-time.patch > create mode 100644 meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0005-Add-CMake-options-for-SVE-SVE2-and-BF16-support.patch > create mode 100644 meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0006-Allow-SVE-and-SVE2-support-to-be-disabled-in-CMake.patch > create mode 100644 meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0007-Allow-ARMv7-builds-using-CMake.patch > create mode 100644 meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0008-Fix-undefined-symbol-error-when-building-TensorInfo.patch > create mode 100644 meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library_24.12.bb > > diff --git a/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0001-fix-Fix-indention-in-cmake-generator-script.patch b/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0001-fix-Fix-indention-in-cmake-generator-script.patch > new file mode 100644 > index 00000000..9e36d254 > --- /dev/null > +++ b/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0001-fix-Fix-indention-in-cmake-generator-script.patch > @@ -0,0 +1,130 @@ > +From 1e4c3016547b5f75e515d4b9a7202733c47f5a18 Mon Sep 17 00:00:00 2001 > +From: Andrew Davis <afd@ti.com> > +Date: Wed, 4 Dec 2024 14:46:17 -0600 > +Subject: [PATCH] fix: Fix indention in cmake generator script > + > +All other items in these lists use tabs, the first couple > +lines should match. Switch them to tabs then regenerate > +the CMakeLists.txt file. > + > +While here fix the missing ending newline. > + > +Upstream-Status: Pending > + > +Signed-off-by: Andrew Davis <afd@ti.com> > +Change-Id: Icab852fc43ae08e7858857881c996d233c835289 > +--- > + scripts/generate_build_files.py | 27 ++++++++++++++------------- > + src/CMakeLists.txt | 26 +++++++++++++------------- > + 2 files changed, 27 insertions(+), 26 deletions(-) > + > +diff --git a/scripts/generate_build_files.py b/scripts/generate_build_files.py > +index f88cf1af44..52a8cc14da 100644 > +--- a/scripts/generate_build_files.py > ++++ b/scripts/generate_build_files.py > +@@ -168,28 +168,29 @@ def build_from_template_cmake(srcs_graph, srcs_sve, srcs_sve2, srcs_core): > + template = f"""{get_template_header()} > + > + target_sources( > +- arm_compute_graph > +- PRIVATE > +- {line_separator.join(srcs_graph)} > ++ arm_compute_graph > ++ PRIVATE > ++ {line_separator.join(srcs_graph)} > + ) > + > + target_sources( > +- arm_compute_sve > +- PRIVATE > +- {line_separator.join(srcs_sve)} > ++ arm_compute_sve > ++ PRIVATE > ++ {line_separator.join(srcs_sve)} > + ) > + > + target_sources( > +- arm_compute_sve2 > +- PRIVATE > +- {line_separator.join(srcs_sve2)} > ++ arm_compute_sve2 > ++ PRIVATE > ++ {line_separator.join(srcs_sve2)} > + ) > + > + target_sources( > +- arm_compute > +- PRIVATE > +- {line_separator.join(srcs_core)} > +-)""" > ++ arm_compute > ++ PRIVATE > ++ {line_separator.join(srcs_core)} > ++) > ++""" > + return template > + > + > +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt > +index ff3bed96df..f1b275532a 100644 > +--- a/src/CMakeLists.txt > ++++ b/src/CMakeLists.txt > +@@ -21,9 +21,9 @@ > + # SOFTWARE. > + > + target_sources( > +- arm_compute_graph > +- PRIVATE > +- graph/DataLayerVisitor.cpp > ++ arm_compute_graph > ++ PRIVATE > ++ graph/DataLayerVisitor.cpp > + graph/Graph.cpp > + graph/GraphBuilder.cpp > + graph/GraphContext.cpp > +@@ -101,9 +101,9 @@ target_sources( > + ) > + > + target_sources( > +- arm_compute_sve > +- PRIVATE > +- core/NEON/kernels/arm_conv/depthwise/interleaves/sve_s8q_3x3_dot.cpp > ++ arm_compute_sve > ++ PRIVATE > ++ core/NEON/kernels/arm_conv/depthwise/interleaves/sve_s8q_3x3_dot.cpp > + core/NEON/kernels/arm_conv/depthwise/interleaves/sve_u8q_3x3_dot.cpp > + core/NEON/kernels/arm_conv/depthwise/kernels/sme2_fp16_nhwc_3x3_s1_output2x2_mla_depthfirst/generic_direct.cpp > + core/NEON/kernels/arm_conv/depthwise/kernels/sme2_fp16_nhwc_3x3_s1_output2x2_mla_depthfirst/generic_indirect.cpp > +@@ -332,9 +332,9 @@ target_sources( > + ) > + > + target_sources( > +- arm_compute_sve2 > +- PRIVATE > +- cpu/kernels/activation/generic/sve2/lut.cpp > ++ arm_compute_sve2 > ++ PRIVATE > ++ cpu/kernels/activation/generic/sve2/lut.cpp > + cpu/kernels/activation/generic/sve2/qasymm8.cpp > + cpu/kernels/activation/generic/sve2/qasymm8_signed.cpp > + cpu/kernels/activation/generic/sve2/qsymm16.cpp > +@@ -357,9 +357,9 @@ target_sources( > + ) > + > + target_sources( > +- arm_compute > +- PRIVATE > +- c/AclContext.cpp > ++ arm_compute > ++ PRIVATE > ++ c/AclContext.cpp > + c/AclOperator.cpp > + c/AclQueue.cpp > + c/AclTensor.cpp > +@@ -1049,4 +1049,4 @@ target_sources( > + runtime/experimental/operators/CpuSub.cpp > + runtime/experimental/operators/CpuTranspose.cpp > + runtime/experimental/operators/CpuWinogradConv2d.cpp > +-) > +\ No newline at end of file > ++) > diff --git a/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0002-Use-ARM_COMPUTE_ENABLE_NEON-in-code-for-checking-NEO.patch b/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0002-Use-ARM_COMPUTE_ENABLE_NEON-in-code-for-checking-NEO.patch > new file mode 100644 > index 00000000..174327c5 > --- /dev/null > +++ b/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0002-Use-ARM_COMPUTE_ENABLE_NEON-in-code-for-checking-NEO.patch > @@ -0,0 +1,114 @@ > +From 4350c56d14b7b68acd060d8331f3ade1fb74e167 Mon Sep 17 00:00:00 2001 > +From: Andrew Davis <afd@ti.com> > +Date: Thu, 5 Dec 2024 09:21:23 -0600 > +Subject: [PATCH] Use ARM_COMPUTE_ENABLE_NEON in code for checking NEON support > + > +ENABLE_NEON is a flag used by the build systems. The flag is not used > +in code, instead ARM_COMPUTE_ENABLE_NEON is used everywhere. > + > +Drop the ENABLE_NEON compiler definition to prevent any accidental > +use in code. > + > +Upstream-Status: Pending > + > +Signed-off-by: Andrew Davis <afd@ti.com> > +Change-Id: I65f5e7411c99280e2dd8c187140909cefd1c6892 > +--- > + Android.bp | 1 - > + BUILD.bazel | 1 - > + SConscript | 2 +- > + SConstruct | 2 +- > + cmake/Options.cmake | 6 +----- > + scripts/generate_android_bp.py | 1 - > + 6 files changed, 3 insertions(+), 10 deletions(-) > + > +diff --git a/Android.bp b/Android.bp > +index 69379472b0..9288bba2d4 100644 > +--- a/Android.bp > ++++ b/Android.bp > +@@ -157,7 +157,6 @@ arm_compute_library_defaults { > + "-DEMBEDDED_KERNELS", > + "-DARM_COMPUTE_ASSERTS_ENABLED", > + "-DARM_COMPUTE_CPP_SCHEDULER", > +- "-DENABLE_NEON", > + "-DARM_COMPUTE_ENABLE_NEON", > + "-Wno-unused-parameter", > + "-DNO_DOT_IN_TOOLCHAIN", > +diff --git a/BUILD.bazel b/BUILD.bazel > +index f553b7bfad..2262a09655 100644 > +--- a/BUILD.bazel > ++++ b/BUILD.bazel > +@@ -170,7 +170,6 @@ config_setting( > + cc_library( > + name = "common_defines", > + defines = [ > +- "ENABLE_NEON", > + "ARM_COMPUTE_CPU_ENABLED", > + "ARM_COMPUTE_ENABLE_NEON", > + "ARM_COMPUTE_ENABLE_I8MM", > +diff --git a/SConscript b/SConscript > +index 12e8fd1025..69a564873f 100644 > +--- a/SConscript > ++++ b/SConscript > +@@ -97,7 +97,7 @@ def build_multiisa_lib_objects(): > + > + # note that ARM_COMPUTE_ENABLE_FP16 is enabled in update_data_type_layout_flags() to make > + # sure the environment is progated to the validation suite > +- arm_compute_env.Append(CPPDEFINES = ['ENABLE_NEON', 'ARM_COMPUTE_ENABLE_NEON', > ++ arm_compute_env.Append(CPPDEFINES = ['ARM_COMPUTE_ENABLE_NEON', > + 'ENABLE_SVE', 'ARM_COMPUTE_ENABLE_SVE','ARM_COMPUTE_ENABLE_BF16', > + 'ARM_COMPUTE_ENABLE_I8MM', 'ARM_COMPUTE_ENABLE_SVEF32MM']) > + > +diff --git a/SConstruct b/SConstruct > +index 8d7bd291e8..7381300fc8 100644 > +--- a/SConstruct > ++++ b/SConstruct > +@@ -302,7 +302,7 @@ if 'v7a' in env['estate'] and env['estate'] == '64': > + print("ERROR: armv7a architecture has only 32-bit execution state") > + Exit(1) > + > +-env.Append(CPPDEFINES = ['ENABLE_NEON', 'ARM_COMPUTE_ENABLE_NEON']) > ++env.Append(CPPDEFINES = ['ARM_COMPUTE_ENABLE_NEON']) > + > + if 'sve' in env['arch']: > + env.Append(CPPDEFINES = ['ENABLE_SVE', 'ARM_COMPUTE_ENABLE_SVE']) > +diff --git a/cmake/Options.cmake b/cmake/Options.cmake > +index 5d685be48d..121d527718 100644 > +--- a/cmake/Options.cmake > ++++ b/cmake/Options.cmake > +@@ -53,7 +53,6 @@ option(ARM_COMPUTE_ENABLE_SVE_VALIDATION "" OFF) > + > + option(ENABLE_NEON "Enable Arm® Neon™ support" ON) > + option(ARM_COMPUTE_CPU_ENABLED "" ON) > +-option(ARM_COMPUTE_ENABLE_NEON "" ON) > + option(ARM_COMPUTE_ENABLE_I8MM "" ON) > + option(ENABLE_FP32_KERNELS "" ON) > + option(ENABLE_QASYMM8_KERNELS "" ON) > +@@ -70,14 +69,11 @@ option(ENABLE_FP16_KERNELS "" OFF) > + option(ARM_COMPUTE_ENABLE_FP16 "" OFF) > + > + if(ENABLE_NEON) > +- add_definitions(-DENABLE_NEON) > ++ add_definitions(-DARM_COMPUTE_ENABLE_NEON) > + endif() > + if(ARM_COMPUTE_CPU_ENABLED) > + add_definitions(-DARM_COMPUTE_CPU_ENABLED) > + endif() > +-if(ARM_COMPUTE_ENABLE_NEON) > +- add_definitions(-DARM_COMPUTE_ENABLE_NEON) > +-endif() > + if(ARM_COMPUTE_ENABLE_FP16) > + add_definitions(-DARM_COMPUTE_ENABLE_FP16) > + endif() > +diff --git a/scripts/generate_android_bp.py b/scripts/generate_android_bp.py > +index d5b268f522..99a04e7071 100755 > +--- a/scripts/generate_android_bp.py > ++++ b/scripts/generate_android_bp.py > +@@ -94,7 +94,6 @@ arm_compute_library_defaults { > + "-DEMBEDDED_KERNELS", > + "-DARM_COMPUTE_ASSERTS_ENABLED", > + "-DARM_COMPUTE_CPP_SCHEDULER", > +- "-DENABLE_NEON", > + "-DARM_COMPUTE_ENABLE_NEON", > + "-Wno-unused-parameter", > + "-DNO_DOT_IN_TOOLCHAIN", > diff --git a/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0003-Use-ARM_COMPUTE_ENABLE_SVE-in-code-for-checking-SVE-.patch b/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0003-Use-ARM_COMPUTE_ENABLE_SVE-in-code-for-checking-SVE-.patch > new file mode 100644 > index 00000000..b51e4534 > --- /dev/null > +++ b/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0003-Use-ARM_COMPUTE_ENABLE_SVE-in-code-for-checking-SVE-.patch > @@ -0,0 +1,197 @@ > +From 92a881cebfee5504b188a046a96d39dd9361ddb1 Mon Sep 17 00:00:00 2001 > +From: Andrew Davis <afd@ti.com> > +Date: Thu, 5 Dec 2024 08:57:38 -0600 > +Subject: [PATCH] Use ARM_COMPUTE_ENABLE_SVE in code for checking SVE support > + > +ENABLE_SVE is a flag used by the build systems. The flag used in code > +is ARM_COMPUTE_ENABLE_SVE. There are just a couple spots where the > +build system flag is used instead causing the need to define both. > + > +Switch these last users of ENABLE_SVE over to ARM_COMPUTE_ENABLE_SVE > +then drop the ENABLE_SVE definition to prevent any more instances > +being added in the future. > + > +Upstream-Status: Pending > + > +Signed-off-by: Andrew Davis <afd@ti.com> > +Change-Id: I00da7580c4520647b62c6989bc7fbdd5efc7935e > +--- > + BUILD.bazel | 3 --- > + SConscript | 2 +- > + SConstruct | 2 +- > + .../batchnormalization/impl/SVE/fp16.cpp | 2 +- > + .../batchnormalization/impl/SVE/fp32.cpp | 2 +- > + tests/BUILD.bazel | 1 - > + tests/validation/NEON/ActivationLayer.cpp | 24 +++++++++---------- > + tests/validation/NEON/ArithmeticAddition.cpp | 6 ++--- > + 8 files changed, 19 insertions(+), 23 deletions(-) > + > +diff --git a/BUILD.bazel b/BUILD.bazel > +index 2262a09655..c04a52e084 100644 > +--- a/BUILD.bazel > ++++ b/BUILD.bazel > +@@ -297,7 +297,6 @@ cc_library( > + "//conditions:default": [], > + }), > + local_defines = [ > +- "ENABLE_SVE", > + "ARM_COMPUTE_ENABLE_SVE", > + "ARM_COMPUTE_ENABLE_SVE2", > + "ARM_COMPUTE_ENABLE_BF16", > +@@ -348,7 +347,6 @@ cc_library( > + "//conditions:default": [], > + }), > + local_defines = [ > +- "ENABLE_SVE", > + "ARM_COMPUTE_ENABLE_SVE", > + "ARM_COMPUTE_ENABLE_BF16", > + ], > +@@ -409,7 +407,6 @@ cc_library( > + "//conditions:default": [], > + }), > + local_defines = [ > +- "ENABLE_SVE", > + "ARM_COMPUTE_ENABLE_SVE", > + "ARM_COMPUTE_ENABLE_BF16", > + ], > +diff --git a/SConscript b/SConscript > +index 69a564873f..c2ca549b71 100644 > +--- a/SConscript > ++++ b/SConscript > +@@ -98,7 +98,7 @@ def build_multiisa_lib_objects(): > + # note that ARM_COMPUTE_ENABLE_FP16 is enabled in update_data_type_layout_flags() to make > + # sure the environment is progated to the validation suite > + arm_compute_env.Append(CPPDEFINES = ['ARM_COMPUTE_ENABLE_NEON', > +- 'ENABLE_SVE', 'ARM_COMPUTE_ENABLE_SVE','ARM_COMPUTE_ENABLE_BF16', > ++ 'ARM_COMPUTE_ENABLE_SVE','ARM_COMPUTE_ENABLE_BF16', > + 'ARM_COMPUTE_ENABLE_I8MM', 'ARM_COMPUTE_ENABLE_SVEF32MM']) > + > + # Build all the common files for the base architecture > +diff --git a/SConstruct b/SConstruct > +index 7381300fc8..17f5615acf 100644 > +--- a/SConstruct > ++++ b/SConstruct > +@@ -305,7 +305,7 @@ if 'v7a' in env['estate'] and env['estate'] == '64': > + env.Append(CPPDEFINES = ['ARM_COMPUTE_ENABLE_NEON']) > + > + if 'sve' in env['arch']: > +- env.Append(CPPDEFINES = ['ENABLE_SVE', 'ARM_COMPUTE_ENABLE_SVE']) > ++ env.Append(CPPDEFINES = ['ARM_COMPUTE_ENABLE_SVE']) > + if 'sve2' in env['arch']: > + env.Append(CPPDEFINES = ['ARM_COMPUTE_ENABLE_SVE2']) > + > +diff --git a/src/core/NEON/kernels/batchnormalization/impl/SVE/fp16.cpp b/src/core/NEON/kernels/batchnormalization/impl/SVE/fp16.cpp > +index 48caaa3e63..e07593312c 100644 > +--- a/src/core/NEON/kernels/batchnormalization/impl/SVE/fp16.cpp > ++++ b/src/core/NEON/kernels/batchnormalization/impl/SVE/fp16.cpp > +@@ -128,4 +128,4 @@ void fp16_sve_batch_normalization(ITensor *src, > + } > + } // namespace cpu > + } // namespace arm_compute > +-#endif // ENABLE_SVE > ++#endif // ARM_COMPUTE_ENABLE_SVE > +diff --git a/src/core/NEON/kernels/batchnormalization/impl/SVE/fp32.cpp b/src/core/NEON/kernels/batchnormalization/impl/SVE/fp32.cpp > +index df4fbfe607..0d52d2c3c0 100644 > +--- a/src/core/NEON/kernels/batchnormalization/impl/SVE/fp32.cpp > ++++ b/src/core/NEON/kernels/batchnormalization/impl/SVE/fp32.cpp > +@@ -128,4 +128,4 @@ void fp32_sve_batch_normalization(ITensor *src, > + } > + } // namespace cpu > + } // namespace arm_compute > +-#endif // ENABLE_SVE > ++#endif // ARM_COMPUTE_ENABLE_SVE > +diff --git a/tests/BUILD.bazel b/tests/BUILD.bazel > +index 7085f1facc..4b4be8b257 100644 > +--- a/tests/BUILD.bazel > ++++ b/tests/BUILD.bazel > +@@ -114,7 +114,6 @@ cc_binary( > + }) + > + select({ > + "//:sve_validation_flag": [ > +- "ENABLE_SVE", > + "ARM_COMPUTE_ENABLE_SVE", > + ], > + "//conditions:default": [], > +diff --git a/tests/validation/NEON/ActivationLayer.cpp b/tests/validation/NEON/ActivationLayer.cpp > +index 119d51808a..69a8b52354 100644 > +--- a/tests/validation/NEON/ActivationLayer.cpp > ++++ b/tests/validation/NEON/ActivationLayer.cpp > +@@ -73,11 +73,11 @@ RelativeTolerance<float> relative_tolerance(DataType data_type, ActivationLayerI > + switch(data_type) > + { > + case DataType::F16: > +-#if defined(ENABLE_SVE) > ++#if defined(ARM_COMPUTE_ENABLE_SVE) > + return RelativeTolerance<float>(0.25f); > +-#else // !defined(ENABLE_SVE) > ++#else // !defined(ARM_COMPUTE_ENABLE_SVE) > + return RelativeTolerance<float>(0.1f); > +-#endif // defined(ENABLE_SVE) > ++#endif // defined(ARM_COMPUTE_ENABLE_SVE) > + default: > + return RelativeTolerance<float>(0.05f); > + } > +@@ -85,11 +85,11 @@ RelativeTolerance<float> relative_tolerance(DataType data_type, ActivationLayerI > + switch(data_type) > + { > + case DataType::F16: > +-#if defined(ENABLE_SVE) > ++#if defined(ARM_COMPUTE_ENABLE_SVE) > + return RelativeTolerance<float>(0.9f); > +-#else // !defined(ENABLE_SVE) > ++#else // !defined(ARM_COMPUTE_ENABLE_SVE) > + return RelativeTolerance<float>(0.01f); > +-#endif // defined(ENABLE_SVE) > ++#endif // defined(ARM_COMPUTE_ENABLE_SVE) > + default: > + return RelativeTolerance<float>(0.00001f); > + } > +@@ -117,11 +117,11 @@ AbsoluteTolerance<float> absolute_tolerance(DataType data_type, ActivationLayerI > + switch(data_type) > + { > + case DataType::F16: > +-#if defined(ENABLE_SVE) > ++#if defined(ARM_COMPUTE_ENABLE_SVE) > + return AbsoluteTolerance<float>(0.25f); > +-#else // !defined(ENABLE_SVE) > ++#else // !defined(ARM_COMPUTE_ENABLE_SVE) > + return AbsoluteTolerance<float>(0.01f); > +-#endif // defined(ENABLE_SVE) > ++#endif // defined(ARM_COMPUTE_ENABLE_SVE) > + default: > + return AbsoluteTolerance<float>(0.00001f); > + } > +@@ -129,11 +129,11 @@ AbsoluteTolerance<float> absolute_tolerance(DataType data_type, ActivationLayerI > + switch(data_type) > + { > + case DataType::F16: > +-#if defined(ENABLE_SVE) > ++#if defined(ARM_COMPUTE_ENABLE_SVE) > + return AbsoluteTolerance<float>(0.9f); > +-#else // !defined(ENABLE_SVE) > ++#else // !defined(ARM_COMPUTE_ENABLE_SVE) > + return AbsoluteTolerance<float>(0.01f); > +-#endif // defined(ENABLE_SVE) > ++#endif // defined(ARM_COMPUTE_ENABLE_SVE) > + default: > + return AbsoluteTolerance<float>(0.00001f); > + } > +diff --git a/tests/validation/NEON/ArithmeticAddition.cpp b/tests/validation/NEON/ArithmeticAddition.cpp > +index c0033daab0..bae8535ff3 100644 > +--- a/tests/validation/NEON/ArithmeticAddition.cpp > ++++ b/tests/validation/NEON/ArithmeticAddition.cpp > +@@ -48,11 +48,11 @@ namespace validation > + using framework::dataset::make; > + namespace > + { > +-#if !defined(__aarch64__) || defined(ENABLE_SVE) > ++#if !defined(__aarch64__) || defined(ARM_COMPUTE_ENABLE_SVE) > + constexpr AbsoluteTolerance<float> tolerance_quant(1); /**< Tolerance value for comparing reference's output against implementation's output for quantized data types */ > +-#else // !defined(__aarch64__) || defined(ENABLE_SVE) > ++#else // !defined(__aarch64__) || defined(ARM_COMPUTE_ENABLE_SVE) > + constexpr AbsoluteTolerance<float> tolerance_quant(1); > +-#endif // !defined(__aarch64__) || defined(ENABLE_SVE) > ++#endif // !defined(__aarch64__) || defined(ARM_COMPUTE_ENABLE_SVE) > + const auto InPlaceDataSet = framework::dataset::make("InPlace", { false, true }); > + const auto OutOfPlaceDataSet = framework::dataset::make("InPlace", { false }); > + } // namespace > diff --git a/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0004-Add-source-files-at-library-definition-time.patch b/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0004-Add-source-files-at-library-definition-time.patch > new file mode 100644 > index 00000000..971658b4 > --- /dev/null > +++ b/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0004-Add-source-files-at-library-definition-time.patch > @@ -0,0 +1,167 @@ > +From a3c7d6aefc289dcce6656fc6d9f9c8c9b1af8f0b Mon Sep 17 00:00:00 2001 > +From: Andrew Davis <afd@ti.com> > +Date: Thu, 5 Dec 2024 09:38:26 -0600 > +Subject: [PATCH] Add source files at library definition time > + > +This allows for easier conditional disabling of these libraries. > + > +Upstream-Status: Pending > + > +Signed-off-by: Andrew Davis <afd@ti.com> > +Change-Id: I442aaa03060f2cb7db4ed0c1d93e64dbc223fdc6 > +--- > + CMakeLists.txt | 20 ++++++++++---------- > + scripts/generate_build_files.py | 16 ++++------------ > + src/CMakeLists.txt | 16 ++++------------ > + 3 files changed, 18 insertions(+), 34 deletions(-) > + > +diff --git a/CMakeLists.txt b/CMakeLists.txt > +index e8bdf2af1a..4073e06b17 100644 > +--- a/CMakeLists.txt > ++++ b/CMakeLists.txt > +@@ -46,6 +46,12 @@ set(CMAKE_CXX_EXTENSIONS OFF) > + list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake") > + include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/Options.cmake) > + include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/Version.cmake) > ++include(${CMAKE_CURRENT_SOURCE_DIR}/src/CMakeLists.txt) > ++ > ++list(TRANSFORM ARM_COMPUTE_GRAPH_SOURCES PREPEND "src/") > ++list(TRANSFORM ARM_COMPUTE_SVE_SOURCES PREPEND "src/") > ++list(TRANSFORM ARM_COMPUTE_SVE2_SOURCES PREPEND "src/") > ++list(TRANSFORM ARM_COMPUTE_SOURCES PREPEND "src/") > + > + # Require at least gcc/g++ 11) CMAKE_CXX_COMPILER_VERSION OR > + if(CMAKE_C_COMPILER_VERSION VERSION_LESS 10.2 OR CMAKE_CXX_COMPILER_VERSION > +@@ -139,8 +145,7 @@ endif() > + > + # --------------------------------------------------------------------- > + # SVE Object Library > +- > +-add_library(arm_compute_sve OBJECT "") > ++add_library(arm_compute_sve OBJECT ${ARM_COMPUTE_SVE_SOURCES}) > + target_compile_options(arm_compute_sve > + PRIVATE "-march=armv8.2-a+sve+fp16+dotprod" > + PRIVATE "-fPIC") > +@@ -162,8 +167,7 @@ target_include_directories( > + > + # --------------------------------------------------------------------- > + # SVE2 Object Library > +- > +-add_library(arm_compute_sve2 OBJECT "") > ++add_library(arm_compute_sve2 OBJECT ${ARM_COMPUTE_SVE2_SOURCES}) > + target_compile_options(arm_compute_sve2 > + PRIVATE "-march=armv8.6-a+sve2+fp16+dotprod" > + PRIVATE "-fPIC") > +@@ -187,7 +191,7 @@ target_include_directories( > + # --------------------------------------------------------------------- > + # Core Library > + > +-add_library(arm_compute "") > ++add_library(arm_compute ${ARM_COMPUTE_SOURCES}) > + target_compile_options(arm_compute PRIVATE "-march=${ARM_COMPUTE_ARCH}") > + target_compile_definitions(arm_compute PRIVATE ARM_COMPUTE_ENABLE_BF16) > + target_compile_definitions(arm_compute PRIVATE ENABLE_SVE) > +@@ -216,7 +220,7 @@ target_link_libraries( > + # --------------------------------------------------------------------- > + # Graph Library > + > +-add_library(arm_compute_graph "") > ++add_library(arm_compute_graph ${ARM_COMPUTE_GRAPH_SOURCES}) > + target_compile_options(arm_compute_graph PRIVATE "-march=${ARM_COMPUTE_ARCH}") > + target_compile_definitions(arm_compute_graph PRIVATE ENABLE_SVE) > + target_compile_definitions(arm_compute_graph PRIVATE ARM_COMPUTE_ENABLE_SVE) > +@@ -238,10 +242,6 @@ target_compile_options(arm_compute_graph PUBLIC ${COMMON_CXX_FLAGS}) > + > + add_library(ArmCompute::Graph ALIAS arm_compute_graph) > + > +-# --------------------------------------------------------------------- > +-# Library Target Sources > +-add_subdirectory(src) > +- > + if(ARM_COMPUTE_BUILD_TESTING) > + # --------------------------------------------------------------------- > + # Validation Framework Library > +diff --git a/scripts/generate_build_files.py b/scripts/generate_build_files.py > +index 52a8cc14da..4c4a14623f 100644 > +--- a/scripts/generate_build_files.py > ++++ b/scripts/generate_build_files.py > +@@ -167,27 +167,19 @@ def build_from_template_cmake(srcs_graph, srcs_sve, srcs_sve2, srcs_core): > + > + template = f"""{get_template_header()} > + > +-target_sources( > +- arm_compute_graph > +- PRIVATE > ++set(ARM_COMPUTE_GRAPH_SOURCES > + {line_separator.join(srcs_graph)} > + ) > + > +-target_sources( > +- arm_compute_sve > +- PRIVATE > ++set(ARM_COMPUTE_SVE_SOURCES > + {line_separator.join(srcs_sve)} > + ) > + > +-target_sources( > +- arm_compute_sve2 > +- PRIVATE > ++set(ARM_COMPUTE_SVE2_SOURCES > + {line_separator.join(srcs_sve2)} > + ) > + > +-target_sources( > +- arm_compute > +- PRIVATE > ++set(ARM_COMPUTE_SOURCES > + {line_separator.join(srcs_core)} > + ) > + """ > +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt > +index f1b275532a..73871563e1 100644 > +--- a/src/CMakeLists.txt > ++++ b/src/CMakeLists.txt > +@@ -20,9 +20,7 @@ > + # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE > + # SOFTWARE. > + > +-target_sources( > +- arm_compute_graph > +- PRIVATE > ++set(ARM_COMPUTE_GRAPH_SOURCES > + graph/DataLayerVisitor.cpp > + graph/Graph.cpp > + graph/GraphBuilder.cpp > +@@ -100,9 +98,7 @@ target_sources( > + graph/printers/DotGraphPrinter.cpp > + ) > + > +-target_sources( > +- arm_compute_sve > +- PRIVATE > ++set(ARM_COMPUTE_SVE_SOURCES > + core/NEON/kernels/arm_conv/depthwise/interleaves/sve_s8q_3x3_dot.cpp > + core/NEON/kernels/arm_conv/depthwise/interleaves/sve_u8q_3x3_dot.cpp > + core/NEON/kernels/arm_conv/depthwise/kernels/sme2_fp16_nhwc_3x3_s1_output2x2_mla_depthfirst/generic_direct.cpp > +@@ -331,9 +327,7 @@ target_sources( > + cpu/kernels/softmax/generic/sve/impl_bf16.cpp > + ) > + > +-target_sources( > +- arm_compute_sve2 > +- PRIVATE > ++set(ARM_COMPUTE_SVE2_SOURCES > + cpu/kernels/activation/generic/sve2/lut.cpp > + cpu/kernels/activation/generic/sve2/qasymm8.cpp > + cpu/kernels/activation/generic/sve2/qasymm8_signed.cpp > +@@ -356,9 +350,7 @@ target_sources( > + cpu/kernels/softmax/generic/sve2/impl.cpp > + ) > + > +-target_sources( > +- arm_compute > +- PRIVATE > ++set(ARM_COMPUTE_SOURCES > + c/AclContext.cpp > + c/AclOperator.cpp > + c/AclQueue.cpp > diff --git a/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0005-Add-CMake-options-for-SVE-SVE2-and-BF16-support.patch b/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0005-Add-CMake-options-for-SVE-SVE2-and-BF16-support.patch > new file mode 100644 > index 00000000..29ca02f5 > --- /dev/null > +++ b/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0005-Add-CMake-options-for-SVE-SVE2-and-BF16-support.patch > @@ -0,0 +1,112 @@ > +From cdb765df59d8ce5f388ac2a820b5da76eb8d610c Mon Sep 17 00:00:00 2001 > +From: Andrew Davis <afd@ti.com> > +Date: Thu, 5 Dec 2024 09:47:25 -0600 > +Subject: [PATCH] Add CMake options for SVE, SVE2, and BF16 support > + > +These should be optional, add options for these. Remove the hard-coded > +definitions of these for the libraries. This also makes it so validation > +options are not needed, if SVE is enabled it will be validated. > + > +Upstream-Status: Pending > + > +Signed-off-by: Andrew Davis <afd@ti.com> > +Change-Id: I03182ac6ece843e813c027ef6a573cbba254dee9 > +--- > + CMakeLists.txt | 19 ------------------- > + cmake/Options.cmake | 16 +++++++++++++--- > + 2 files changed, 13 insertions(+), 22 deletions(-) > + > +diff --git a/CMakeLists.txt b/CMakeLists.txt > +index 4073e06b17..4d95fb1bfd 100644 > +--- a/CMakeLists.txt > ++++ b/CMakeLists.txt > +@@ -149,9 +149,6 @@ add_library(arm_compute_sve OBJECT ${ARM_COMPUTE_SVE_SOURCES}) > + target_compile_options(arm_compute_sve > + PRIVATE "-march=armv8.2-a+sve+fp16+dotprod" > + PRIVATE "-fPIC") > +-target_compile_definitions(arm_compute_sve PRIVATE ARM_COMPUTE_ENABLE_BF16) > +-target_compile_definitions(arm_compute_sve PRIVATE ENABLE_SVE) > +-target_compile_definitions(arm_compute_sve PRIVATE ARM_COMPUTE_ENABLE_SVE) > + target_include_directories( > + arm_compute_sve > + PUBLIC $<INSTALL_INTERFACE:include> > +@@ -171,10 +168,6 @@ add_library(arm_compute_sve2 OBJECT ${ARM_COMPUTE_SVE2_SOURCES}) > + target_compile_options(arm_compute_sve2 > + PRIVATE "-march=armv8.6-a+sve2+fp16+dotprod" > + PRIVATE "-fPIC") > +-target_compile_definitions(arm_compute_sve2 PRIVATE ARM_COMPUTE_ENABLE_SVE2) > +-target_compile_definitions(arm_compute_sve2 PRIVATE ARM_COMPUTE_ENABLE_BF16) > +-target_compile_definitions(arm_compute_sve2 PRIVATE ENABLE_SVE) > +-target_compile_definitions(arm_compute_sve2 PRIVATE ARM_COMPUTE_ENABLE_SVE) > + target_include_directories( > + arm_compute_sve2 > + PUBLIC $<INSTALL_INTERFACE:include> > +@@ -193,9 +186,6 @@ target_include_directories( > + > + add_library(arm_compute ${ARM_COMPUTE_SOURCES}) > + target_compile_options(arm_compute PRIVATE "-march=${ARM_COMPUTE_ARCH}") > +-target_compile_definitions(arm_compute PRIVATE ARM_COMPUTE_ENABLE_BF16) > +-target_compile_definitions(arm_compute PRIVATE ENABLE_SVE) > +-target_compile_definitions(arm_compute PRIVATE ARM_COMPUTE_ENABLE_SVE) > + target_include_directories( > + arm_compute > + PUBLIC $<INSTALL_INTERFACE:include> > +@@ -222,8 +212,6 @@ target_link_libraries( > + > + add_library(arm_compute_graph ${ARM_COMPUTE_GRAPH_SOURCES}) > + target_compile_options(arm_compute_graph PRIVATE "-march=${ARM_COMPUTE_ARCH}") > +-target_compile_definitions(arm_compute_graph PRIVATE ENABLE_SVE) > +-target_compile_definitions(arm_compute_graph PRIVATE ARM_COMPUTE_ENABLE_SVE) > + # add_subdirectory(src/graph) > + > + target_include_directories( > +@@ -268,13 +256,6 @@ if(ARM_COMPUTE_BUILD_TESTING) > + > + add_executable(arm_compute_validation "") > + target_compile_options(arm_compute_validation PRIVATE "-march=${ARM_COMPUTE_ARCH}") > +- if(ARM_COMPUTE_ENABLE_BF16_VALIDATION) > +- target_compile_definitions(arm_compute_validation PRIVATE ARM_COMPUTE_ENABLE_BF16) > +- endif() > +- if(ARM_COMPUTE_ENABLE_SVE_VALIDATION) > +- target_compile_definitions(arm_compute_validation PRIVATE ENABLE_SVE) > +- target_compile_definitions(arm_compute_validation PRIVATE ARM_COMPUTE_ENABLE_SVE) > +- endif() > + add_subdirectory(tests/validation) > + target_compile_options(arm_compute_validation PUBLIC ${COMMON_CXX_FLAGS}) > + set_target_properties( > +diff --git a/cmake/Options.cmake b/cmake/Options.cmake > +index 121d527718..5c23fcb490 100644 > +--- a/cmake/Options.cmake > ++++ b/cmake/Options.cmake > +@@ -48,11 +48,12 @@ set(ARM_COMPUTE_ARCH armv8-a CACHE STRING "Architecture to use") > + # --------------------------------------------------------------------- > + # Backends > + > +-option(ARM_COMPUTE_ENABLE_BF16_VALIDATION "" ON) > +-option(ARM_COMPUTE_ENABLE_SVE_VALIDATION "" OFF) > +- > + option(ENABLE_NEON "Enable Arm® Neon™ support" ON) > ++option(ENABLE_SVE "Enable Arm® SVE support" ON) > ++option(ENABLE_SVE2 "Enable Arm® SVE2 support" ON) > ++ > + option(ARM_COMPUTE_CPU_ENABLED "" ON) > ++option(ARM_COMPUTE_ENABLE_BF16 "" ON) > + option(ARM_COMPUTE_ENABLE_I8MM "" ON) > + option(ENABLE_FP32_KERNELS "" ON) > + option(ENABLE_QASYMM8_KERNELS "" ON) > +@@ -74,6 +75,15 @@ endif() > + if(ARM_COMPUTE_CPU_ENABLED) > + add_definitions(-DARM_COMPUTE_CPU_ENABLED) > + endif() > ++if(ENABLE_SVE) > ++ add_definitions(-DARM_COMPUTE_ENABLE_SVE) > ++endif() > ++if(ENABLE_SVE2) > ++ add_definitions(-DARM_COMPUTE_ENABLE_SVE2) > ++endif() > ++if(ARM_COMPUTE_ENABLE_BF16) > ++ add_definitions(-DARM_COMPUTE_ENABLE_BF16) > ++endif() > + if(ARM_COMPUTE_ENABLE_FP16) > + add_definitions(-DARM_COMPUTE_ENABLE_FP16) > + endif() > diff --git a/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0006-Allow-SVE-and-SVE2-support-to-be-disabled-in-CMake.patch b/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0006-Allow-SVE-and-SVE2-support-to-be-disabled-in-CMake.patch > new file mode 100644 > index 00000000..06370adb > --- /dev/null > +++ b/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0006-Allow-SVE-and-SVE2-support-to-be-disabled-in-CMake.patch > @@ -0,0 +1,91 @@ > +From ab5bf5b8f86337a31bfd48277650f583a040e658 Mon Sep 17 00:00:00 2001 > +From: Andrew Davis <afd@ti.com> > +Date: Thu, 5 Dec 2024 09:59:48 -0600 > +Subject: [PATCH] Allow SVE and SVE2 support to be disabled in CMake > + > +Currently these are hard-coded as enabled. The SVE and SVE2 libraries > +are built unconditionally. These should only be built when SVE or > +SVE2 is available. > + > +Upstream-Status: Pending > + > +Signed-off-by: Andrew Davis <afd@ti.com> > +Change-Id: I176259f872a84f736028622694d65d4c5b57e379 > +--- > + CMakeLists.txt | 25 ++++++++++++++++++------- > + 1 file changed, 18 insertions(+), 7 deletions(-) > + > +diff --git a/CMakeLists.txt b/CMakeLists.txt > +index 4d95fb1bfd..d233d6bc67 100644 > +--- a/CMakeLists.txt > ++++ b/CMakeLists.txt > +@@ -145,6 +145,7 @@ endif() > + > + # --------------------------------------------------------------------- > + # SVE Object Library > ++if(ENABLE_SVE) > + add_library(arm_compute_sve OBJECT ${ARM_COMPUTE_SVE_SOURCES}) > + target_compile_options(arm_compute_sve > + PRIVATE "-march=armv8.2-a+sve+fp16+dotprod" > +@@ -161,9 +162,11 @@ target_include_directories( > + src/core/cpu/kernels/assembly > + src/cpu/kernels/assembly > + src/core/NEON/kernels/arm_gemm/merges) > ++endif() # ENABLE_SVE > + > + # --------------------------------------------------------------------- > + # SVE2 Object Library > ++if(ENABLE_SVE2) > + add_library(arm_compute_sve2 OBJECT ${ARM_COMPUTE_SVE2_SOURCES}) > + target_compile_options(arm_compute_sve2 > + PRIVATE "-march=armv8.6-a+sve2+fp16+dotprod" > +@@ -180,6 +183,7 @@ target_include_directories( > + src/core/cpu/kernels/assembly > + src/cpu/kernels/assembly > + src/core/NEON/kernels/arm_gemm/merges) > ++endif() # ENABLE_SVE2 > + > + # --------------------------------------------------------------------- > + # Core Library > +@@ -203,9 +207,12 @@ target_compile_options(arm_compute PUBLIC ${COMMON_CXX_FLAGS}) > + add_library(ArmCompute::Core ALIAS arm_compute) > + > + # arm_compute_sve and arm_compute_sve2 obj files will not be public in the arm_compute.so > +-target_link_libraries( > +- arm_compute PRIVATE $<TARGET_OBJECTS:arm_compute_sve> > +- PRIVATE $<TARGET_OBJECTS:arm_compute_sve2>) > ++if(ENABLE_SVE) > ++ target_link_libraries(arm_compute PRIVATE $<TARGET_OBJECTS:arm_compute_sve>) > ++endif() > ++if(ENABLE_SVE2) > ++ target_link_libraries(arm_compute PRIVATE $<TARGET_OBJECTS:arm_compute_sve2>) > ++endif() > + > + # --------------------------------------------------------------------- > + # Graph Library > +@@ -263,8 +270,10 @@ if(ARM_COMPUTE_BUILD_TESTING) > + "${CMAKE_BINARY_DIR}/validation") > + target_link_libraries( > + arm_compute_validation > +- PUBLIC arm_compute arm_compute_graph arm_compute_validation_framework > +- arm_compute_sve) > ++ PUBLIC arm_compute arm_compute_graph arm_compute_validation_framework) > ++ if(ENABLE_SVE) > ++ target_link_libraries(arm_compute_validation PUBLIC arm_compute_sve) > ++ endif() > + target_link_directories(arm_compute_validation PUBLIC tests) > + > + # --------------------------------------------------------------------- > +@@ -299,8 +308,10 @@ if(ARM_COMPUTE_BUILD_EXAMPLES) > + set_target_properties( > + ${test_name} PROPERTIES RUNTIME_OUTPUT_DIRECTORY > + "${CMAKE_BINARY_DIR}/examples") > +- target_link_libraries(${test_name} PUBLIC arm_compute > +- arm_compute_graph arm_compute_sve) > ++ target_link_libraries(${test_name} PUBLIC arm_compute arm_compute_graph) > ++ if(ENABLE_SVE) > ++ target_link_libraries(${test_name} PUBLIC arm_compute_sve) > ++ endif() > + endforeach() > + > + # NEON Examples > diff --git a/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0007-Allow-ARMv7-builds-using-CMake.patch b/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0007-Allow-ARMv7-builds-using-CMake.patch > new file mode 100644 > index 00000000..07dd4bee > --- /dev/null > +++ b/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0007-Allow-ARMv7-builds-using-CMake.patch > @@ -0,0 +1,86 @@ > +From 416cffe2a75a4ec66a75e00bc00297f2f0187e0f Mon Sep 17 00:00:00 2001 > +From: Andrew Davis <afd@ti.com> > +Date: Thu, 5 Dec 2024 10:05:03 -0600 > +Subject: [PATCH] Allow ARMv7 builds using CMake > + > +Upstream-Status: Pending > + > +Signed-off-by: Andrew Davis <afd@ti.com> > +Change-Id: Ib6bae5820569a8eadd53afdfe31e611a3089140e > +--- > + CMakeLists.txt | 25 +++++++++++++++++-- > + .../fixtures/CpuGemmAssemblyDispatchFixture.h | 3 +++ > + 2 files changed, 26 insertions(+), 2 deletions(-) > + > +diff --git a/CMakeLists.txt b/CMakeLists.txt > +index d233d6bc67..4fc27553f3 100644 > +--- a/CMakeLists.txt > ++++ b/CMakeLists.txt > +@@ -148,7 +148,7 @@ endif() > + if(ENABLE_SVE) > + add_library(arm_compute_sve OBJECT ${ARM_COMPUTE_SVE_SOURCES}) > + target_compile_options(arm_compute_sve > +- PRIVATE "-march=armv8.2-a+sve+fp16+dotprod" > ++ PRIVATE "-march=${ARM_COMPUTE_ARCH}" > + PRIVATE "-fPIC") > + target_include_directories( > + arm_compute_sve > +@@ -169,7 +169,7 @@ endif() # ENABLE_SVE > + if(ENABLE_SVE2) > + add_library(arm_compute_sve2 OBJECT ${ARM_COMPUTE_SVE2_SOURCES}) > + target_compile_options(arm_compute_sve2 > +- PRIVATE "-march=armv8.6-a+sve2+fp16+dotprod" > ++ PRIVATE "-march=${ARM_COMPUTE_ARCH}" > + PRIVATE "-fPIC") > + target_include_directories( > + arm_compute_sve2 > +@@ -204,6 +204,15 @@ target_include_directories( > + src/core/NEON/kernels/convolution/winograd) > + target_compile_options(arm_compute PUBLIC ${COMMON_CXX_FLAGS}) > + > ++if(ARM_COMPUTE_ARCH MATCHES "armv7") > ++ target_sources( > ++ arm_compute > ++ PRIVATE > ++ src/core/NEON/kernels/arm_gemm/kernels/a32_sgemm_8x6/a53.cpp > ++ src/core/NEON/kernels/arm_gemm/kernels/a32_sgemm_8x6/a55r1.cpp > ++ src/core/NEON/kernels/arm_gemm/kernels/a32_sgemm_8x6/generic.cpp) > ++endif() > ++ > + add_library(ArmCompute::Core ALIAS arm_compute) > + > + # arm_compute_sve and arm_compute_sve2 obj files will not be public in the arm_compute.so > +@@ -264,6 +273,18 @@ if(ARM_COMPUTE_BUILD_TESTING) > + add_executable(arm_compute_validation "") > + target_compile_options(arm_compute_validation PRIVATE "-march=${ARM_COMPUTE_ARCH}") > + add_subdirectory(tests/validation) > ++ target_include_directories( > ++ arm_compute_validation > ++ PUBLIC $<INSTALL_INTERFACE:include> > ++ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include> > ++ ${CMAKE_CURRENT_SOURCE_DIR} > ++ PRIVATE src > ++ src/cpu/kernels/assembly > ++ src/core/NEON/kernels/arm_gemm > ++ src/core/NEON/kernels/assembly > ++ src/core/NEON/kernels/convolution/common > ++ src/core/NEON/kernels/arm_conv/depthwise > ++ src/core/NEON/kernels/convolution/winograd) > + target_compile_options(arm_compute_validation PUBLIC ${COMMON_CXX_FLAGS}) > + set_target_properties( > + arm_compute_validation PROPERTIES RUNTIME_OUTPUT_DIRECTORY > +diff --git a/tests/validation/fixtures/CpuGemmAssemblyDispatchFixture.h b/tests/validation/fixtures/CpuGemmAssemblyDispatchFixture.h > +index 5d74e210d5..0b45cdf356 100644 > +--- a/tests/validation/fixtures/CpuGemmAssemblyDispatchFixture.h > ++++ b/tests/validation/fixtures/CpuGemmAssemblyDispatchFixture.h > +@@ -25,7 +25,10 @@ > + #define ACL_TESTS_VALIDATION_FIXTURES_CPUGEMMASSEMBLYDISPATCHFIXTURE_H > + > + #include "arm_compute/core/Helpers.h" > ++ > ++#ifdef ARM_COMPUTE_ENABLE_FIXED_FORMAT_KERNELS > + #include "arm_compute/runtime/NEON/functions/NEReorderLayer.h" > ++#endif //ARM_COMPUTE_ENABLE_FIXED_FORMAT_KERNELS > + #include "arm_compute/runtime/NEON/functions/NETranspose.h" > + > + #include "src/core/NEON/kernels/arm_gemm/utils.hpp" > diff --git a/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0008-Fix-undefined-symbol-error-when-building-TensorInfo.patch b/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0008-Fix-undefined-symbol-error-when-building-TensorInfo.patch > new file mode 100644 > index 00000000..9883a44d > --- /dev/null > +++ b/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0008-Fix-undefined-symbol-error-when-building-TensorInfo.patch > @@ -0,0 +1,46 @@ > +From 58698788adaeb2f74cf9fcddf06f3e9a2e78b984 Mon Sep 17 00:00:00 2001 > +From: Andrew Davis <afd@ti.com> > +Date: Mon, 16 Dec 2024 09:42:22 -0600 > +Subject: [PATCH] Fix undefined symbol error when building TensorInfo > + > +Upstream-Status: Pending > + > +Signed-off-by: Andrew Davis <afd@ti.com> > +Change-Id: I657d1b7faaad94147c685c4826916d3c21da82e1 > +--- > + arm_compute/core/TensorInfo.h | 5 +---- > + src/core/TensorInfo.cpp | 5 +++++ > + 2 files changed, 6 insertions(+), 4 deletions(-) > + > +diff --git a/arm_compute/core/TensorInfo.h b/arm_compute/core/TensorInfo.h > +index e4c9cbe879..2bfe83c4b1 100644 > +--- a/arm_compute/core/TensorInfo.h > ++++ b/arm_compute/core/TensorInfo.h > +@@ -242,10 +242,7 @@ public: > + { > + return _num_channels; > + } > +- const TensorShape &tensor_shape() const override > +- { > +- return _tensor_shape; > +- } > ++ const TensorShape &tensor_shape() const override; > + const TensorDimsState &tensor_dims_state() const override > + { > + return _dims_state; > +diff --git a/src/core/TensorInfo.cpp b/src/core/TensorInfo.cpp > +index 31bddbde40..884203fd7c 100644 > +--- a/src/core/TensorInfo.cpp > ++++ b/src/core/TensorInfo.cpp > +@@ -395,6 +395,11 @@ ITensorInfo &TensorInfo::set_tensor_dims_state(const TensorDimsState &state) > + return *this; > + } > + > ++const TensorShape &TensorInfo::tensor_shape() const > ++{ > ++ return _tensor_shape; > ++} > ++ > + ITensorInfo &TensorInfo::set_quantization_info(const QuantizationInfo &quantization_info) > + { > + _quantization_info = quantization_info; > diff --git a/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library_24.12.bb b/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library_24.12.bb > new file mode 100644 > index 00000000..d069da4c > --- /dev/null > +++ b/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library_24.12.bb > @@ -0,0 +1,79 @@ > +SUMMARY = "The ARM Computer Vision and Machine Learning library" > +DESCRIPTION = "The ARM Computer Vision and Machine Learning library is a set of functions optimised for both ARM CPUs and GPUs." > +LICENSE = "MIT" > +LIC_FILES_CHKSUM = "file://LICENSES/MIT.txt;md5=35f8944fae972976691f3483b0ac9dba" > + > +SRC_URI = " \ > + git://github.com/ARM-software/ComputeLibrary.git;branch=main;protocol=https \ > + file://0001-fix-Fix-indention-in-cmake-generator-script.patch \ > + file://0002-Use-ARM_COMPUTE_ENABLE_NEON-in-code-for-checking-NEO.patch \ > + file://0003-Use-ARM_COMPUTE_ENABLE_SVE-in-code-for-checking-SVE-.patch \ > + file://0004-Add-source-files-at-library-definition-time.patch \ > + file://0005-Add-CMake-options-for-SVE-SVE2-and-BF16-support.patch \ > + file://0006-Allow-SVE-and-SVE2-support-to-be-disabled-in-CMake.patch \ > + file://0007-Allow-ARMv7-builds-using-CMake.patch \ > + file://0008-Fix-undefined-symbol-error-when-building-TensorInfo.patch \ > +" > +SRCREV = "32bcced2af7feea6969dd1d22e58d0718dc488e3" > + > +S = "${WORKDIR}/git" > + > +COMPATIBLE_HOST = "(arm|aarch64).*-linux" > + > +inherit cmake > + > +PACKAGECONFIG ??= "examples tests cppthreads openmp" > + > +PACKAGECONFIG[Werror] = "-DARM_COMPUTE_WERROR=ON,-DARM_COMPUTE_WERROR=OFF" > +PACKAGECONFIG[examples] = "-DARM_COMPUTE_BUILD_EXAMPLES=ON,-DARM_COMPUTE_BUILD_EXAMPLES=OFF" > +PACKAGECONFIG[tests] = "-DARM_COMPUTE_BUILD_TESTING=ON,-DARM_COMPUTE_BUILD_TESTING=OFF" > +PACKAGECONFIG[cppthreads] = "-DARM_COMPUTE_CPPTHREADS=ON,-DARM_COMPUTE_CPPTHREADS=OFF" > +PACKAGECONFIG[openmp] = "-DARM_COMPUTE_OPENMP=ON,-DARM_COMPUTE_OPENMP=OFF" > + > +EXTRA_OECMAKE:append:aarch64 = " \ > + -DARM_COMPUTE_ARCH=armv8-a \ > + -DENABLE_NEON=ON \ > + -DENABLE_SVE=OFF \ > + -DENABLE_SVE2=OFF \ > +" > +EXTRA_OECMAKE:append:arm = " \ > + -DARM_COMPUTE_ARCH=armv7-a \ > + -DENABLE_NEON=ON \ > + -DENABLE_SVE=OFF \ > + -DENABLE_SVE2=OFF \ > + -DARM_COMPUTE_ENABLE_BF16=OFF \ > + -DARM_COMPUTE_ENABLE_FIXED_FORMAT_KERNELS=OFF \ > +" > + > +INHIBIT_PACKAGE_DEBUG_SPLIT = "1" > + > +# package unversioned .so files in PN (they are not dev symlinks) > +FILES_SOLIBSDEV = "" > +FILES:${PN} += "${libdir}/*.so" > + > +# Install headers and examples > +do_install:append() { > + # Install headers > + CP_ARGS="-Prf --preserve=mode,timestamps --no-preserve=ownership" > + install -d ${D}${includedir} > + cp $CP_ARGS ${S}/arm_compute ${D}${includedir} > + cp $CP_ARGS ${S}/support ${D}${includedir}/support > + > + # Install examples > + if ${@bb.utils.contains('PACKAGECONFIG', 'examples', 'true', 'false', d)}; then > + install -d ${D}${bindir}/${PN}-${PV}/examples > + for example in ${B}/examples/*; do > + if [ -d "$example" ]; then > + continue > + fi > + case "$example" in > + (*.o|*.a|*.cmake) continue;; > + esac > + install -m 0555 $example ${D}${bindir}/${PN}-${PV}/examples > + done > + fi > +} > + > +PACKAGES =+ "${PN}-tests ${PN}-examples" > +FILES:${PN}-tests += "${libdir}/tests" > +FILES:${PN}-examples += "${bindir}/*/examples" > diff --git a/meta-arago-test/recipes-core/packagegroups/ti-test.bb b/meta-arago-test/recipes-core/packagegroups/ti-test.bb > index e8458cef..37f75a39 100644 > --- a/meta-arago-test/recipes-core/packagegroups/ti-test.bb > +++ b/meta-arago-test/recipes-core/packagegroups/ti-test.bb > @@ -61,6 +61,7 @@ TI_TEST_EXTRAS = " \ > piglit \ > python3-numpy \ > wayland-utils \ > + arm-compute-library-tests \ > " > > TI_TEST_BASE:append:armv7a = " \ -- Ryan Eatmon reatmon@ti.com ----------------------------------------- Texas Instruments, Inc. - LCPD - MGTS ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [meta-arago][scarthgap/master][PATCH 2/2] meta-arago-extras: Add recipe for arm-compute-library 2025-01-09 18:27 ` Ryan Eatmon @ 2025-01-09 18:44 ` Andrew Davis 2025-01-09 18:45 ` Ryan Eatmon 0 siblings, 1 reply; 10+ messages in thread From: Andrew Davis @ 2025-01-09 18:44 UTC (permalink / raw) To: Ryan Eatmon, Denys Dmytriyenko, meta-arago On 1/9/25 12:27 PM, Ryan Eatmon wrote: > > This fails to build for omapl138-lcdk. Do we need a v2 that address this? > Ah, forgot about that old thing.. ACL is ARMv7+ only, so I'll update COMPATIBLE_HOST to drop armv5 in v2. Thanks, Andrew > > On 12/20/2024 10:49 AM, Andrew Davis wrote: >> The Compute Library is a collection of low-level machine learning >> functions optimized for Arm. This will be used for ARMNN and >> other machine learning applications and frameworks. >> >> Signed-off-by: Andrew Davis <afd@ti.com> >> --- >> ...-indention-in-cmake-generator-script.patch | 130 ++++++++++++ >> ...ENABLE_NEON-in-code-for-checking-NEO.patch | 114 ++++++++++ >> ...ENABLE_SVE-in-code-for-checking-SVE-.patch | 197 ++++++++++++++++++ >> ...rce-files-at-library-definition-time.patch | 167 +++++++++++++++ >> ...ptions-for-SVE-SVE2-and-BF16-support.patch | 112 ++++++++++ >> ...SVE2-support-to-be-disabled-in-CMake.patch | 91 ++++++++ >> .../0007-Allow-ARMv7-builds-using-CMake.patch | 86 ++++++++ >> ...ymbol-error-when-building-TensorInfo.patch | 46 ++++ >> .../arm-compute-library_24.12.bb | 79 +++++++ >> .../recipes-core/packagegroups/ti-test.bb | 1 + >> 10 files changed, 1023 insertions(+) >> create mode 100644 meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0001-fix-Fix-indention-in-cmake-generator-script.patch >> create mode 100644 meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0002-Use-ARM_COMPUTE_ENABLE_NEON-in-code-for-checking-NEO.patch >> create mode 100644 meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0003-Use-ARM_COMPUTE_ENABLE_SVE-in-code-for-checking-SVE-.patch >> create mode 100644 meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0004-Add-source-files-at-library-definition-time.patch >> create mode 100644 meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0005-Add-CMake-options-for-SVE-SVE2-and-BF16-support.patch >> create mode 100644 meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0006-Allow-SVE-and-SVE2-support-to-be-disabled-in-CMake.patch >> create mode 100644 meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0007-Allow-ARMv7-builds-using-CMake.patch >> create mode 100644 meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0008-Fix-undefined-symbol-error-when-building-TensorInfo.patch >> create mode 100644 meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library_24.12.bb >> >> diff --git a/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0001-fix-Fix-indention-in-cmake-generator-script.patch b/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0001-fix-Fix-indention-in-cmake-generator-script.patch >> new file mode 100644 >> index 00000000..9e36d254 >> --- /dev/null >> +++ b/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0001-fix-Fix-indention-in-cmake-generator-script.patch >> @@ -0,0 +1,130 @@ >> +From 1e4c3016547b5f75e515d4b9a7202733c47f5a18 Mon Sep 17 00:00:00 2001 >> +From: Andrew Davis <afd@ti.com> >> +Date: Wed, 4 Dec 2024 14:46:17 -0600 >> +Subject: [PATCH] fix: Fix indention in cmake generator script >> + >> +All other items in these lists use tabs, the first couple >> +lines should match. Switch them to tabs then regenerate >> +the CMakeLists.txt file. >> + >> +While here fix the missing ending newline. >> + >> +Upstream-Status: Pending >> + >> +Signed-off-by: Andrew Davis <afd@ti.com> >> +Change-Id: Icab852fc43ae08e7858857881c996d233c835289 >> +--- >> + scripts/generate_build_files.py | 27 ++++++++++++++------------- >> + src/CMakeLists.txt | 26 +++++++++++++------------- >> + 2 files changed, 27 insertions(+), 26 deletions(-) >> + >> +diff --git a/scripts/generate_build_files.py b/scripts/generate_build_files.py >> +index f88cf1af44..52a8cc14da 100644 >> +--- a/scripts/generate_build_files.py >> ++++ b/scripts/generate_build_files.py >> +@@ -168,28 +168,29 @@ def build_from_template_cmake(srcs_graph, srcs_sve, srcs_sve2, srcs_core): >> + template = f"""{get_template_header()} >> + >> + target_sources( >> +- arm_compute_graph >> +- PRIVATE >> +- {line_separator.join(srcs_graph)} >> ++ arm_compute_graph >> ++ PRIVATE >> ++ {line_separator.join(srcs_graph)} >> + ) >> + >> + target_sources( >> +- arm_compute_sve >> +- PRIVATE >> +- {line_separator.join(srcs_sve)} >> ++ arm_compute_sve >> ++ PRIVATE >> ++ {line_separator.join(srcs_sve)} >> + ) >> + >> + target_sources( >> +- arm_compute_sve2 >> +- PRIVATE >> +- {line_separator.join(srcs_sve2)} >> ++ arm_compute_sve2 >> ++ PRIVATE >> ++ {line_separator.join(srcs_sve2)} >> + ) >> + >> + target_sources( >> +- arm_compute >> +- PRIVATE >> +- {line_separator.join(srcs_core)} >> +-)""" >> ++ arm_compute >> ++ PRIVATE >> ++ {line_separator.join(srcs_core)} >> ++) >> ++""" >> + return template >> + >> + >> +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt >> +index ff3bed96df..f1b275532a 100644 >> +--- a/src/CMakeLists.txt >> ++++ b/src/CMakeLists.txt >> +@@ -21,9 +21,9 @@ >> + # SOFTWARE. >> + >> + target_sources( >> +- arm_compute_graph >> +- PRIVATE >> +- graph/DataLayerVisitor.cpp >> ++ arm_compute_graph >> ++ PRIVATE >> ++ graph/DataLayerVisitor.cpp >> + graph/Graph.cpp >> + graph/GraphBuilder.cpp >> + graph/GraphContext.cpp >> +@@ -101,9 +101,9 @@ target_sources( >> + ) >> + >> + target_sources( >> +- arm_compute_sve >> +- PRIVATE >> +- core/NEON/kernels/arm_conv/depthwise/interleaves/sve_s8q_3x3_dot.cpp >> ++ arm_compute_sve >> ++ PRIVATE >> ++ core/NEON/kernels/arm_conv/depthwise/interleaves/sve_s8q_3x3_dot.cpp >> + core/NEON/kernels/arm_conv/depthwise/interleaves/sve_u8q_3x3_dot.cpp >> + core/NEON/kernels/arm_conv/depthwise/kernels/sme2_fp16_nhwc_3x3_s1_output2x2_mla_depthfirst/generic_direct.cpp >> + core/NEON/kernels/arm_conv/depthwise/kernels/sme2_fp16_nhwc_3x3_s1_output2x2_mla_depthfirst/generic_indirect.cpp >> +@@ -332,9 +332,9 @@ target_sources( >> + ) >> + >> + target_sources( >> +- arm_compute_sve2 >> +- PRIVATE >> +- cpu/kernels/activation/generic/sve2/lut.cpp >> ++ arm_compute_sve2 >> ++ PRIVATE >> ++ cpu/kernels/activation/generic/sve2/lut.cpp >> + cpu/kernels/activation/generic/sve2/qasymm8.cpp >> + cpu/kernels/activation/generic/sve2/qasymm8_signed.cpp >> + cpu/kernels/activation/generic/sve2/qsymm16.cpp >> +@@ -357,9 +357,9 @@ target_sources( >> + ) >> + >> + target_sources( >> +- arm_compute >> +- PRIVATE >> +- c/AclContext.cpp >> ++ arm_compute >> ++ PRIVATE >> ++ c/AclContext.cpp >> + c/AclOperator.cpp >> + c/AclQueue.cpp >> + c/AclTensor.cpp >> +@@ -1049,4 +1049,4 @@ target_sources( >> + runtime/experimental/operators/CpuSub.cpp >> + runtime/experimental/operators/CpuTranspose.cpp >> + runtime/experimental/operators/CpuWinogradConv2d.cpp >> +-) >> +\ No newline at end of file >> ++) >> diff --git a/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0002-Use-ARM_COMPUTE_ENABLE_NEON-in-code-for-checking-NEO.patch b/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0002-Use-ARM_COMPUTE_ENABLE_NEON-in-code-for-checking-NEO.patch >> new file mode 100644 >> index 00000000..174327c5 >> --- /dev/null >> +++ b/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0002-Use-ARM_COMPUTE_ENABLE_NEON-in-code-for-checking-NEO.patch >> @@ -0,0 +1,114 @@ >> +From 4350c56d14b7b68acd060d8331f3ade1fb74e167 Mon Sep 17 00:00:00 2001 >> +From: Andrew Davis <afd@ti.com> >> +Date: Thu, 5 Dec 2024 09:21:23 -0600 >> +Subject: [PATCH] Use ARM_COMPUTE_ENABLE_NEON in code for checking NEON support >> + >> +ENABLE_NEON is a flag used by the build systems. The flag is not used >> +in code, instead ARM_COMPUTE_ENABLE_NEON is used everywhere. >> + >> +Drop the ENABLE_NEON compiler definition to prevent any accidental >> +use in code. >> + >> +Upstream-Status: Pending >> + >> +Signed-off-by: Andrew Davis <afd@ti.com> >> +Change-Id: I65f5e7411c99280e2dd8c187140909cefd1c6892 >> +--- >> + Android.bp | 1 - >> + BUILD.bazel | 1 - >> + SConscript | 2 +- >> + SConstruct | 2 +- >> + cmake/Options.cmake | 6 +----- >> + scripts/generate_android_bp.py | 1 - >> + 6 files changed, 3 insertions(+), 10 deletions(-) >> + >> +diff --git a/Android.bp b/Android.bp >> +index 69379472b0..9288bba2d4 100644 >> +--- a/Android.bp >> ++++ b/Android.bp >> +@@ -157,7 +157,6 @@ arm_compute_library_defaults { >> + "-DEMBEDDED_KERNELS", >> + "-DARM_COMPUTE_ASSERTS_ENABLED", >> + "-DARM_COMPUTE_CPP_SCHEDULER", >> +- "-DENABLE_NEON", >> + "-DARM_COMPUTE_ENABLE_NEON", >> + "-Wno-unused-parameter", >> + "-DNO_DOT_IN_TOOLCHAIN", >> +diff --git a/BUILD.bazel b/BUILD.bazel >> +index f553b7bfad..2262a09655 100644 >> +--- a/BUILD.bazel >> ++++ b/BUILD.bazel >> +@@ -170,7 +170,6 @@ config_setting( >> + cc_library( >> + name = "common_defines", >> + defines = [ >> +- "ENABLE_NEON", >> + "ARM_COMPUTE_CPU_ENABLED", >> + "ARM_COMPUTE_ENABLE_NEON", >> + "ARM_COMPUTE_ENABLE_I8MM", >> +diff --git a/SConscript b/SConscript >> +index 12e8fd1025..69a564873f 100644 >> +--- a/SConscript >> ++++ b/SConscript >> +@@ -97,7 +97,7 @@ def build_multiisa_lib_objects(): >> + >> + # note that ARM_COMPUTE_ENABLE_FP16 is enabled in update_data_type_layout_flags() to make >> + # sure the environment is progated to the validation suite >> +- arm_compute_env.Append(CPPDEFINES = ['ENABLE_NEON', 'ARM_COMPUTE_ENABLE_NEON', >> ++ arm_compute_env.Append(CPPDEFINES = ['ARM_COMPUTE_ENABLE_NEON', >> + 'ENABLE_SVE', 'ARM_COMPUTE_ENABLE_SVE','ARM_COMPUTE_ENABLE_BF16', >> + 'ARM_COMPUTE_ENABLE_I8MM', 'ARM_COMPUTE_ENABLE_SVEF32MM']) >> + >> +diff --git a/SConstruct b/SConstruct >> +index 8d7bd291e8..7381300fc8 100644 >> +--- a/SConstruct >> ++++ b/SConstruct >> +@@ -302,7 +302,7 @@ if 'v7a' in env['estate'] and env['estate'] == '64': >> + print("ERROR: armv7a architecture has only 32-bit execution state") >> + Exit(1) >> + >> +-env.Append(CPPDEFINES = ['ENABLE_NEON', 'ARM_COMPUTE_ENABLE_NEON']) >> ++env.Append(CPPDEFINES = ['ARM_COMPUTE_ENABLE_NEON']) >> + >> + if 'sve' in env['arch']: >> + env.Append(CPPDEFINES = ['ENABLE_SVE', 'ARM_COMPUTE_ENABLE_SVE']) >> +diff --git a/cmake/Options.cmake b/cmake/Options.cmake >> +index 5d685be48d..121d527718 100644 >> +--- a/cmake/Options.cmake >> ++++ b/cmake/Options.cmake >> +@@ -53,7 +53,6 @@ option(ARM_COMPUTE_ENABLE_SVE_VALIDATION "" OFF) >> + >> + option(ENABLE_NEON "Enable Arm® Neon™ support" ON) >> + option(ARM_COMPUTE_CPU_ENABLED "" ON) >> +-option(ARM_COMPUTE_ENABLE_NEON "" ON) >> + option(ARM_COMPUTE_ENABLE_I8MM "" ON) >> + option(ENABLE_FP32_KERNELS "" ON) >> + option(ENABLE_QASYMM8_KERNELS "" ON) >> +@@ -70,14 +69,11 @@ option(ENABLE_FP16_KERNELS "" OFF) >> + option(ARM_COMPUTE_ENABLE_FP16 "" OFF) >> + >> + if(ENABLE_NEON) >> +- add_definitions(-DENABLE_NEON) >> ++ add_definitions(-DARM_COMPUTE_ENABLE_NEON) >> + endif() >> + if(ARM_COMPUTE_CPU_ENABLED) >> + add_definitions(-DARM_COMPUTE_CPU_ENABLED) >> + endif() >> +-if(ARM_COMPUTE_ENABLE_NEON) >> +- add_definitions(-DARM_COMPUTE_ENABLE_NEON) >> +-endif() >> + if(ARM_COMPUTE_ENABLE_FP16) >> + add_definitions(-DARM_COMPUTE_ENABLE_FP16) >> + endif() >> +diff --git a/scripts/generate_android_bp.py b/scripts/generate_android_bp.py >> +index d5b268f522..99a04e7071 100755 >> +--- a/scripts/generate_android_bp.py >> ++++ b/scripts/generate_android_bp.py >> +@@ -94,7 +94,6 @@ arm_compute_library_defaults { >> + "-DEMBEDDED_KERNELS", >> + "-DARM_COMPUTE_ASSERTS_ENABLED", >> + "-DARM_COMPUTE_CPP_SCHEDULER", >> +- "-DENABLE_NEON", >> + "-DARM_COMPUTE_ENABLE_NEON", >> + "-Wno-unused-parameter", >> + "-DNO_DOT_IN_TOOLCHAIN", >> diff --git a/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0003-Use-ARM_COMPUTE_ENABLE_SVE-in-code-for-checking-SVE-.patch b/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0003-Use-ARM_COMPUTE_ENABLE_SVE-in-code-for-checking-SVE-.patch >> new file mode 100644 >> index 00000000..b51e4534 >> --- /dev/null >> +++ b/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0003-Use-ARM_COMPUTE_ENABLE_SVE-in-code-for-checking-SVE-.patch >> @@ -0,0 +1,197 @@ >> +From 92a881cebfee5504b188a046a96d39dd9361ddb1 Mon Sep 17 00:00:00 2001 >> +From: Andrew Davis <afd@ti.com> >> +Date: Thu, 5 Dec 2024 08:57:38 -0600 >> +Subject: [PATCH] Use ARM_COMPUTE_ENABLE_SVE in code for checking SVE support >> + >> +ENABLE_SVE is a flag used by the build systems. The flag used in code >> +is ARM_COMPUTE_ENABLE_SVE. There are just a couple spots where the >> +build system flag is used instead causing the need to define both. >> + >> +Switch these last users of ENABLE_SVE over to ARM_COMPUTE_ENABLE_SVE >> +then drop the ENABLE_SVE definition to prevent any more instances >> +being added in the future. >> + >> +Upstream-Status: Pending >> + >> +Signed-off-by: Andrew Davis <afd@ti.com> >> +Change-Id: I00da7580c4520647b62c6989bc7fbdd5efc7935e >> +--- >> + BUILD.bazel | 3 --- >> + SConscript | 2 +- >> + SConstruct | 2 +- >> + .../batchnormalization/impl/SVE/fp16.cpp | 2 +- >> + .../batchnormalization/impl/SVE/fp32.cpp | 2 +- >> + tests/BUILD.bazel | 1 - >> + tests/validation/NEON/ActivationLayer.cpp | 24 +++++++++---------- >> + tests/validation/NEON/ArithmeticAddition.cpp | 6 ++--- >> + 8 files changed, 19 insertions(+), 23 deletions(-) >> + >> +diff --git a/BUILD.bazel b/BUILD.bazel >> +index 2262a09655..c04a52e084 100644 >> +--- a/BUILD.bazel >> ++++ b/BUILD.bazel >> +@@ -297,7 +297,6 @@ cc_library( >> + "//conditions:default": [], >> + }), >> + local_defines = [ >> +- "ENABLE_SVE", >> + "ARM_COMPUTE_ENABLE_SVE", >> + "ARM_COMPUTE_ENABLE_SVE2", >> + "ARM_COMPUTE_ENABLE_BF16", >> +@@ -348,7 +347,6 @@ cc_library( >> + "//conditions:default": [], >> + }), >> + local_defines = [ >> +- "ENABLE_SVE", >> + "ARM_COMPUTE_ENABLE_SVE", >> + "ARM_COMPUTE_ENABLE_BF16", >> + ], >> +@@ -409,7 +407,6 @@ cc_library( >> + "//conditions:default": [], >> + }), >> + local_defines = [ >> +- "ENABLE_SVE", >> + "ARM_COMPUTE_ENABLE_SVE", >> + "ARM_COMPUTE_ENABLE_BF16", >> + ], >> +diff --git a/SConscript b/SConscript >> +index 69a564873f..c2ca549b71 100644 >> +--- a/SConscript >> ++++ b/SConscript >> +@@ -98,7 +98,7 @@ def build_multiisa_lib_objects(): >> + # note that ARM_COMPUTE_ENABLE_FP16 is enabled in update_data_type_layout_flags() to make >> + # sure the environment is progated to the validation suite >> + arm_compute_env.Append(CPPDEFINES = ['ARM_COMPUTE_ENABLE_NEON', >> +- 'ENABLE_SVE', 'ARM_COMPUTE_ENABLE_SVE','ARM_COMPUTE_ENABLE_BF16', >> ++ 'ARM_COMPUTE_ENABLE_SVE','ARM_COMPUTE_ENABLE_BF16', >> + 'ARM_COMPUTE_ENABLE_I8MM', 'ARM_COMPUTE_ENABLE_SVEF32MM']) >> + >> + # Build all the common files for the base architecture >> +diff --git a/SConstruct b/SConstruct >> +index 7381300fc8..17f5615acf 100644 >> +--- a/SConstruct >> ++++ b/SConstruct >> +@@ -305,7 +305,7 @@ if 'v7a' in env['estate'] and env['estate'] == '64': >> + env.Append(CPPDEFINES = ['ARM_COMPUTE_ENABLE_NEON']) >> + >> + if 'sve' in env['arch']: >> +- env.Append(CPPDEFINES = ['ENABLE_SVE', 'ARM_COMPUTE_ENABLE_SVE']) >> ++ env.Append(CPPDEFINES = ['ARM_COMPUTE_ENABLE_SVE']) >> + if 'sve2' in env['arch']: >> + env.Append(CPPDEFINES = ['ARM_COMPUTE_ENABLE_SVE2']) >> + >> +diff --git a/src/core/NEON/kernels/batchnormalization/impl/SVE/fp16.cpp b/src/core/NEON/kernels/batchnormalization/impl/SVE/fp16.cpp >> +index 48caaa3e63..e07593312c 100644 >> +--- a/src/core/NEON/kernels/batchnormalization/impl/SVE/fp16.cpp >> ++++ b/src/core/NEON/kernels/batchnormalization/impl/SVE/fp16.cpp >> +@@ -128,4 +128,4 @@ void fp16_sve_batch_normalization(ITensor *src, >> + } >> + } // namespace cpu >> + } // namespace arm_compute >> +-#endif // ENABLE_SVE >> ++#endif // ARM_COMPUTE_ENABLE_SVE >> +diff --git a/src/core/NEON/kernels/batchnormalization/impl/SVE/fp32.cpp b/src/core/NEON/kernels/batchnormalization/impl/SVE/fp32.cpp >> +index df4fbfe607..0d52d2c3c0 100644 >> +--- a/src/core/NEON/kernels/batchnormalization/impl/SVE/fp32.cpp >> ++++ b/src/core/NEON/kernels/batchnormalization/impl/SVE/fp32.cpp >> +@@ -128,4 +128,4 @@ void fp32_sve_batch_normalization(ITensor *src, >> + } >> + } // namespace cpu >> + } // namespace arm_compute >> +-#endif // ENABLE_SVE >> ++#endif // ARM_COMPUTE_ENABLE_SVE >> +diff --git a/tests/BUILD.bazel b/tests/BUILD.bazel >> +index 7085f1facc..4b4be8b257 100644 >> +--- a/tests/BUILD.bazel >> ++++ b/tests/BUILD.bazel >> +@@ -114,7 +114,6 @@ cc_binary( >> + }) + >> + select({ >> + "//:sve_validation_flag": [ >> +- "ENABLE_SVE", >> + "ARM_COMPUTE_ENABLE_SVE", >> + ], >> + "//conditions:default": [], >> +diff --git a/tests/validation/NEON/ActivationLayer.cpp b/tests/validation/NEON/ActivationLayer.cpp >> +index 119d51808a..69a8b52354 100644 >> +--- a/tests/validation/NEON/ActivationLayer.cpp >> ++++ b/tests/validation/NEON/ActivationLayer.cpp >> +@@ -73,11 +73,11 @@ RelativeTolerance<float> relative_tolerance(DataType data_type, ActivationLayerI >> + switch(data_type) >> + { >> + case DataType::F16: >> +-#if defined(ENABLE_SVE) >> ++#if defined(ARM_COMPUTE_ENABLE_SVE) >> + return RelativeTolerance<float>(0.25f); >> +-#else // !defined(ENABLE_SVE) >> ++#else // !defined(ARM_COMPUTE_ENABLE_SVE) >> + return RelativeTolerance<float>(0.1f); >> +-#endif // defined(ENABLE_SVE) >> ++#endif // defined(ARM_COMPUTE_ENABLE_SVE) >> + default: >> + return RelativeTolerance<float>(0.05f); >> + } >> +@@ -85,11 +85,11 @@ RelativeTolerance<float> relative_tolerance(DataType data_type, ActivationLayerI >> + switch(data_type) >> + { >> + case DataType::F16: >> +-#if defined(ENABLE_SVE) >> ++#if defined(ARM_COMPUTE_ENABLE_SVE) >> + return RelativeTolerance<float>(0.9f); >> +-#else // !defined(ENABLE_SVE) >> ++#else // !defined(ARM_COMPUTE_ENABLE_SVE) >> + return RelativeTolerance<float>(0.01f); >> +-#endif // defined(ENABLE_SVE) >> ++#endif // defined(ARM_COMPUTE_ENABLE_SVE) >> + default: >> + return RelativeTolerance<float>(0.00001f); >> + } >> +@@ -117,11 +117,11 @@ AbsoluteTolerance<float> absolute_tolerance(DataType data_type, ActivationLayerI >> + switch(data_type) >> + { >> + case DataType::F16: >> +-#if defined(ENABLE_SVE) >> ++#if defined(ARM_COMPUTE_ENABLE_SVE) >> + return AbsoluteTolerance<float>(0.25f); >> +-#else // !defined(ENABLE_SVE) >> ++#else // !defined(ARM_COMPUTE_ENABLE_SVE) >> + return AbsoluteTolerance<float>(0.01f); >> +-#endif // defined(ENABLE_SVE) >> ++#endif // defined(ARM_COMPUTE_ENABLE_SVE) >> + default: >> + return AbsoluteTolerance<float>(0.00001f); >> + } >> +@@ -129,11 +129,11 @@ AbsoluteTolerance<float> absolute_tolerance(DataType data_type, ActivationLayerI >> + switch(data_type) >> + { >> + case DataType::F16: >> +-#if defined(ENABLE_SVE) >> ++#if defined(ARM_COMPUTE_ENABLE_SVE) >> + return AbsoluteTolerance<float>(0.9f); >> +-#else // !defined(ENABLE_SVE) >> ++#else // !defined(ARM_COMPUTE_ENABLE_SVE) >> + return AbsoluteTolerance<float>(0.01f); >> +-#endif // defined(ENABLE_SVE) >> ++#endif // defined(ARM_COMPUTE_ENABLE_SVE) >> + default: >> + return AbsoluteTolerance<float>(0.00001f); >> + } >> +diff --git a/tests/validation/NEON/ArithmeticAddition.cpp b/tests/validation/NEON/ArithmeticAddition.cpp >> +index c0033daab0..bae8535ff3 100644 >> +--- a/tests/validation/NEON/ArithmeticAddition.cpp >> ++++ b/tests/validation/NEON/ArithmeticAddition.cpp >> +@@ -48,11 +48,11 @@ namespace validation >> + using framework::dataset::make; >> + namespace >> + { >> +-#if !defined(__aarch64__) || defined(ENABLE_SVE) >> ++#if !defined(__aarch64__) || defined(ARM_COMPUTE_ENABLE_SVE) >> + constexpr AbsoluteTolerance<float> tolerance_quant(1); /**< Tolerance value for comparing reference's output against implementation's output for quantized data types */ >> +-#else // !defined(__aarch64__) || defined(ENABLE_SVE) >> ++#else // !defined(__aarch64__) || defined(ARM_COMPUTE_ENABLE_SVE) >> + constexpr AbsoluteTolerance<float> tolerance_quant(1); >> +-#endif // !defined(__aarch64__) || defined(ENABLE_SVE) >> ++#endif // !defined(__aarch64__) || defined(ARM_COMPUTE_ENABLE_SVE) >> + const auto InPlaceDataSet = framework::dataset::make("InPlace", { false, true }); >> + const auto OutOfPlaceDataSet = framework::dataset::make("InPlace", { false }); >> + } // namespace >> diff --git a/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0004-Add-source-files-at-library-definition-time.patch b/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0004-Add-source-files-at-library-definition-time.patch >> new file mode 100644 >> index 00000000..971658b4 >> --- /dev/null >> +++ b/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0004-Add-source-files-at-library-definition-time.patch >> @@ -0,0 +1,167 @@ >> +From a3c7d6aefc289dcce6656fc6d9f9c8c9b1af8f0b Mon Sep 17 00:00:00 2001 >> +From: Andrew Davis <afd@ti.com> >> +Date: Thu, 5 Dec 2024 09:38:26 -0600 >> +Subject: [PATCH] Add source files at library definition time >> + >> +This allows for easier conditional disabling of these libraries. >> + >> +Upstream-Status: Pending >> + >> +Signed-off-by: Andrew Davis <afd@ti.com> >> +Change-Id: I442aaa03060f2cb7db4ed0c1d93e64dbc223fdc6 >> +--- >> + CMakeLists.txt | 20 ++++++++++---------- >> + scripts/generate_build_files.py | 16 ++++------------ >> + src/CMakeLists.txt | 16 ++++------------ >> + 3 files changed, 18 insertions(+), 34 deletions(-) >> + >> +diff --git a/CMakeLists.txt b/CMakeLists.txt >> +index e8bdf2af1a..4073e06b17 100644 >> +--- a/CMakeLists.txt >> ++++ b/CMakeLists.txt >> +@@ -46,6 +46,12 @@ set(CMAKE_CXX_EXTENSIONS OFF) >> + list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake") >> + include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/Options.cmake) >> + include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/Version.cmake) >> ++include(${CMAKE_CURRENT_SOURCE_DIR}/src/CMakeLists.txt) >> ++ >> ++list(TRANSFORM ARM_COMPUTE_GRAPH_SOURCES PREPEND "src/") >> ++list(TRANSFORM ARM_COMPUTE_SVE_SOURCES PREPEND "src/") >> ++list(TRANSFORM ARM_COMPUTE_SVE2_SOURCES PREPEND "src/") >> ++list(TRANSFORM ARM_COMPUTE_SOURCES PREPEND "src/") >> + >> + # Require at least gcc/g++ 11) CMAKE_CXX_COMPILER_VERSION OR >> + if(CMAKE_C_COMPILER_VERSION VERSION_LESS 10.2 OR CMAKE_CXX_COMPILER_VERSION >> +@@ -139,8 +145,7 @@ endif() >> + >> + # --------------------------------------------------------------------- >> + # SVE Object Library >> +- >> +-add_library(arm_compute_sve OBJECT "") >> ++add_library(arm_compute_sve OBJECT ${ARM_COMPUTE_SVE_SOURCES}) >> + target_compile_options(arm_compute_sve >> + PRIVATE "-march=armv8.2-a+sve+fp16+dotprod" >> + PRIVATE "-fPIC") >> +@@ -162,8 +167,7 @@ target_include_directories( >> + >> + # --------------------------------------------------------------------- >> + # SVE2 Object Library >> +- >> +-add_library(arm_compute_sve2 OBJECT "") >> ++add_library(arm_compute_sve2 OBJECT ${ARM_COMPUTE_SVE2_SOURCES}) >> + target_compile_options(arm_compute_sve2 >> + PRIVATE "-march=armv8.6-a+sve2+fp16+dotprod" >> + PRIVATE "-fPIC") >> +@@ -187,7 +191,7 @@ target_include_directories( >> + # --------------------------------------------------------------------- >> + # Core Library >> + >> +-add_library(arm_compute "") >> ++add_library(arm_compute ${ARM_COMPUTE_SOURCES}) >> + target_compile_options(arm_compute PRIVATE "-march=${ARM_COMPUTE_ARCH}") >> + target_compile_definitions(arm_compute PRIVATE ARM_COMPUTE_ENABLE_BF16) >> + target_compile_definitions(arm_compute PRIVATE ENABLE_SVE) >> +@@ -216,7 +220,7 @@ target_link_libraries( >> + # --------------------------------------------------------------------- >> + # Graph Library >> + >> +-add_library(arm_compute_graph "") >> ++add_library(arm_compute_graph ${ARM_COMPUTE_GRAPH_SOURCES}) >> + target_compile_options(arm_compute_graph PRIVATE "-march=${ARM_COMPUTE_ARCH}") >> + target_compile_definitions(arm_compute_graph PRIVATE ENABLE_SVE) >> + target_compile_definitions(arm_compute_graph PRIVATE ARM_COMPUTE_ENABLE_SVE) >> +@@ -238,10 +242,6 @@ target_compile_options(arm_compute_graph PUBLIC ${COMMON_CXX_FLAGS}) >> + >> + add_library(ArmCompute::Graph ALIAS arm_compute_graph) >> + >> +-# --------------------------------------------------------------------- >> +-# Library Target Sources >> +-add_subdirectory(src) >> +- >> + if(ARM_COMPUTE_BUILD_TESTING) >> + # --------------------------------------------------------------------- >> + # Validation Framework Library >> +diff --git a/scripts/generate_build_files.py b/scripts/generate_build_files.py >> +index 52a8cc14da..4c4a14623f 100644 >> +--- a/scripts/generate_build_files.py >> ++++ b/scripts/generate_build_files.py >> +@@ -167,27 +167,19 @@ def build_from_template_cmake(srcs_graph, srcs_sve, srcs_sve2, srcs_core): >> + >> + template = f"""{get_template_header()} >> + >> +-target_sources( >> +- arm_compute_graph >> +- PRIVATE >> ++set(ARM_COMPUTE_GRAPH_SOURCES >> + {line_separator.join(srcs_graph)} >> + ) >> + >> +-target_sources( >> +- arm_compute_sve >> +- PRIVATE >> ++set(ARM_COMPUTE_SVE_SOURCES >> + {line_separator.join(srcs_sve)} >> + ) >> + >> +-target_sources( >> +- arm_compute_sve2 >> +- PRIVATE >> ++set(ARM_COMPUTE_SVE2_SOURCES >> + {line_separator.join(srcs_sve2)} >> + ) >> + >> +-target_sources( >> +- arm_compute >> +- PRIVATE >> ++set(ARM_COMPUTE_SOURCES >> + {line_separator.join(srcs_core)} >> + ) >> + """ >> +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt >> +index f1b275532a..73871563e1 100644 >> +--- a/src/CMakeLists.txt >> ++++ b/src/CMakeLists.txt >> +@@ -20,9 +20,7 @@ >> + # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE >> + # SOFTWARE. >> + >> +-target_sources( >> +- arm_compute_graph >> +- PRIVATE >> ++set(ARM_COMPUTE_GRAPH_SOURCES >> + graph/DataLayerVisitor.cpp >> + graph/Graph.cpp >> + graph/GraphBuilder.cpp >> +@@ -100,9 +98,7 @@ target_sources( >> + graph/printers/DotGraphPrinter.cpp >> + ) >> + >> +-target_sources( >> +- arm_compute_sve >> +- PRIVATE >> ++set(ARM_COMPUTE_SVE_SOURCES >> + core/NEON/kernels/arm_conv/depthwise/interleaves/sve_s8q_3x3_dot.cpp >> + core/NEON/kernels/arm_conv/depthwise/interleaves/sve_u8q_3x3_dot.cpp >> + core/NEON/kernels/arm_conv/depthwise/kernels/sme2_fp16_nhwc_3x3_s1_output2x2_mla_depthfirst/generic_direct.cpp >> +@@ -331,9 +327,7 @@ target_sources( >> + cpu/kernels/softmax/generic/sve/impl_bf16.cpp >> + ) >> + >> +-target_sources( >> +- arm_compute_sve2 >> +- PRIVATE >> ++set(ARM_COMPUTE_SVE2_SOURCES >> + cpu/kernels/activation/generic/sve2/lut.cpp >> + cpu/kernels/activation/generic/sve2/qasymm8.cpp >> + cpu/kernels/activation/generic/sve2/qasymm8_signed.cpp >> +@@ -356,9 +350,7 @@ target_sources( >> + cpu/kernels/softmax/generic/sve2/impl.cpp >> + ) >> + >> +-target_sources( >> +- arm_compute >> +- PRIVATE >> ++set(ARM_COMPUTE_SOURCES >> + c/AclContext.cpp >> + c/AclOperator.cpp >> + c/AclQueue.cpp >> diff --git a/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0005-Add-CMake-options-for-SVE-SVE2-and-BF16-support.patch b/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0005-Add-CMake-options-for-SVE-SVE2-and-BF16-support.patch >> new file mode 100644 >> index 00000000..29ca02f5 >> --- /dev/null >> +++ b/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0005-Add-CMake-options-for-SVE-SVE2-and-BF16-support.patch >> @@ -0,0 +1,112 @@ >> +From cdb765df59d8ce5f388ac2a820b5da76eb8d610c Mon Sep 17 00:00:00 2001 >> +From: Andrew Davis <afd@ti.com> >> +Date: Thu, 5 Dec 2024 09:47:25 -0600 >> +Subject: [PATCH] Add CMake options for SVE, SVE2, and BF16 support >> + >> +These should be optional, add options for these. Remove the hard-coded >> +definitions of these for the libraries. This also makes it so validation >> +options are not needed, if SVE is enabled it will be validated. >> + >> +Upstream-Status: Pending >> + >> +Signed-off-by: Andrew Davis <afd@ti.com> >> +Change-Id: I03182ac6ece843e813c027ef6a573cbba254dee9 >> +--- >> + CMakeLists.txt | 19 ------------------- >> + cmake/Options.cmake | 16 +++++++++++++--- >> + 2 files changed, 13 insertions(+), 22 deletions(-) >> + >> +diff --git a/CMakeLists.txt b/CMakeLists.txt >> +index 4073e06b17..4d95fb1bfd 100644 >> +--- a/CMakeLists.txt >> ++++ b/CMakeLists.txt >> +@@ -149,9 +149,6 @@ add_library(arm_compute_sve OBJECT ${ARM_COMPUTE_SVE_SOURCES}) >> + target_compile_options(arm_compute_sve >> + PRIVATE "-march=armv8.2-a+sve+fp16+dotprod" >> + PRIVATE "-fPIC") >> +-target_compile_definitions(arm_compute_sve PRIVATE ARM_COMPUTE_ENABLE_BF16) >> +-target_compile_definitions(arm_compute_sve PRIVATE ENABLE_SVE) >> +-target_compile_definitions(arm_compute_sve PRIVATE ARM_COMPUTE_ENABLE_SVE) >> + target_include_directories( >> + arm_compute_sve >> + PUBLIC $<INSTALL_INTERFACE:include> >> +@@ -171,10 +168,6 @@ add_library(arm_compute_sve2 OBJECT ${ARM_COMPUTE_SVE2_SOURCES}) >> + target_compile_options(arm_compute_sve2 >> + PRIVATE "-march=armv8.6-a+sve2+fp16+dotprod" >> + PRIVATE "-fPIC") >> +-target_compile_definitions(arm_compute_sve2 PRIVATE ARM_COMPUTE_ENABLE_SVE2) >> +-target_compile_definitions(arm_compute_sve2 PRIVATE ARM_COMPUTE_ENABLE_BF16) >> +-target_compile_definitions(arm_compute_sve2 PRIVATE ENABLE_SVE) >> +-target_compile_definitions(arm_compute_sve2 PRIVATE ARM_COMPUTE_ENABLE_SVE) >> + target_include_directories( >> + arm_compute_sve2 >> + PUBLIC $<INSTALL_INTERFACE:include> >> +@@ -193,9 +186,6 @@ target_include_directories( >> + >> + add_library(arm_compute ${ARM_COMPUTE_SOURCES}) >> + target_compile_options(arm_compute PRIVATE "-march=${ARM_COMPUTE_ARCH}") >> +-target_compile_definitions(arm_compute PRIVATE ARM_COMPUTE_ENABLE_BF16) >> +-target_compile_definitions(arm_compute PRIVATE ENABLE_SVE) >> +-target_compile_definitions(arm_compute PRIVATE ARM_COMPUTE_ENABLE_SVE) >> + target_include_directories( >> + arm_compute >> + PUBLIC $<INSTALL_INTERFACE:include> >> +@@ -222,8 +212,6 @@ target_link_libraries( >> + >> + add_library(arm_compute_graph ${ARM_COMPUTE_GRAPH_SOURCES}) >> + target_compile_options(arm_compute_graph PRIVATE "-march=${ARM_COMPUTE_ARCH}") >> +-target_compile_definitions(arm_compute_graph PRIVATE ENABLE_SVE) >> +-target_compile_definitions(arm_compute_graph PRIVATE ARM_COMPUTE_ENABLE_SVE) >> + # add_subdirectory(src/graph) >> + >> + target_include_directories( >> +@@ -268,13 +256,6 @@ if(ARM_COMPUTE_BUILD_TESTING) >> + >> + add_executable(arm_compute_validation "") >> + target_compile_options(arm_compute_validation PRIVATE "-march=${ARM_COMPUTE_ARCH}") >> +- if(ARM_COMPUTE_ENABLE_BF16_VALIDATION) >> +- target_compile_definitions(arm_compute_validation PRIVATE ARM_COMPUTE_ENABLE_BF16) >> +- endif() >> +- if(ARM_COMPUTE_ENABLE_SVE_VALIDATION) >> +- target_compile_definitions(arm_compute_validation PRIVATE ENABLE_SVE) >> +- target_compile_definitions(arm_compute_validation PRIVATE ARM_COMPUTE_ENABLE_SVE) >> +- endif() >> + add_subdirectory(tests/validation) >> + target_compile_options(arm_compute_validation PUBLIC ${COMMON_CXX_FLAGS}) >> + set_target_properties( >> +diff --git a/cmake/Options.cmake b/cmake/Options.cmake >> +index 121d527718..5c23fcb490 100644 >> +--- a/cmake/Options.cmake >> ++++ b/cmake/Options.cmake >> +@@ -48,11 +48,12 @@ set(ARM_COMPUTE_ARCH armv8-a CACHE STRING "Architecture to use") >> + # --------------------------------------------------------------------- >> + # Backends >> + >> +-option(ARM_COMPUTE_ENABLE_BF16_VALIDATION "" ON) >> +-option(ARM_COMPUTE_ENABLE_SVE_VALIDATION "" OFF) >> +- >> + option(ENABLE_NEON "Enable Arm® Neon™ support" ON) >> ++option(ENABLE_SVE "Enable Arm® SVE support" ON) >> ++option(ENABLE_SVE2 "Enable Arm® SVE2 support" ON) >> ++ >> + option(ARM_COMPUTE_CPU_ENABLED "" ON) >> ++option(ARM_COMPUTE_ENABLE_BF16 "" ON) >> + option(ARM_COMPUTE_ENABLE_I8MM "" ON) >> + option(ENABLE_FP32_KERNELS "" ON) >> + option(ENABLE_QASYMM8_KERNELS "" ON) >> +@@ -74,6 +75,15 @@ endif() >> + if(ARM_COMPUTE_CPU_ENABLED) >> + add_definitions(-DARM_COMPUTE_CPU_ENABLED) >> + endif() >> ++if(ENABLE_SVE) >> ++ add_definitions(-DARM_COMPUTE_ENABLE_SVE) >> ++endif() >> ++if(ENABLE_SVE2) >> ++ add_definitions(-DARM_COMPUTE_ENABLE_SVE2) >> ++endif() >> ++if(ARM_COMPUTE_ENABLE_BF16) >> ++ add_definitions(-DARM_COMPUTE_ENABLE_BF16) >> ++endif() >> + if(ARM_COMPUTE_ENABLE_FP16) >> + add_definitions(-DARM_COMPUTE_ENABLE_FP16) >> + endif() >> diff --git a/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0006-Allow-SVE-and-SVE2-support-to-be-disabled-in-CMake.patch b/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0006-Allow-SVE-and-SVE2-support-to-be-disabled-in-CMake.patch >> new file mode 100644 >> index 00000000..06370adb >> --- /dev/null >> +++ b/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0006-Allow-SVE-and-SVE2-support-to-be-disabled-in-CMake.patch >> @@ -0,0 +1,91 @@ >> +From ab5bf5b8f86337a31bfd48277650f583a040e658 Mon Sep 17 00:00:00 2001 >> +From: Andrew Davis <afd@ti.com> >> +Date: Thu, 5 Dec 2024 09:59:48 -0600 >> +Subject: [PATCH] Allow SVE and SVE2 support to be disabled in CMake >> + >> +Currently these are hard-coded as enabled. The SVE and SVE2 libraries >> +are built unconditionally. These should only be built when SVE or >> +SVE2 is available. >> + >> +Upstream-Status: Pending >> + >> +Signed-off-by: Andrew Davis <afd@ti.com> >> +Change-Id: I176259f872a84f736028622694d65d4c5b57e379 >> +--- >> + CMakeLists.txt | 25 ++++++++++++++++++------- >> + 1 file changed, 18 insertions(+), 7 deletions(-) >> + >> +diff --git a/CMakeLists.txt b/CMakeLists.txt >> +index 4d95fb1bfd..d233d6bc67 100644 >> +--- a/CMakeLists.txt >> ++++ b/CMakeLists.txt >> +@@ -145,6 +145,7 @@ endif() >> + >> + # --------------------------------------------------------------------- >> + # SVE Object Library >> ++if(ENABLE_SVE) >> + add_library(arm_compute_sve OBJECT ${ARM_COMPUTE_SVE_SOURCES}) >> + target_compile_options(arm_compute_sve >> + PRIVATE "-march=armv8.2-a+sve+fp16+dotprod" >> +@@ -161,9 +162,11 @@ target_include_directories( >> + src/core/cpu/kernels/assembly >> + src/cpu/kernels/assembly >> + src/core/NEON/kernels/arm_gemm/merges) >> ++endif() # ENABLE_SVE >> + >> + # --------------------------------------------------------------------- >> + # SVE2 Object Library >> ++if(ENABLE_SVE2) >> + add_library(arm_compute_sve2 OBJECT ${ARM_COMPUTE_SVE2_SOURCES}) >> + target_compile_options(arm_compute_sve2 >> + PRIVATE "-march=armv8.6-a+sve2+fp16+dotprod" >> +@@ -180,6 +183,7 @@ target_include_directories( >> + src/core/cpu/kernels/assembly >> + src/cpu/kernels/assembly >> + src/core/NEON/kernels/arm_gemm/merges) >> ++endif() # ENABLE_SVE2 >> + >> + # --------------------------------------------------------------------- >> + # Core Library >> +@@ -203,9 +207,12 @@ target_compile_options(arm_compute PUBLIC ${COMMON_CXX_FLAGS}) >> + add_library(ArmCompute::Core ALIAS arm_compute) >> + >> + # arm_compute_sve and arm_compute_sve2 obj files will not be public in the arm_compute.so >> +-target_link_libraries( >> +- arm_compute PRIVATE $<TARGET_OBJECTS:arm_compute_sve> >> +- PRIVATE $<TARGET_OBJECTS:arm_compute_sve2>) >> ++if(ENABLE_SVE) >> ++ target_link_libraries(arm_compute PRIVATE $<TARGET_OBJECTS:arm_compute_sve>) >> ++endif() >> ++if(ENABLE_SVE2) >> ++ target_link_libraries(arm_compute PRIVATE $<TARGET_OBJECTS:arm_compute_sve2>) >> ++endif() >> + >> + # --------------------------------------------------------------------- >> + # Graph Library >> +@@ -263,8 +270,10 @@ if(ARM_COMPUTE_BUILD_TESTING) >> + "${CMAKE_BINARY_DIR}/validation") >> + target_link_libraries( >> + arm_compute_validation >> +- PUBLIC arm_compute arm_compute_graph arm_compute_validation_framework >> +- arm_compute_sve) >> ++ PUBLIC arm_compute arm_compute_graph arm_compute_validation_framework) >> ++ if(ENABLE_SVE) >> ++ target_link_libraries(arm_compute_validation PUBLIC arm_compute_sve) >> ++ endif() >> + target_link_directories(arm_compute_validation PUBLIC tests) >> + >> + # --------------------------------------------------------------------- >> +@@ -299,8 +308,10 @@ if(ARM_COMPUTE_BUILD_EXAMPLES) >> + set_target_properties( >> + ${test_name} PROPERTIES RUNTIME_OUTPUT_DIRECTORY >> + "${CMAKE_BINARY_DIR}/examples") >> +- target_link_libraries(${test_name} PUBLIC arm_compute >> +- arm_compute_graph arm_compute_sve) >> ++ target_link_libraries(${test_name} PUBLIC arm_compute arm_compute_graph) >> ++ if(ENABLE_SVE) >> ++ target_link_libraries(${test_name} PUBLIC arm_compute_sve) >> ++ endif() >> + endforeach() >> + >> + # NEON Examples >> diff --git a/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0007-Allow-ARMv7-builds-using-CMake.patch b/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0007-Allow-ARMv7-builds-using-CMake.patch >> new file mode 100644 >> index 00000000..07dd4bee >> --- /dev/null >> +++ b/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0007-Allow-ARMv7-builds-using-CMake.patch >> @@ -0,0 +1,86 @@ >> +From 416cffe2a75a4ec66a75e00bc00297f2f0187e0f Mon Sep 17 00:00:00 2001 >> +From: Andrew Davis <afd@ti.com> >> +Date: Thu, 5 Dec 2024 10:05:03 -0600 >> +Subject: [PATCH] Allow ARMv7 builds using CMake >> + >> +Upstream-Status: Pending >> + >> +Signed-off-by: Andrew Davis <afd@ti.com> >> +Change-Id: Ib6bae5820569a8eadd53afdfe31e611a3089140e >> +--- >> + CMakeLists.txt | 25 +++++++++++++++++-- >> + .../fixtures/CpuGemmAssemblyDispatchFixture.h | 3 +++ >> + 2 files changed, 26 insertions(+), 2 deletions(-) >> + >> +diff --git a/CMakeLists.txt b/CMakeLists.txt >> +index d233d6bc67..4fc27553f3 100644 >> +--- a/CMakeLists.txt >> ++++ b/CMakeLists.txt >> +@@ -148,7 +148,7 @@ endif() >> + if(ENABLE_SVE) >> + add_library(arm_compute_sve OBJECT ${ARM_COMPUTE_SVE_SOURCES}) >> + target_compile_options(arm_compute_sve >> +- PRIVATE "-march=armv8.2-a+sve+fp16+dotprod" >> ++ PRIVATE "-march=${ARM_COMPUTE_ARCH}" >> + PRIVATE "-fPIC") >> + target_include_directories( >> + arm_compute_sve >> +@@ -169,7 +169,7 @@ endif() # ENABLE_SVE >> + if(ENABLE_SVE2) >> + add_library(arm_compute_sve2 OBJECT ${ARM_COMPUTE_SVE2_SOURCES}) >> + target_compile_options(arm_compute_sve2 >> +- PRIVATE "-march=armv8.6-a+sve2+fp16+dotprod" >> ++ PRIVATE "-march=${ARM_COMPUTE_ARCH}" >> + PRIVATE "-fPIC") >> + target_include_directories( >> + arm_compute_sve2 >> +@@ -204,6 +204,15 @@ target_include_directories( >> + src/core/NEON/kernels/convolution/winograd) >> + target_compile_options(arm_compute PUBLIC ${COMMON_CXX_FLAGS}) >> + >> ++if(ARM_COMPUTE_ARCH MATCHES "armv7") >> ++ target_sources( >> ++ arm_compute >> ++ PRIVATE >> ++ src/core/NEON/kernels/arm_gemm/kernels/a32_sgemm_8x6/a53.cpp >> ++ src/core/NEON/kernels/arm_gemm/kernels/a32_sgemm_8x6/a55r1.cpp >> ++ src/core/NEON/kernels/arm_gemm/kernels/a32_sgemm_8x6/generic.cpp) >> ++endif() >> ++ >> + add_library(ArmCompute::Core ALIAS arm_compute) >> + >> + # arm_compute_sve and arm_compute_sve2 obj files will not be public in the arm_compute.so >> +@@ -264,6 +273,18 @@ if(ARM_COMPUTE_BUILD_TESTING) >> + add_executable(arm_compute_validation "") >> + target_compile_options(arm_compute_validation PRIVATE "-march=${ARM_COMPUTE_ARCH}") >> + add_subdirectory(tests/validation) >> ++ target_include_directories( >> ++ arm_compute_validation >> ++ PUBLIC $<INSTALL_INTERFACE:include> >> ++ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include> >> ++ ${CMAKE_CURRENT_SOURCE_DIR} >> ++ PRIVATE src >> ++ src/cpu/kernels/assembly >> ++ src/core/NEON/kernels/arm_gemm >> ++ src/core/NEON/kernels/assembly >> ++ src/core/NEON/kernels/convolution/common >> ++ src/core/NEON/kernels/arm_conv/depthwise >> ++ src/core/NEON/kernels/convolution/winograd) >> + target_compile_options(arm_compute_validation PUBLIC ${COMMON_CXX_FLAGS}) >> + set_target_properties( >> + arm_compute_validation PROPERTIES RUNTIME_OUTPUT_DIRECTORY >> +diff --git a/tests/validation/fixtures/CpuGemmAssemblyDispatchFixture.h b/tests/validation/fixtures/CpuGemmAssemblyDispatchFixture.h >> +index 5d74e210d5..0b45cdf356 100644 >> +--- a/tests/validation/fixtures/CpuGemmAssemblyDispatchFixture.h >> ++++ b/tests/validation/fixtures/CpuGemmAssemblyDispatchFixture.h >> +@@ -25,7 +25,10 @@ >> + #define ACL_TESTS_VALIDATION_FIXTURES_CPUGEMMASSEMBLYDISPATCHFIXTURE_H >> + >> + #include "arm_compute/core/Helpers.h" >> ++ >> ++#ifdef ARM_COMPUTE_ENABLE_FIXED_FORMAT_KERNELS >> + #include "arm_compute/runtime/NEON/functions/NEReorderLayer.h" >> ++#endif //ARM_COMPUTE_ENABLE_FIXED_FORMAT_KERNELS >> + #include "arm_compute/runtime/NEON/functions/NETranspose.h" >> + >> + #include "src/core/NEON/kernels/arm_gemm/utils.hpp" >> diff --git a/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0008-Fix-undefined-symbol-error-when-building-TensorInfo.patch b/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0008-Fix-undefined-symbol-error-when-building-TensorInfo.patch >> new file mode 100644 >> index 00000000..9883a44d >> --- /dev/null >> +++ b/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0008-Fix-undefined-symbol-error-when-building-TensorInfo.patch >> @@ -0,0 +1,46 @@ >> +From 58698788adaeb2f74cf9fcddf06f3e9a2e78b984 Mon Sep 17 00:00:00 2001 >> +From: Andrew Davis <afd@ti.com> >> +Date: Mon, 16 Dec 2024 09:42:22 -0600 >> +Subject: [PATCH] Fix undefined symbol error when building TensorInfo >> + >> +Upstream-Status: Pending >> + >> +Signed-off-by: Andrew Davis <afd@ti.com> >> +Change-Id: I657d1b7faaad94147c685c4826916d3c21da82e1 >> +--- >> + arm_compute/core/TensorInfo.h | 5 +---- >> + src/core/TensorInfo.cpp | 5 +++++ >> + 2 files changed, 6 insertions(+), 4 deletions(-) >> + >> +diff --git a/arm_compute/core/TensorInfo.h b/arm_compute/core/TensorInfo.h >> +index e4c9cbe879..2bfe83c4b1 100644 >> +--- a/arm_compute/core/TensorInfo.h >> ++++ b/arm_compute/core/TensorInfo.h >> +@@ -242,10 +242,7 @@ public: >> + { >> + return _num_channels; >> + } >> +- const TensorShape &tensor_shape() const override >> +- { >> +- return _tensor_shape; >> +- } >> ++ const TensorShape &tensor_shape() const override; >> + const TensorDimsState &tensor_dims_state() const override >> + { >> + return _dims_state; >> +diff --git a/src/core/TensorInfo.cpp b/src/core/TensorInfo.cpp >> +index 31bddbde40..884203fd7c 100644 >> +--- a/src/core/TensorInfo.cpp >> ++++ b/src/core/TensorInfo.cpp >> +@@ -395,6 +395,11 @@ ITensorInfo &TensorInfo::set_tensor_dims_state(const TensorDimsState &state) >> + return *this; >> + } >> + >> ++const TensorShape &TensorInfo::tensor_shape() const >> ++{ >> ++ return _tensor_shape; >> ++} >> ++ >> + ITensorInfo &TensorInfo::set_quantization_info(const QuantizationInfo &quantization_info) >> + { >> + _quantization_info = quantization_info; >> diff --git a/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library_24.12.bb b/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library_24.12.bb >> new file mode 100644 >> index 00000000..d069da4c >> --- /dev/null >> +++ b/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library_24.12.bb >> @@ -0,0 +1,79 @@ >> +SUMMARY = "The ARM Computer Vision and Machine Learning library" >> +DESCRIPTION = "The ARM Computer Vision and Machine Learning library is a set of functions optimised for both ARM CPUs and GPUs." >> +LICENSE = "MIT" >> +LIC_FILES_CHKSUM = "file://LICENSES/MIT.txt;md5=35f8944fae972976691f3483b0ac9dba" >> + >> +SRC_URI = " \ >> + git://github.com/ARM-software/ComputeLibrary.git;branch=main;protocol=https \ >> + file://0001-fix-Fix-indention-in-cmake-generator-script.patch \ >> + file://0002-Use-ARM_COMPUTE_ENABLE_NEON-in-code-for-checking-NEO.patch \ >> + file://0003-Use-ARM_COMPUTE_ENABLE_SVE-in-code-for-checking-SVE-.patch \ >> + file://0004-Add-source-files-at-library-definition-time.patch \ >> + file://0005-Add-CMake-options-for-SVE-SVE2-and-BF16-support.patch \ >> + file://0006-Allow-SVE-and-SVE2-support-to-be-disabled-in-CMake.patch \ >> + file://0007-Allow-ARMv7-builds-using-CMake.patch \ >> + file://0008-Fix-undefined-symbol-error-when-building-TensorInfo.patch \ >> +" >> +SRCREV = "32bcced2af7feea6969dd1d22e58d0718dc488e3" >> + >> +S = "${WORKDIR}/git" >> + >> +COMPATIBLE_HOST = "(arm|aarch64).*-linux" >> + >> +inherit cmake >> + >> +PACKAGECONFIG ??= "examples tests cppthreads openmp" >> + >> +PACKAGECONFIG[Werror] = "-DARM_COMPUTE_WERROR=ON,-DARM_COMPUTE_WERROR=OFF" >> +PACKAGECONFIG[examples] = "-DARM_COMPUTE_BUILD_EXAMPLES=ON,-DARM_COMPUTE_BUILD_EXAMPLES=OFF" >> +PACKAGECONFIG[tests] = "-DARM_COMPUTE_BUILD_TESTING=ON,-DARM_COMPUTE_BUILD_TESTING=OFF" >> +PACKAGECONFIG[cppthreads] = "-DARM_COMPUTE_CPPTHREADS=ON,-DARM_COMPUTE_CPPTHREADS=OFF" >> +PACKAGECONFIG[openmp] = "-DARM_COMPUTE_OPENMP=ON,-DARM_COMPUTE_OPENMP=OFF" >> + >> +EXTRA_OECMAKE:append:aarch64 = " \ >> + -DARM_COMPUTE_ARCH=armv8-a \ >> + -DENABLE_NEON=ON \ >> + -DENABLE_SVE=OFF \ >> + -DENABLE_SVE2=OFF \ >> +" >> +EXTRA_OECMAKE:append:arm = " \ >> + -DARM_COMPUTE_ARCH=armv7-a \ >> + -DENABLE_NEON=ON \ >> + -DENABLE_SVE=OFF \ >> + -DENABLE_SVE2=OFF \ >> + -DARM_COMPUTE_ENABLE_BF16=OFF \ >> + -DARM_COMPUTE_ENABLE_FIXED_FORMAT_KERNELS=OFF \ >> +" >> + >> +INHIBIT_PACKAGE_DEBUG_SPLIT = "1" >> + >> +# package unversioned .so files in PN (they are not dev symlinks) >> +FILES_SOLIBSDEV = "" >> +FILES:${PN} += "${libdir}/*.so" >> + >> +# Install headers and examples >> +do_install:append() { >> + # Install headers >> + CP_ARGS="-Prf --preserve=mode,timestamps --no-preserve=ownership" >> + install -d ${D}${includedir} >> + cp $CP_ARGS ${S}/arm_compute ${D}${includedir} >> + cp $CP_ARGS ${S}/support ${D}${includedir}/support >> + >> + # Install examples >> + if ${@bb.utils.contains('PACKAGECONFIG', 'examples', 'true', 'false', d)}; then >> + install -d ${D}${bindir}/${PN}-${PV}/examples >> + for example in ${B}/examples/*; do >> + if [ -d "$example" ]; then >> + continue >> + fi >> + case "$example" in >> + (*.o|*.a|*.cmake) continue;; >> + esac >> + install -m 0555 $example ${D}${bindir}/${PN}-${PV}/examples >> + done >> + fi >> +} >> + >> +PACKAGES =+ "${PN}-tests ${PN}-examples" >> +FILES:${PN}-tests += "${libdir}/tests" >> +FILES:${PN}-examples += "${bindir}/*/examples" >> diff --git a/meta-arago-test/recipes-core/packagegroups/ti-test.bb b/meta-arago-test/recipes-core/packagegroups/ti-test.bb >> index e8458cef..37f75a39 100644 >> --- a/meta-arago-test/recipes-core/packagegroups/ti-test.bb >> +++ b/meta-arago-test/recipes-core/packagegroups/ti-test.bb >> @@ -61,6 +61,7 @@ TI_TEST_EXTRAS = " \ >> piglit \ >> python3-numpy \ >> wayland-utils \ >> + arm-compute-library-tests \ >> " >> TI_TEST_BASE:append:armv7a = " \ > ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [meta-arago][scarthgap/master][PATCH 2/2] meta-arago-extras: Add recipe for arm-compute-library 2025-01-09 18:44 ` Andrew Davis @ 2025-01-09 18:45 ` Ryan Eatmon 0 siblings, 0 replies; 10+ messages in thread From: Ryan Eatmon @ 2025-01-09 18:45 UTC (permalink / raw) To: Andrew Davis, Denys Dmytriyenko, meta-arago On 1/9/2025 12:44 PM, Andrew Davis wrote: > On 1/9/25 12:27 PM, Ryan Eatmon wrote: >> >> This fails to build for omapl138-lcdk. Do we need a v2 that address >> this? >> > > Ah, forgot about that old thing.. > > ACL is ARMv7+ only, so I'll update COMPATIBLE_HOST to drop armv5 in v2. I think you also need to filter the package out for that platform in ti-test as well. > Thanks, > Andrew > >> >> On 12/20/2024 10:49 AM, Andrew Davis wrote: >>> The Compute Library is a collection of low-level machine learning >>> functions optimized for Arm. This will be used for ARMNN and >>> other machine learning applications and frameworks. >>> >>> Signed-off-by: Andrew Davis <afd@ti.com> >>> --- >>> ...-indention-in-cmake-generator-script.patch | 130 ++++++++++++ >>> ...ENABLE_NEON-in-code-for-checking-NEO.patch | 114 ++++++++++ >>> ...ENABLE_SVE-in-code-for-checking-SVE-.patch | 197 ++++++++++++++++++ >>> ...rce-files-at-library-definition-time.patch | 167 +++++++++++++++ >>> ...ptions-for-SVE-SVE2-and-BF16-support.patch | 112 ++++++++++ >>> ...SVE2-support-to-be-disabled-in-CMake.patch | 91 ++++++++ >>> .../0007-Allow-ARMv7-builds-using-CMake.patch | 86 ++++++++ >>> ...ymbol-error-when-building-TensorInfo.patch | 46 ++++ >>> .../arm-compute-library_24.12.bb | 79 +++++++ >>> .../recipes-core/packagegroups/ti-test.bb | 1 + >>> 10 files changed, 1023 insertions(+) >>> create mode 100644 >>> meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0001-fix-Fix-indention-in-cmake-generator-script.patch >>> create mode 100644 >>> meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0002-Use-ARM_COMPUTE_ENABLE_NEON-in-code-for-checking-NEO.patch >>> create mode 100644 >>> meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0003-Use-ARM_COMPUTE_ENABLE_SVE-in-code-for-checking-SVE-.patch >>> create mode 100644 >>> meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0004-Add-source-files-at-library-definition-time.patch >>> create mode 100644 >>> meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0005-Add-CMake-options-for-SVE-SVE2-and-BF16-support.patch >>> create mode 100644 >>> meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0006-Allow-SVE-and-SVE2-support-to-be-disabled-in-CMake.patch >>> create mode 100644 >>> meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0007-Allow-ARMv7-builds-using-CMake.patch >>> create mode 100644 >>> meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0008-Fix-undefined-symbol-error-when-building-TensorInfo.patch >>> create mode 100644 >>> meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library_24.12.bb >>> >>> diff --git >>> a/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0001-fix-Fix-indention-in-cmake-generator-script.patch b/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0001-fix-Fix-indention-in-cmake-generator-script.patch >>> new file mode 100644 >>> index 00000000..9e36d254 >>> --- /dev/null >>> +++ >>> b/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0001-fix-Fix-indention-in-cmake-generator-script.patch >>> @@ -0,0 +1,130 @@ >>> +From 1e4c3016547b5f75e515d4b9a7202733c47f5a18 Mon Sep 17 00:00:00 2001 >>> +From: Andrew Davis <afd@ti.com> >>> +Date: Wed, 4 Dec 2024 14:46:17 -0600 >>> +Subject: [PATCH] fix: Fix indention in cmake generator script >>> + >>> +All other items in these lists use tabs, the first couple >>> +lines should match. Switch them to tabs then regenerate >>> +the CMakeLists.txt file. >>> + >>> +While here fix the missing ending newline. >>> + >>> +Upstream-Status: Pending >>> + >>> +Signed-off-by: Andrew Davis <afd@ti.com> >>> +Change-Id: Icab852fc43ae08e7858857881c996d233c835289 >>> +--- >>> + scripts/generate_build_files.py | 27 ++++++++++++++------------- >>> + src/CMakeLists.txt | 26 +++++++++++++------------- >>> + 2 files changed, 27 insertions(+), 26 deletions(-) >>> + >>> +diff --git a/scripts/generate_build_files.py >>> b/scripts/generate_build_files.py >>> +index f88cf1af44..52a8cc14da 100644 >>> +--- a/scripts/generate_build_files.py >>> ++++ b/scripts/generate_build_files.py >>> +@@ -168,28 +168,29 @@ def build_from_template_cmake(srcs_graph, >>> srcs_sve, srcs_sve2, srcs_core): >>> + template = f"""{get_template_header()} >>> + >>> + target_sources( >>> +- arm_compute_graph >>> +- PRIVATE >>> +- {line_separator.join(srcs_graph)} >>> ++ arm_compute_graph >>> ++ PRIVATE >>> ++ {line_separator.join(srcs_graph)} >>> + ) >>> + >>> + target_sources( >>> +- arm_compute_sve >>> +- PRIVATE >>> +- {line_separator.join(srcs_sve)} >>> ++ arm_compute_sve >>> ++ PRIVATE >>> ++ {line_separator.join(srcs_sve)} >>> + ) >>> + >>> + target_sources( >>> +- arm_compute_sve2 >>> +- PRIVATE >>> +- {line_separator.join(srcs_sve2)} >>> ++ arm_compute_sve2 >>> ++ PRIVATE >>> ++ {line_separator.join(srcs_sve2)} >>> + ) >>> + >>> + target_sources( >>> +- arm_compute >>> +- PRIVATE >>> +- {line_separator.join(srcs_core)} >>> +-)""" >>> ++ arm_compute >>> ++ PRIVATE >>> ++ {line_separator.join(srcs_core)} >>> ++) >>> ++""" >>> + return template >>> + >>> + >>> +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt >>> +index ff3bed96df..f1b275532a 100644 >>> +--- a/src/CMakeLists.txt >>> ++++ b/src/CMakeLists.txt >>> +@@ -21,9 +21,9 @@ >>> + # SOFTWARE. >>> + >>> + target_sources( >>> +- arm_compute_graph >>> +- PRIVATE >>> +- graph/DataLayerVisitor.cpp >>> ++ arm_compute_graph >>> ++ PRIVATE >>> ++ graph/DataLayerVisitor.cpp >>> + graph/Graph.cpp >>> + graph/GraphBuilder.cpp >>> + graph/GraphContext.cpp >>> +@@ -101,9 +101,9 @@ target_sources( >>> + ) >>> + >>> + target_sources( >>> +- arm_compute_sve >>> +- PRIVATE >>> +- >>> core/NEON/kernels/arm_conv/depthwise/interleaves/sve_s8q_3x3_dot.cpp >>> ++ arm_compute_sve >>> ++ PRIVATE >>> ++ >>> core/NEON/kernels/arm_conv/depthwise/interleaves/sve_s8q_3x3_dot.cpp >>> + >>> core/NEON/kernels/arm_conv/depthwise/interleaves/sve_u8q_3x3_dot.cpp >>> + >>> core/NEON/kernels/arm_conv/depthwise/kernels/sme2_fp16_nhwc_3x3_s1_output2x2_mla_depthfirst/generic_direct.cpp >>> + >>> core/NEON/kernels/arm_conv/depthwise/kernels/sme2_fp16_nhwc_3x3_s1_output2x2_mla_depthfirst/generic_indirect.cpp >>> +@@ -332,9 +332,9 @@ target_sources( >>> + ) >>> + >>> + target_sources( >>> +- arm_compute_sve2 >>> +- PRIVATE >>> +- cpu/kernels/activation/generic/sve2/lut.cpp >>> ++ arm_compute_sve2 >>> ++ PRIVATE >>> ++ cpu/kernels/activation/generic/sve2/lut.cpp >>> + cpu/kernels/activation/generic/sve2/qasymm8.cpp >>> + cpu/kernels/activation/generic/sve2/qasymm8_signed.cpp >>> + cpu/kernels/activation/generic/sve2/qsymm16.cpp >>> +@@ -357,9 +357,9 @@ target_sources( >>> + ) >>> + >>> + target_sources( >>> +- arm_compute >>> +- PRIVATE >>> +- c/AclContext.cpp >>> ++ arm_compute >>> ++ PRIVATE >>> ++ c/AclContext.cpp >>> + c/AclOperator.cpp >>> + c/AclQueue.cpp >>> + c/AclTensor.cpp >>> +@@ -1049,4 +1049,4 @@ target_sources( >>> + runtime/experimental/operators/CpuSub.cpp >>> + runtime/experimental/operators/CpuTranspose.cpp >>> + runtime/experimental/operators/CpuWinogradConv2d.cpp >>> +-) >>> +\ No newline at end of file >>> ++) >>> diff --git >>> a/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0002-Use-ARM_COMPUTE_ENABLE_NEON-in-code-for-checking-NEO.patch b/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0002-Use-ARM_COMPUTE_ENABLE_NEON-in-code-for-checking-NEO.patch >>> new file mode 100644 >>> index 00000000..174327c5 >>> --- /dev/null >>> +++ >>> b/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0002-Use-ARM_COMPUTE_ENABLE_NEON-in-code-for-checking-NEO.patch >>> @@ -0,0 +1,114 @@ >>> +From 4350c56d14b7b68acd060d8331f3ade1fb74e167 Mon Sep 17 00:00:00 2001 >>> +From: Andrew Davis <afd@ti.com> >>> +Date: Thu, 5 Dec 2024 09:21:23 -0600 >>> +Subject: [PATCH] Use ARM_COMPUTE_ENABLE_NEON in code for checking >>> NEON support >>> + >>> +ENABLE_NEON is a flag used by the build systems. The flag is not used >>> +in code, instead ARM_COMPUTE_ENABLE_NEON is used everywhere. >>> + >>> +Drop the ENABLE_NEON compiler definition to prevent any accidental >>> +use in code. >>> + >>> +Upstream-Status: Pending >>> + >>> +Signed-off-by: Andrew Davis <afd@ti.com> >>> +Change-Id: I65f5e7411c99280e2dd8c187140909cefd1c6892 >>> +--- >>> + Android.bp | 1 - >>> + BUILD.bazel | 1 - >>> + SConscript | 2 +- >>> + SConstruct | 2 +- >>> + cmake/Options.cmake | 6 +----- >>> + scripts/generate_android_bp.py | 1 - >>> + 6 files changed, 3 insertions(+), 10 deletions(-) >>> + >>> +diff --git a/Android.bp b/Android.bp >>> +index 69379472b0..9288bba2d4 100644 >>> +--- a/Android.bp >>> ++++ b/Android.bp >>> +@@ -157,7 +157,6 @@ arm_compute_library_defaults { >>> + "-DEMBEDDED_KERNELS", >>> + "-DARM_COMPUTE_ASSERTS_ENABLED", >>> + "-DARM_COMPUTE_CPP_SCHEDULER", >>> +- "-DENABLE_NEON", >>> + "-DARM_COMPUTE_ENABLE_NEON", >>> + "-Wno-unused-parameter", >>> + "-DNO_DOT_IN_TOOLCHAIN", >>> +diff --git a/BUILD.bazel b/BUILD.bazel >>> +index f553b7bfad..2262a09655 100644 >>> +--- a/BUILD.bazel >>> ++++ b/BUILD.bazel >>> +@@ -170,7 +170,6 @@ config_setting( >>> + cc_library( >>> + name = "common_defines", >>> + defines = [ >>> +- "ENABLE_NEON", >>> + "ARM_COMPUTE_CPU_ENABLED", >>> + "ARM_COMPUTE_ENABLE_NEON", >>> + "ARM_COMPUTE_ENABLE_I8MM", >>> +diff --git a/SConscript b/SConscript >>> +index 12e8fd1025..69a564873f 100644 >>> +--- a/SConscript >>> ++++ b/SConscript >>> +@@ -97,7 +97,7 @@ def build_multiisa_lib_objects(): >>> + >>> + # note that ARM_COMPUTE_ENABLE_FP16 is enabled in >>> update_data_type_layout_flags() to make >>> + # sure the environment is progated to the validation suite >>> +- arm_compute_env.Append(CPPDEFINES = ['ENABLE_NEON', >>> 'ARM_COMPUTE_ENABLE_NEON', >>> ++ arm_compute_env.Append(CPPDEFINES = ['ARM_COMPUTE_ENABLE_NEON', >>> + 'ENABLE_SVE', >>> 'ARM_COMPUTE_ENABLE_SVE','ARM_COMPUTE_ENABLE_BF16', >>> + 'ARM_COMPUTE_ENABLE_I8MM', >>> 'ARM_COMPUTE_ENABLE_SVEF32MM']) >>> + >>> +diff --git a/SConstruct b/SConstruct >>> +index 8d7bd291e8..7381300fc8 100644 >>> +--- a/SConstruct >>> ++++ b/SConstruct >>> +@@ -302,7 +302,7 @@ if 'v7a' in env['estate'] and env['estate'] == >>> '64': >>> + print("ERROR: armv7a architecture has only 32-bit execution >>> state") >>> + Exit(1) >>> + >>> +-env.Append(CPPDEFINES = ['ENABLE_NEON', 'ARM_COMPUTE_ENABLE_NEON']) >>> ++env.Append(CPPDEFINES = ['ARM_COMPUTE_ENABLE_NEON']) >>> + >>> + if 'sve' in env['arch']: >>> + env.Append(CPPDEFINES = ['ENABLE_SVE', 'ARM_COMPUTE_ENABLE_SVE']) >>> +diff --git a/cmake/Options.cmake b/cmake/Options.cmake >>> +index 5d685be48d..121d527718 100644 >>> +--- a/cmake/Options.cmake >>> ++++ b/cmake/Options.cmake >>> +@@ -53,7 +53,6 @@ option(ARM_COMPUTE_ENABLE_SVE_VALIDATION "" OFF) >>> + >>> + option(ENABLE_NEON "Enable Arm® Neon™ support" ON) >>> + option(ARM_COMPUTE_CPU_ENABLED "" ON) >>> +-option(ARM_COMPUTE_ENABLE_NEON "" ON) >>> + option(ARM_COMPUTE_ENABLE_I8MM "" ON) >>> + option(ENABLE_FP32_KERNELS "" ON) >>> + option(ENABLE_QASYMM8_KERNELS "" ON) >>> +@@ -70,14 +69,11 @@ option(ENABLE_FP16_KERNELS "" OFF) >>> + option(ARM_COMPUTE_ENABLE_FP16 "" OFF) >>> + >>> + if(ENABLE_NEON) >>> +- add_definitions(-DENABLE_NEON) >>> ++ add_definitions(-DARM_COMPUTE_ENABLE_NEON) >>> + endif() >>> + if(ARM_COMPUTE_CPU_ENABLED) >>> + add_definitions(-DARM_COMPUTE_CPU_ENABLED) >>> + endif() >>> +-if(ARM_COMPUTE_ENABLE_NEON) >>> +- add_definitions(-DARM_COMPUTE_ENABLE_NEON) >>> +-endif() >>> + if(ARM_COMPUTE_ENABLE_FP16) >>> + add_definitions(-DARM_COMPUTE_ENABLE_FP16) >>> + endif() >>> +diff --git a/scripts/generate_android_bp.py >>> b/scripts/generate_android_bp.py >>> +index d5b268f522..99a04e7071 100755 >>> +--- a/scripts/generate_android_bp.py >>> ++++ b/scripts/generate_android_bp.py >>> +@@ -94,7 +94,6 @@ arm_compute_library_defaults { >>> + "-DEMBEDDED_KERNELS", >>> + "-DARM_COMPUTE_ASSERTS_ENABLED", >>> + "-DARM_COMPUTE_CPP_SCHEDULER", >>> +- "-DENABLE_NEON", >>> + "-DARM_COMPUTE_ENABLE_NEON", >>> + "-Wno-unused-parameter", >>> + "-DNO_DOT_IN_TOOLCHAIN", >>> diff --git >>> a/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0003-Use-ARM_COMPUTE_ENABLE_SVE-in-code-for-checking-SVE-.patch b/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0003-Use-ARM_COMPUTE_ENABLE_SVE-in-code-for-checking-SVE-.patch >>> new file mode 100644 >>> index 00000000..b51e4534 >>> --- /dev/null >>> +++ >>> b/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0003-Use-ARM_COMPUTE_ENABLE_SVE-in-code-for-checking-SVE-.patch >>> @@ -0,0 +1,197 @@ >>> +From 92a881cebfee5504b188a046a96d39dd9361ddb1 Mon Sep 17 00:00:00 2001 >>> +From: Andrew Davis <afd@ti.com> >>> +Date: Thu, 5 Dec 2024 08:57:38 -0600 >>> +Subject: [PATCH] Use ARM_COMPUTE_ENABLE_SVE in code for checking SVE >>> support >>> + >>> +ENABLE_SVE is a flag used by the build systems. The flag used in code >>> +is ARM_COMPUTE_ENABLE_SVE. There are just a couple spots where the >>> +build system flag is used instead causing the need to define both. >>> + >>> +Switch these last users of ENABLE_SVE over to ARM_COMPUTE_ENABLE_SVE >>> +then drop the ENABLE_SVE definition to prevent any more instances >>> +being added in the future. >>> + >>> +Upstream-Status: Pending >>> + >>> +Signed-off-by: Andrew Davis <afd@ti.com> >>> +Change-Id: I00da7580c4520647b62c6989bc7fbdd5efc7935e >>> +--- >>> + BUILD.bazel | 3 --- >>> + SConscript | 2 +- >>> + SConstruct | 2 +- >>> + .../batchnormalization/impl/SVE/fp16.cpp | 2 +- >>> + .../batchnormalization/impl/SVE/fp32.cpp | 2 +- >>> + tests/BUILD.bazel | 1 - >>> + tests/validation/NEON/ActivationLayer.cpp | 24 +++++++++---------- >>> + tests/validation/NEON/ArithmeticAddition.cpp | 6 ++--- >>> + 8 files changed, 19 insertions(+), 23 deletions(-) >>> + >>> +diff --git a/BUILD.bazel b/BUILD.bazel >>> +index 2262a09655..c04a52e084 100644 >>> +--- a/BUILD.bazel >>> ++++ b/BUILD.bazel >>> +@@ -297,7 +297,6 @@ cc_library( >>> + "//conditions:default": [], >>> + }), >>> + local_defines = [ >>> +- "ENABLE_SVE", >>> + "ARM_COMPUTE_ENABLE_SVE", >>> + "ARM_COMPUTE_ENABLE_SVE2", >>> + "ARM_COMPUTE_ENABLE_BF16", >>> +@@ -348,7 +347,6 @@ cc_library( >>> + "//conditions:default": [], >>> + }), >>> + local_defines = [ >>> +- "ENABLE_SVE", >>> + "ARM_COMPUTE_ENABLE_SVE", >>> + "ARM_COMPUTE_ENABLE_BF16", >>> + ], >>> +@@ -409,7 +407,6 @@ cc_library( >>> + "//conditions:default": [], >>> + }), >>> + local_defines = [ >>> +- "ENABLE_SVE", >>> + "ARM_COMPUTE_ENABLE_SVE", >>> + "ARM_COMPUTE_ENABLE_BF16", >>> + ], >>> +diff --git a/SConscript b/SConscript >>> +index 69a564873f..c2ca549b71 100644 >>> +--- a/SConscript >>> ++++ b/SConscript >>> +@@ -98,7 +98,7 @@ def build_multiisa_lib_objects(): >>> + # note that ARM_COMPUTE_ENABLE_FP16 is enabled in >>> update_data_type_layout_flags() to make >>> + # sure the environment is progated to the validation suite >>> + arm_compute_env.Append(CPPDEFINES = ['ARM_COMPUTE_ENABLE_NEON', >>> +- 'ENABLE_SVE', >>> 'ARM_COMPUTE_ENABLE_SVE','ARM_COMPUTE_ENABLE_BF16', >>> ++ >>> 'ARM_COMPUTE_ENABLE_SVE','ARM_COMPUTE_ENABLE_BF16', >>> + 'ARM_COMPUTE_ENABLE_I8MM', >>> 'ARM_COMPUTE_ENABLE_SVEF32MM']) >>> + >>> + # Build all the common files for the base architecture >>> +diff --git a/SConstruct b/SConstruct >>> +index 7381300fc8..17f5615acf 100644 >>> +--- a/SConstruct >>> ++++ b/SConstruct >>> +@@ -305,7 +305,7 @@ if 'v7a' in env['estate'] and env['estate'] == >>> '64': >>> + env.Append(CPPDEFINES = ['ARM_COMPUTE_ENABLE_NEON']) >>> + >>> + if 'sve' in env['arch']: >>> +- env.Append(CPPDEFINES = ['ENABLE_SVE', 'ARM_COMPUTE_ENABLE_SVE']) >>> ++ env.Append(CPPDEFINES = ['ARM_COMPUTE_ENABLE_SVE']) >>> + if 'sve2' in env['arch']: >>> + env.Append(CPPDEFINES = ['ARM_COMPUTE_ENABLE_SVE2']) >>> + >>> +diff --git >>> a/src/core/NEON/kernels/batchnormalization/impl/SVE/fp16.cpp >>> b/src/core/NEON/kernels/batchnormalization/impl/SVE/fp16.cpp >>> +index 48caaa3e63..e07593312c 100644 >>> +--- a/src/core/NEON/kernels/batchnormalization/impl/SVE/fp16.cpp >>> ++++ b/src/core/NEON/kernels/batchnormalization/impl/SVE/fp16.cpp >>> +@@ -128,4 +128,4 @@ void >>> fp16_sve_batch_normalization(ITensor *src, >>> + } >>> + } // namespace cpu >>> + } // namespace arm_compute >>> +-#endif // ENABLE_SVE >>> ++#endif // ARM_COMPUTE_ENABLE_SVE >>> +diff --git >>> a/src/core/NEON/kernels/batchnormalization/impl/SVE/fp32.cpp >>> b/src/core/NEON/kernels/batchnormalization/impl/SVE/fp32.cpp >>> +index df4fbfe607..0d52d2c3c0 100644 >>> +--- a/src/core/NEON/kernels/batchnormalization/impl/SVE/fp32.cpp >>> ++++ b/src/core/NEON/kernels/batchnormalization/impl/SVE/fp32.cpp >>> +@@ -128,4 +128,4 @@ void >>> fp32_sve_batch_normalization(ITensor *src, >>> + } >>> + } // namespace cpu >>> + } // namespace arm_compute >>> +-#endif // ENABLE_SVE >>> ++#endif // ARM_COMPUTE_ENABLE_SVE >>> +diff --git a/tests/BUILD.bazel b/tests/BUILD.bazel >>> +index 7085f1facc..4b4be8b257 100644 >>> +--- a/tests/BUILD.bazel >>> ++++ b/tests/BUILD.bazel >>> +@@ -114,7 +114,6 @@ cc_binary( >>> + }) + >>> + select({ >>> + "//:sve_validation_flag": [ >>> +- "ENABLE_SVE", >>> + "ARM_COMPUTE_ENABLE_SVE", >>> + ], >>> + "//conditions:default": [], >>> +diff --git a/tests/validation/NEON/ActivationLayer.cpp >>> b/tests/validation/NEON/ActivationLayer.cpp >>> +index 119d51808a..69a8b52354 100644 >>> +--- a/tests/validation/NEON/ActivationLayer.cpp >>> ++++ b/tests/validation/NEON/ActivationLayer.cpp >>> +@@ -73,11 +73,11 @@ RelativeTolerance<float> >>> relative_tolerance(DataType data_type, ActivationLayerI >>> + switch(data_type) >>> + { >>> + case DataType::F16: >>> +-#if defined(ENABLE_SVE) >>> ++#if defined(ARM_COMPUTE_ENABLE_SVE) >>> + return RelativeTolerance<float>(0.25f); >>> +-#else // !defined(ENABLE_SVE) >>> ++#else // !defined(ARM_COMPUTE_ENABLE_SVE) >>> + return RelativeTolerance<float>(0.1f); >>> +-#endif // defined(ENABLE_SVE) >>> ++#endif // defined(ARM_COMPUTE_ENABLE_SVE) >>> + default: >>> + return RelativeTolerance<float>(0.05f); >>> + } >>> +@@ -85,11 +85,11 @@ RelativeTolerance<float> >>> relative_tolerance(DataType data_type, ActivationLayerI >>> + switch(data_type) >>> + { >>> + case DataType::F16: >>> +-#if defined(ENABLE_SVE) >>> ++#if defined(ARM_COMPUTE_ENABLE_SVE) >>> + return RelativeTolerance<float>(0.9f); >>> +-#else // !defined(ENABLE_SVE) >>> ++#else // !defined(ARM_COMPUTE_ENABLE_SVE) >>> + return RelativeTolerance<float>(0.01f); >>> +-#endif // defined(ENABLE_SVE) >>> ++#endif // defined(ARM_COMPUTE_ENABLE_SVE) >>> + default: >>> + return RelativeTolerance<float>(0.00001f); >>> + } >>> +@@ -117,11 +117,11 @@ AbsoluteTolerance<float> >>> absolute_tolerance(DataType data_type, ActivationLayerI >>> + switch(data_type) >>> + { >>> + case DataType::F16: >>> +-#if defined(ENABLE_SVE) >>> ++#if defined(ARM_COMPUTE_ENABLE_SVE) >>> + return AbsoluteTolerance<float>(0.25f); >>> +-#else // !defined(ENABLE_SVE) >>> ++#else // !defined(ARM_COMPUTE_ENABLE_SVE) >>> + return AbsoluteTolerance<float>(0.01f); >>> +-#endif // defined(ENABLE_SVE) >>> ++#endif // defined(ARM_COMPUTE_ENABLE_SVE) >>> + default: >>> + return AbsoluteTolerance<float>(0.00001f); >>> + } >>> +@@ -129,11 +129,11 @@ AbsoluteTolerance<float> >>> absolute_tolerance(DataType data_type, ActivationLayerI >>> + switch(data_type) >>> + { >>> + case DataType::F16: >>> +-#if defined(ENABLE_SVE) >>> ++#if defined(ARM_COMPUTE_ENABLE_SVE) >>> + return AbsoluteTolerance<float>(0.9f); >>> +-#else // !defined(ENABLE_SVE) >>> ++#else // !defined(ARM_COMPUTE_ENABLE_SVE) >>> + return AbsoluteTolerance<float>(0.01f); >>> +-#endif // defined(ENABLE_SVE) >>> ++#endif // defined(ARM_COMPUTE_ENABLE_SVE) >>> + default: >>> + return AbsoluteTolerance<float>(0.00001f); >>> + } >>> +diff --git a/tests/validation/NEON/ArithmeticAddition.cpp >>> b/tests/validation/NEON/ArithmeticAddition.cpp >>> +index c0033daab0..bae8535ff3 100644 >>> +--- a/tests/validation/NEON/ArithmeticAddition.cpp >>> ++++ b/tests/validation/NEON/ArithmeticAddition.cpp >>> +@@ -48,11 +48,11 @@ namespace validation >>> + using framework::dataset::make; >>> + namespace >>> + { >>> +-#if !defined(__aarch64__) || defined(ENABLE_SVE) >>> ++#if !defined(__aarch64__) || defined(ARM_COMPUTE_ENABLE_SVE) >>> + constexpr AbsoluteTolerance<float> tolerance_quant(1); /**< >>> Tolerance value for comparing reference's output against >>> implementation's output for quantized data types */ >>> +-#else // >>> !defined(__aarch64__) || defined(ENABLE_SVE) >>> ++#else // >>> !defined(__aarch64__) || defined(ARM_COMPUTE_ENABLE_SVE) >>> + constexpr AbsoluteTolerance<float> tolerance_quant(1); >>> +-#endif // >>> !defined(__aarch64__) || defined(ENABLE_SVE) >>> ++#endif // >>> !defined(__aarch64__) || defined(ARM_COMPUTE_ENABLE_SVE) >>> + const auto InPlaceDataSet = framework::dataset::make("InPlace", >>> { false, true }); >>> + const auto OutOfPlaceDataSet = framework::dataset::make("InPlace", >>> { false }); >>> + } // namespace >>> diff --git >>> a/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0004-Add-source-files-at-library-definition-time.patch b/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0004-Add-source-files-at-library-definition-time.patch >>> new file mode 100644 >>> index 00000000..971658b4 >>> --- /dev/null >>> +++ >>> b/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0004-Add-source-files-at-library-definition-time.patch >>> @@ -0,0 +1,167 @@ >>> +From a3c7d6aefc289dcce6656fc6d9f9c8c9b1af8f0b Mon Sep 17 00:00:00 2001 >>> +From: Andrew Davis <afd@ti.com> >>> +Date: Thu, 5 Dec 2024 09:38:26 -0600 >>> +Subject: [PATCH] Add source files at library definition time >>> + >>> +This allows for easier conditional disabling of these libraries. >>> + >>> +Upstream-Status: Pending >>> + >>> +Signed-off-by: Andrew Davis <afd@ti.com> >>> +Change-Id: I442aaa03060f2cb7db4ed0c1d93e64dbc223fdc6 >>> +--- >>> + CMakeLists.txt | 20 ++++++++++---------- >>> + scripts/generate_build_files.py | 16 ++++------------ >>> + src/CMakeLists.txt | 16 ++++------------ >>> + 3 files changed, 18 insertions(+), 34 deletions(-) >>> + >>> +diff --git a/CMakeLists.txt b/CMakeLists.txt >>> +index e8bdf2af1a..4073e06b17 100644 >>> +--- a/CMakeLists.txt >>> ++++ b/CMakeLists.txt >>> +@@ -46,6 +46,12 @@ set(CMAKE_CXX_EXTENSIONS OFF) >>> + list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake") >>> + include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/Options.cmake) >>> + include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/Version.cmake) >>> ++include(${CMAKE_CURRENT_SOURCE_DIR}/src/CMakeLists.txt) >>> ++ >>> ++list(TRANSFORM ARM_COMPUTE_GRAPH_SOURCES PREPEND "src/") >>> ++list(TRANSFORM ARM_COMPUTE_SVE_SOURCES PREPEND "src/") >>> ++list(TRANSFORM ARM_COMPUTE_SVE2_SOURCES PREPEND "src/") >>> ++list(TRANSFORM ARM_COMPUTE_SOURCES PREPEND "src/") >>> + >>> + # Require at least gcc/g++ 11) CMAKE_CXX_COMPILER_VERSION OR >>> + if(CMAKE_C_COMPILER_VERSION VERSION_LESS 10.2 OR >>> CMAKE_CXX_COMPILER_VERSION >>> +@@ -139,8 +145,7 @@ endif() >>> + >>> + # >>> --------------------------------------------------------------------- >>> + # SVE Object Library >>> +- >>> +-add_library(arm_compute_sve OBJECT "") >>> ++add_library(arm_compute_sve OBJECT ${ARM_COMPUTE_SVE_SOURCES}) >>> + target_compile_options(arm_compute_sve >>> + PRIVATE "-march=armv8.2-a+sve+fp16+dotprod" >>> + PRIVATE "-fPIC") >>> +@@ -162,8 +167,7 @@ target_include_directories( >>> + >>> + # >>> --------------------------------------------------------------------- >>> + # SVE2 Object Library >>> +- >>> +-add_library(arm_compute_sve2 OBJECT "") >>> ++add_library(arm_compute_sve2 OBJECT ${ARM_COMPUTE_SVE2_SOURCES}) >>> + target_compile_options(arm_compute_sve2 >>> + PRIVATE "-march=armv8.6-a+sve2+fp16+dotprod" >>> + PRIVATE "-fPIC") >>> +@@ -187,7 +191,7 @@ target_include_directories( >>> + # >>> --------------------------------------------------------------------- >>> + # Core Library >>> + >>> +-add_library(arm_compute "") >>> ++add_library(arm_compute ${ARM_COMPUTE_SOURCES}) >>> + target_compile_options(arm_compute PRIVATE >>> "-march=${ARM_COMPUTE_ARCH}") >>> + target_compile_definitions(arm_compute PRIVATE >>> ARM_COMPUTE_ENABLE_BF16) >>> + target_compile_definitions(arm_compute PRIVATE ENABLE_SVE) >>> +@@ -216,7 +220,7 @@ target_link_libraries( >>> + # >>> --------------------------------------------------------------------- >>> + # Graph Library >>> + >>> +-add_library(arm_compute_graph "") >>> ++add_library(arm_compute_graph ${ARM_COMPUTE_GRAPH_SOURCES}) >>> + target_compile_options(arm_compute_graph PRIVATE >>> "-march=${ARM_COMPUTE_ARCH}") >>> + target_compile_definitions(arm_compute_graph PRIVATE ENABLE_SVE) >>> + target_compile_definitions(arm_compute_graph PRIVATE >>> ARM_COMPUTE_ENABLE_SVE) >>> +@@ -238,10 +242,6 @@ target_compile_options(arm_compute_graph PUBLIC >>> ${COMMON_CXX_FLAGS}) >>> + >>> + add_library(ArmCompute::Graph ALIAS arm_compute_graph) >>> + >>> +-# >>> --------------------------------------------------------------------- >>> +-# Library Target Sources >>> +-add_subdirectory(src) >>> +- >>> + if(ARM_COMPUTE_BUILD_TESTING) >>> + # >>> --------------------------------------------------------------------- >>> + # Validation Framework Library >>> +diff --git a/scripts/generate_build_files.py >>> b/scripts/generate_build_files.py >>> +index 52a8cc14da..4c4a14623f 100644 >>> +--- a/scripts/generate_build_files.py >>> ++++ b/scripts/generate_build_files.py >>> +@@ -167,27 +167,19 @@ def build_from_template_cmake(srcs_graph, >>> srcs_sve, srcs_sve2, srcs_core): >>> + >>> + template = f"""{get_template_header()} >>> + >>> +-target_sources( >>> +- arm_compute_graph >>> +- PRIVATE >>> ++set(ARM_COMPUTE_GRAPH_SOURCES >>> + {line_separator.join(srcs_graph)} >>> + ) >>> + >>> +-target_sources( >>> +- arm_compute_sve >>> +- PRIVATE >>> ++set(ARM_COMPUTE_SVE_SOURCES >>> + {line_separator.join(srcs_sve)} >>> + ) >>> + >>> +-target_sources( >>> +- arm_compute_sve2 >>> +- PRIVATE >>> ++set(ARM_COMPUTE_SVE2_SOURCES >>> + {line_separator.join(srcs_sve2)} >>> + ) >>> + >>> +-target_sources( >>> +- arm_compute >>> +- PRIVATE >>> ++set(ARM_COMPUTE_SOURCES >>> + {line_separator.join(srcs_core)} >>> + ) >>> + """ >>> +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt >>> +index f1b275532a..73871563e1 100644 >>> +--- a/src/CMakeLists.txt >>> ++++ b/src/CMakeLists.txt >>> +@@ -20,9 +20,7 @@ >>> + # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER >>> DEALINGS IN THE >>> + # SOFTWARE. >>> + >>> +-target_sources( >>> +- arm_compute_graph >>> +- PRIVATE >>> ++set(ARM_COMPUTE_GRAPH_SOURCES >>> + graph/DataLayerVisitor.cpp >>> + graph/Graph.cpp >>> + graph/GraphBuilder.cpp >>> +@@ -100,9 +98,7 @@ target_sources( >>> + graph/printers/DotGraphPrinter.cpp >>> + ) >>> + >>> +-target_sources( >>> +- arm_compute_sve >>> +- PRIVATE >>> ++set(ARM_COMPUTE_SVE_SOURCES >>> + >>> core/NEON/kernels/arm_conv/depthwise/interleaves/sve_s8q_3x3_dot.cpp >>> + >>> core/NEON/kernels/arm_conv/depthwise/interleaves/sve_u8q_3x3_dot.cpp >>> + >>> core/NEON/kernels/arm_conv/depthwise/kernels/sme2_fp16_nhwc_3x3_s1_output2x2_mla_depthfirst/generic_direct.cpp >>> +@@ -331,9 +327,7 @@ target_sources( >>> + cpu/kernels/softmax/generic/sve/impl_bf16.cpp >>> + ) >>> + >>> +-target_sources( >>> +- arm_compute_sve2 >>> +- PRIVATE >>> ++set(ARM_COMPUTE_SVE2_SOURCES >>> + cpu/kernels/activation/generic/sve2/lut.cpp >>> + cpu/kernels/activation/generic/sve2/qasymm8.cpp >>> + cpu/kernels/activation/generic/sve2/qasymm8_signed.cpp >>> +@@ -356,9 +350,7 @@ target_sources( >>> + cpu/kernels/softmax/generic/sve2/impl.cpp >>> + ) >>> + >>> +-target_sources( >>> +- arm_compute >>> +- PRIVATE >>> ++set(ARM_COMPUTE_SOURCES >>> + c/AclContext.cpp >>> + c/AclOperator.cpp >>> + c/AclQueue.cpp >>> diff --git >>> a/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0005-Add-CMake-options-for-SVE-SVE2-and-BF16-support.patch b/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0005-Add-CMake-options-for-SVE-SVE2-and-BF16-support.patch >>> new file mode 100644 >>> index 00000000..29ca02f5 >>> --- /dev/null >>> +++ >>> b/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0005-Add-CMake-options-for-SVE-SVE2-and-BF16-support.patch >>> @@ -0,0 +1,112 @@ >>> +From cdb765df59d8ce5f388ac2a820b5da76eb8d610c Mon Sep 17 00:00:00 2001 >>> +From: Andrew Davis <afd@ti.com> >>> +Date: Thu, 5 Dec 2024 09:47:25 -0600 >>> +Subject: [PATCH] Add CMake options for SVE, SVE2, and BF16 support >>> + >>> +These should be optional, add options for these. Remove the hard-coded >>> +definitions of these for the libraries. This also makes it so >>> validation >>> +options are not needed, if SVE is enabled it will be validated. >>> + >>> +Upstream-Status: Pending >>> + >>> +Signed-off-by: Andrew Davis <afd@ti.com> >>> +Change-Id: I03182ac6ece843e813c027ef6a573cbba254dee9 >>> +--- >>> + CMakeLists.txt | 19 ------------------- >>> + cmake/Options.cmake | 16 +++++++++++++--- >>> + 2 files changed, 13 insertions(+), 22 deletions(-) >>> + >>> +diff --git a/CMakeLists.txt b/CMakeLists.txt >>> +index 4073e06b17..4d95fb1bfd 100644 >>> +--- a/CMakeLists.txt >>> ++++ b/CMakeLists.txt >>> +@@ -149,9 +149,6 @@ add_library(arm_compute_sve OBJECT >>> ${ARM_COMPUTE_SVE_SOURCES}) >>> + target_compile_options(arm_compute_sve >>> + PRIVATE "-march=armv8.2-a+sve+fp16+dotprod" >>> + PRIVATE "-fPIC") >>> +-target_compile_definitions(arm_compute_sve PRIVATE >>> ARM_COMPUTE_ENABLE_BF16) >>> +-target_compile_definitions(arm_compute_sve PRIVATE ENABLE_SVE) >>> +-target_compile_definitions(arm_compute_sve PRIVATE >>> ARM_COMPUTE_ENABLE_SVE) >>> + target_include_directories( >>> + arm_compute_sve >>> + PUBLIC $<INSTALL_INTERFACE:include> >>> +@@ -171,10 +168,6 @@ add_library(arm_compute_sve2 OBJECT >>> ${ARM_COMPUTE_SVE2_SOURCES}) >>> + target_compile_options(arm_compute_sve2 >>> + PRIVATE "-march=armv8.6-a+sve2+fp16+dotprod" >>> + PRIVATE "-fPIC") >>> +-target_compile_definitions(arm_compute_sve2 PRIVATE >>> ARM_COMPUTE_ENABLE_SVE2) >>> +-target_compile_definitions(arm_compute_sve2 PRIVATE >>> ARM_COMPUTE_ENABLE_BF16) >>> +-target_compile_definitions(arm_compute_sve2 PRIVATE ENABLE_SVE) >>> +-target_compile_definitions(arm_compute_sve2 PRIVATE >>> ARM_COMPUTE_ENABLE_SVE) >>> + target_include_directories( >>> + arm_compute_sve2 >>> + PUBLIC $<INSTALL_INTERFACE:include> >>> +@@ -193,9 +186,6 @@ target_include_directories( >>> + >>> + add_library(arm_compute ${ARM_COMPUTE_SOURCES}) >>> + target_compile_options(arm_compute PRIVATE >>> "-march=${ARM_COMPUTE_ARCH}") >>> +-target_compile_definitions(arm_compute PRIVATE >>> ARM_COMPUTE_ENABLE_BF16) >>> +-target_compile_definitions(arm_compute PRIVATE ENABLE_SVE) >>> +-target_compile_definitions(arm_compute PRIVATE ARM_COMPUTE_ENABLE_SVE) >>> + target_include_directories( >>> + arm_compute >>> + PUBLIC $<INSTALL_INTERFACE:include> >>> +@@ -222,8 +212,6 @@ target_link_libraries( >>> + >>> + add_library(arm_compute_graph ${ARM_COMPUTE_GRAPH_SOURCES}) >>> + target_compile_options(arm_compute_graph PRIVATE >>> "-march=${ARM_COMPUTE_ARCH}") >>> +-target_compile_definitions(arm_compute_graph PRIVATE ENABLE_SVE) >>> +-target_compile_definitions(arm_compute_graph PRIVATE >>> ARM_COMPUTE_ENABLE_SVE) >>> + # add_subdirectory(src/graph) >>> + >>> + target_include_directories( >>> +@@ -268,13 +256,6 @@ if(ARM_COMPUTE_BUILD_TESTING) >>> + >>> + add_executable(arm_compute_validation "") >>> + target_compile_options(arm_compute_validation PRIVATE >>> "-march=${ARM_COMPUTE_ARCH}") >>> +- if(ARM_COMPUTE_ENABLE_BF16_VALIDATION) >>> +- target_compile_definitions(arm_compute_validation PRIVATE >>> ARM_COMPUTE_ENABLE_BF16) >>> +- endif() >>> +- if(ARM_COMPUTE_ENABLE_SVE_VALIDATION) >>> +- target_compile_definitions(arm_compute_validation PRIVATE >>> ENABLE_SVE) >>> +- target_compile_definitions(arm_compute_validation PRIVATE >>> ARM_COMPUTE_ENABLE_SVE) >>> +- endif() >>> + add_subdirectory(tests/validation) >>> + target_compile_options(arm_compute_validation PUBLIC >>> ${COMMON_CXX_FLAGS}) >>> + set_target_properties( >>> +diff --git a/cmake/Options.cmake b/cmake/Options.cmake >>> +index 121d527718..5c23fcb490 100644 >>> +--- a/cmake/Options.cmake >>> ++++ b/cmake/Options.cmake >>> +@@ -48,11 +48,12 @@ set(ARM_COMPUTE_ARCH armv8-a CACHE STRING >>> "Architecture to use") >>> + # >>> --------------------------------------------------------------------- >>> + # Backends >>> + >>> +-option(ARM_COMPUTE_ENABLE_BF16_VALIDATION "" ON) >>> +-option(ARM_COMPUTE_ENABLE_SVE_VALIDATION "" OFF) >>> +- >>> + option(ENABLE_NEON "Enable Arm® Neon™ support" ON) >>> ++option(ENABLE_SVE "Enable Arm® SVE support" ON) >>> ++option(ENABLE_SVE2 "Enable Arm® SVE2 support" ON) >>> ++ >>> + option(ARM_COMPUTE_CPU_ENABLED "" ON) >>> ++option(ARM_COMPUTE_ENABLE_BF16 "" ON) >>> + option(ARM_COMPUTE_ENABLE_I8MM "" ON) >>> + option(ENABLE_FP32_KERNELS "" ON) >>> + option(ENABLE_QASYMM8_KERNELS "" ON) >>> +@@ -74,6 +75,15 @@ endif() >>> + if(ARM_COMPUTE_CPU_ENABLED) >>> + add_definitions(-DARM_COMPUTE_CPU_ENABLED) >>> + endif() >>> ++if(ENABLE_SVE) >>> ++ add_definitions(-DARM_COMPUTE_ENABLE_SVE) >>> ++endif() >>> ++if(ENABLE_SVE2) >>> ++ add_definitions(-DARM_COMPUTE_ENABLE_SVE2) >>> ++endif() >>> ++if(ARM_COMPUTE_ENABLE_BF16) >>> ++ add_definitions(-DARM_COMPUTE_ENABLE_BF16) >>> ++endif() >>> + if(ARM_COMPUTE_ENABLE_FP16) >>> + add_definitions(-DARM_COMPUTE_ENABLE_FP16) >>> + endif() >>> diff --git >>> a/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0006-Allow-SVE-and-SVE2-support-to-be-disabled-in-CMake.patch b/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0006-Allow-SVE-and-SVE2-support-to-be-disabled-in-CMake.patch >>> new file mode 100644 >>> index 00000000..06370adb >>> --- /dev/null >>> +++ >>> b/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0006-Allow-SVE-and-SVE2-support-to-be-disabled-in-CMake.patch >>> @@ -0,0 +1,91 @@ >>> +From ab5bf5b8f86337a31bfd48277650f583a040e658 Mon Sep 17 00:00:00 2001 >>> +From: Andrew Davis <afd@ti.com> >>> +Date: Thu, 5 Dec 2024 09:59:48 -0600 >>> +Subject: [PATCH] Allow SVE and SVE2 support to be disabled in CMake >>> + >>> +Currently these are hard-coded as enabled. The SVE and SVE2 libraries >>> +are built unconditionally. These should only be built when SVE or >>> +SVE2 is available. >>> + >>> +Upstream-Status: Pending >>> + >>> +Signed-off-by: Andrew Davis <afd@ti.com> >>> +Change-Id: I176259f872a84f736028622694d65d4c5b57e379 >>> +--- >>> + CMakeLists.txt | 25 ++++++++++++++++++------- >>> + 1 file changed, 18 insertions(+), 7 deletions(-) >>> + >>> +diff --git a/CMakeLists.txt b/CMakeLists.txt >>> +index 4d95fb1bfd..d233d6bc67 100644 >>> +--- a/CMakeLists.txt >>> ++++ b/CMakeLists.txt >>> +@@ -145,6 +145,7 @@ endif() >>> + >>> + # >>> --------------------------------------------------------------------- >>> + # SVE Object Library >>> ++if(ENABLE_SVE) >>> + add_library(arm_compute_sve OBJECT ${ARM_COMPUTE_SVE_SOURCES}) >>> + target_compile_options(arm_compute_sve >>> + PRIVATE "-march=armv8.2-a+sve+fp16+dotprod" >>> +@@ -161,9 +162,11 @@ target_include_directories( >>> + src/core/cpu/kernels/assembly >>> + src/cpu/kernels/assembly >>> + src/core/NEON/kernels/arm_gemm/merges) >>> ++endif() # ENABLE_SVE >>> + >>> + # >>> --------------------------------------------------------------------- >>> + # SVE2 Object Library >>> ++if(ENABLE_SVE2) >>> + add_library(arm_compute_sve2 OBJECT ${ARM_COMPUTE_SVE2_SOURCES}) >>> + target_compile_options(arm_compute_sve2 >>> + PRIVATE "-march=armv8.6-a+sve2+fp16+dotprod" >>> +@@ -180,6 +183,7 @@ target_include_directories( >>> + src/core/cpu/kernels/assembly >>> + src/cpu/kernels/assembly >>> + src/core/NEON/kernels/arm_gemm/merges) >>> ++endif() # ENABLE_SVE2 >>> + >>> + # >>> --------------------------------------------------------------------- >>> + # Core Library >>> +@@ -203,9 +207,12 @@ target_compile_options(arm_compute PUBLIC >>> ${COMMON_CXX_FLAGS}) >>> + add_library(ArmCompute::Core ALIAS arm_compute) >>> + >>> + # arm_compute_sve and arm_compute_sve2 obj files will not be public >>> in the arm_compute.so >>> +-target_link_libraries( >>> +- arm_compute PRIVATE $<TARGET_OBJECTS:arm_compute_sve> >>> +- PRIVATE $<TARGET_OBJECTS:arm_compute_sve2>) >>> ++if(ENABLE_SVE) >>> ++ target_link_libraries(arm_compute PRIVATE >>> $<TARGET_OBJECTS:arm_compute_sve>) >>> ++endif() >>> ++if(ENABLE_SVE2) >>> ++ target_link_libraries(arm_compute PRIVATE >>> $<TARGET_OBJECTS:arm_compute_sve2>) >>> ++endif() >>> + >>> + # >>> --------------------------------------------------------------------- >>> + # Graph Library >>> +@@ -263,8 +270,10 @@ if(ARM_COMPUTE_BUILD_TESTING) >>> + >>> "${CMAKE_BINARY_DIR}/validation") >>> + target_link_libraries( >>> + arm_compute_validation >>> +- PUBLIC arm_compute arm_compute_graph >>> arm_compute_validation_framework >>> +- arm_compute_sve) >>> ++ PUBLIC arm_compute arm_compute_graph >>> arm_compute_validation_framework) >>> ++ if(ENABLE_SVE) >>> ++ target_link_libraries(arm_compute_validation PUBLIC >>> arm_compute_sve) >>> ++ endif() >>> + target_link_directories(arm_compute_validation PUBLIC tests) >>> + >>> + # >>> --------------------------------------------------------------------- >>> +@@ -299,8 +308,10 @@ if(ARM_COMPUTE_BUILD_EXAMPLES) >>> + set_target_properties( >>> + ${test_name} PROPERTIES RUNTIME_OUTPUT_DIRECTORY >>> + "${CMAKE_BINARY_DIR}/examples") >>> +- target_link_libraries(${test_name} PUBLIC arm_compute >>> +- arm_compute_graph >>> arm_compute_sve) >>> ++ target_link_libraries(${test_name} PUBLIC arm_compute >>> arm_compute_graph) >>> ++ if(ENABLE_SVE) >>> ++ target_link_libraries(${test_name} PUBLIC arm_compute_sve) >>> ++ endif() >>> + endforeach() >>> + >>> + # NEON Examples >>> diff --git >>> a/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0007-Allow-ARMv7-builds-using-CMake.patch b/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0007-Allow-ARMv7-builds-using-CMake.patch >>> new file mode 100644 >>> index 00000000..07dd4bee >>> --- /dev/null >>> +++ >>> b/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0007-Allow-ARMv7-builds-using-CMake.patch >>> @@ -0,0 +1,86 @@ >>> +From 416cffe2a75a4ec66a75e00bc00297f2f0187e0f Mon Sep 17 00:00:00 2001 >>> +From: Andrew Davis <afd@ti.com> >>> +Date: Thu, 5 Dec 2024 10:05:03 -0600 >>> +Subject: [PATCH] Allow ARMv7 builds using CMake >>> + >>> +Upstream-Status: Pending >>> + >>> +Signed-off-by: Andrew Davis <afd@ti.com> >>> +Change-Id: Ib6bae5820569a8eadd53afdfe31e611a3089140e >>> +--- >>> + CMakeLists.txt | 25 +++++++++++++++++-- >>> + .../fixtures/CpuGemmAssemblyDispatchFixture.h | 3 +++ >>> + 2 files changed, 26 insertions(+), 2 deletions(-) >>> + >>> +diff --git a/CMakeLists.txt b/CMakeLists.txt >>> +index d233d6bc67..4fc27553f3 100644 >>> +--- a/CMakeLists.txt >>> ++++ b/CMakeLists.txt >>> +@@ -148,7 +148,7 @@ endif() >>> + if(ENABLE_SVE) >>> + add_library(arm_compute_sve OBJECT ${ARM_COMPUTE_SVE_SOURCES}) >>> + target_compile_options(arm_compute_sve >>> +- PRIVATE "-march=armv8.2-a+sve+fp16+dotprod" >>> ++ PRIVATE "-march=${ARM_COMPUTE_ARCH}" >>> + PRIVATE "-fPIC") >>> + target_include_directories( >>> + arm_compute_sve >>> +@@ -169,7 +169,7 @@ endif() # ENABLE_SVE >>> + if(ENABLE_SVE2) >>> + add_library(arm_compute_sve2 OBJECT ${ARM_COMPUTE_SVE2_SOURCES}) >>> + target_compile_options(arm_compute_sve2 >>> +- PRIVATE "-march=armv8.6-a+sve2+fp16+dotprod" >>> ++ PRIVATE "-march=${ARM_COMPUTE_ARCH}" >>> + PRIVATE "-fPIC") >>> + target_include_directories( >>> + arm_compute_sve2 >>> +@@ -204,6 +204,15 @@ target_include_directories( >>> + src/core/NEON/kernels/convolution/winograd) >>> + target_compile_options(arm_compute PUBLIC ${COMMON_CXX_FLAGS}) >>> + >>> ++if(ARM_COMPUTE_ARCH MATCHES "armv7") >>> ++ target_sources( >>> ++ arm_compute >>> ++ PRIVATE >>> ++ src/core/NEON/kernels/arm_gemm/kernels/a32_sgemm_8x6/a53.cpp >>> ++ src/core/NEON/kernels/arm_gemm/kernels/a32_sgemm_8x6/a55r1.cpp >>> ++ >>> src/core/NEON/kernels/arm_gemm/kernels/a32_sgemm_8x6/generic.cpp) >>> ++endif() >>> ++ >>> + add_library(ArmCompute::Core ALIAS arm_compute) >>> + >>> + # arm_compute_sve and arm_compute_sve2 obj files will not be public >>> in the arm_compute.so >>> +@@ -264,6 +273,18 @@ if(ARM_COMPUTE_BUILD_TESTING) >>> + add_executable(arm_compute_validation "") >>> + target_compile_options(arm_compute_validation PRIVATE >>> "-march=${ARM_COMPUTE_ARCH}") >>> + add_subdirectory(tests/validation) >>> ++ target_include_directories( >>> ++ arm_compute_validation >>> ++ PUBLIC $<INSTALL_INTERFACE:include> >>> ++ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include> >>> ++ ${CMAKE_CURRENT_SOURCE_DIR} >>> ++ PRIVATE src >>> ++ src/cpu/kernels/assembly >>> ++ src/core/NEON/kernels/arm_gemm >>> ++ src/core/NEON/kernels/assembly >>> ++ src/core/NEON/kernels/convolution/common >>> ++ src/core/NEON/kernels/arm_conv/depthwise >>> ++ src/core/NEON/kernels/convolution/winograd) >>> + target_compile_options(arm_compute_validation PUBLIC >>> ${COMMON_CXX_FLAGS}) >>> + set_target_properties( >>> + arm_compute_validation PROPERTIES RUNTIME_OUTPUT_DIRECTORY >>> +diff --git >>> a/tests/validation/fixtures/CpuGemmAssemblyDispatchFixture.h >>> b/tests/validation/fixtures/CpuGemmAssemblyDispatchFixture.h >>> +index 5d74e210d5..0b45cdf356 100644 >>> +--- a/tests/validation/fixtures/CpuGemmAssemblyDispatchFixture.h >>> ++++ b/tests/validation/fixtures/CpuGemmAssemblyDispatchFixture.h >>> +@@ -25,7 +25,10 @@ >>> + #define ACL_TESTS_VALIDATION_FIXTURES_CPUGEMMASSEMBLYDISPATCHFIXTURE_H >>> + >>> + #include "arm_compute/core/Helpers.h" >>> ++ >>> ++#ifdef ARM_COMPUTE_ENABLE_FIXED_FORMAT_KERNELS >>> + #include "arm_compute/runtime/NEON/functions/NEReorderLayer.h" >>> ++#endif //ARM_COMPUTE_ENABLE_FIXED_FORMAT_KERNELS >>> + #include "arm_compute/runtime/NEON/functions/NETranspose.h" >>> + >>> + #include "src/core/NEON/kernels/arm_gemm/utils.hpp" >>> diff --git >>> a/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0008-Fix-undefined-symbol-error-when-building-TensorInfo.patch b/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0008-Fix-undefined-symbol-error-when-building-TensorInfo.patch >>> new file mode 100644 >>> index 00000000..9883a44d >>> --- /dev/null >>> +++ >>> b/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0008-Fix-undefined-symbol-error-when-building-TensorInfo.patch >>> @@ -0,0 +1,46 @@ >>> +From 58698788adaeb2f74cf9fcddf06f3e9a2e78b984 Mon Sep 17 00:00:00 2001 >>> +From: Andrew Davis <afd@ti.com> >>> +Date: Mon, 16 Dec 2024 09:42:22 -0600 >>> +Subject: [PATCH] Fix undefined symbol error when building TensorInfo >>> + >>> +Upstream-Status: Pending >>> + >>> +Signed-off-by: Andrew Davis <afd@ti.com> >>> +Change-Id: I657d1b7faaad94147c685c4826916d3c21da82e1 >>> +--- >>> + arm_compute/core/TensorInfo.h | 5 +---- >>> + src/core/TensorInfo.cpp | 5 +++++ >>> + 2 files changed, 6 insertions(+), 4 deletions(-) >>> + >>> +diff --git a/arm_compute/core/TensorInfo.h >>> b/arm_compute/core/TensorInfo.h >>> +index e4c9cbe879..2bfe83c4b1 100644 >>> +--- a/arm_compute/core/TensorInfo.h >>> ++++ b/arm_compute/core/TensorInfo.h >>> +@@ -242,10 +242,7 @@ public: >>> + { >>> + return _num_channels; >>> + } >>> +- const TensorShape &tensor_shape() const override >>> +- { >>> +- return _tensor_shape; >>> +- } >>> ++ const TensorShape &tensor_shape() const override; >>> + const TensorDimsState &tensor_dims_state() const override >>> + { >>> + return _dims_state; >>> +diff --git a/src/core/TensorInfo.cpp b/src/core/TensorInfo.cpp >>> +index 31bddbde40..884203fd7c 100644 >>> +--- a/src/core/TensorInfo.cpp >>> ++++ b/src/core/TensorInfo.cpp >>> +@@ -395,6 +395,11 @@ ITensorInfo >>> &TensorInfo::set_tensor_dims_state(const TensorDimsState &state) >>> + return *this; >>> + } >>> + >>> ++const TensorShape &TensorInfo::tensor_shape() const >>> ++{ >>> ++ return _tensor_shape; >>> ++} >>> ++ >>> + ITensorInfo &TensorInfo::set_quantization_info(const >>> QuantizationInfo &quantization_info) >>> + { >>> + _quantization_info = quantization_info; >>> diff --git >>> a/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library_24.12.bb b/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library_24.12.bb >>> new file mode 100644 >>> index 00000000..d069da4c >>> --- /dev/null >>> +++ >>> b/meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library_24.12.bb >>> @@ -0,0 +1,79 @@ >>> +SUMMARY = "The ARM Computer Vision and Machine Learning library" >>> +DESCRIPTION = "The ARM Computer Vision and Machine Learning library >>> is a set of functions optimised for both ARM CPUs and GPUs." >>> +LICENSE = "MIT" >>> +LIC_FILES_CHKSUM = >>> "file://LICENSES/MIT.txt;md5=35f8944fae972976691f3483b0ac9dba" >>> + >>> +SRC_URI = " \ >>> + >>> git://github.com/ARM-software/ComputeLibrary.git;branch=main;protocol=https \ >>> + file://0001-fix-Fix-indention-in-cmake-generator-script.patch \ >>> + >>> file://0002-Use-ARM_COMPUTE_ENABLE_NEON-in-code-for-checking-NEO.patch \ >>> + >>> file://0003-Use-ARM_COMPUTE_ENABLE_SVE-in-code-for-checking-SVE-.patch \ >>> + file://0004-Add-source-files-at-library-definition-time.patch \ >>> + file://0005-Add-CMake-options-for-SVE-SVE2-and-BF16-support.patch \ >>> + >>> file://0006-Allow-SVE-and-SVE2-support-to-be-disabled-in-CMake.patch \ >>> + file://0007-Allow-ARMv7-builds-using-CMake.patch \ >>> + >>> file://0008-Fix-undefined-symbol-error-when-building-TensorInfo.patch \ >>> +" >>> +SRCREV = "32bcced2af7feea6969dd1d22e58d0718dc488e3" >>> + >>> +S = "${WORKDIR}/git" >>> + >>> +COMPATIBLE_HOST = "(arm|aarch64).*-linux" >>> + >>> +inherit cmake >>> + >>> +PACKAGECONFIG ??= "examples tests cppthreads openmp" >>> + >>> +PACKAGECONFIG[Werror] = >>> "-DARM_COMPUTE_WERROR=ON,-DARM_COMPUTE_WERROR=OFF" >>> +PACKAGECONFIG[examples] = >>> "-DARM_COMPUTE_BUILD_EXAMPLES=ON,-DARM_COMPUTE_BUILD_EXAMPLES=OFF" >>> +PACKAGECONFIG[tests] = >>> "-DARM_COMPUTE_BUILD_TESTING=ON,-DARM_COMPUTE_BUILD_TESTING=OFF" >>> +PACKAGECONFIG[cppthreads] = >>> "-DARM_COMPUTE_CPPTHREADS=ON,-DARM_COMPUTE_CPPTHREADS=OFF" >>> +PACKAGECONFIG[openmp] = >>> "-DARM_COMPUTE_OPENMP=ON,-DARM_COMPUTE_OPENMP=OFF" >>> + >>> +EXTRA_OECMAKE:append:aarch64 = " \ >>> + -DARM_COMPUTE_ARCH=armv8-a \ >>> + -DENABLE_NEON=ON \ >>> + -DENABLE_SVE=OFF \ >>> + -DENABLE_SVE2=OFF \ >>> +" >>> +EXTRA_OECMAKE:append:arm = " \ >>> + -DARM_COMPUTE_ARCH=armv7-a \ >>> + -DENABLE_NEON=ON \ >>> + -DENABLE_SVE=OFF \ >>> + -DENABLE_SVE2=OFF \ >>> + -DARM_COMPUTE_ENABLE_BF16=OFF \ >>> + -DARM_COMPUTE_ENABLE_FIXED_FORMAT_KERNELS=OFF \ >>> +" >>> + >>> +INHIBIT_PACKAGE_DEBUG_SPLIT = "1" >>> + >>> +# package unversioned .so files in PN (they are not dev symlinks) >>> +FILES_SOLIBSDEV = "" >>> +FILES:${PN} += "${libdir}/*.so" >>> + >>> +# Install headers and examples >>> +do_install:append() { >>> + # Install headers >>> + CP_ARGS="-Prf --preserve=mode,timestamps --no-preserve=ownership" >>> + install -d ${D}${includedir} >>> + cp $CP_ARGS ${S}/arm_compute ${D}${includedir} >>> + cp $CP_ARGS ${S}/support ${D}${includedir}/support >>> + >>> + # Install examples >>> + if ${@bb.utils.contains('PACKAGECONFIG', 'examples', 'true', >>> 'false', d)}; then >>> + install -d ${D}${bindir}/${PN}-${PV}/examples >>> + for example in ${B}/examples/*; do >>> + if [ -d "$example" ]; then >>> + continue >>> + fi >>> + case "$example" in >>> + (*.o|*.a|*.cmake) continue;; >>> + esac >>> + install -m 0555 $example ${D}${bindir}/${PN}-${PV}/examples >>> + done >>> + fi >>> +} >>> + >>> +PACKAGES =+ "${PN}-tests ${PN}-examples" >>> +FILES:${PN}-tests += "${libdir}/tests" >>> +FILES:${PN}-examples += "${bindir}/*/examples" >>> diff --git a/meta-arago-test/recipes-core/packagegroups/ti-test.bb >>> b/meta-arago-test/recipes-core/packagegroups/ti-test.bb >>> index e8458cef..37f75a39 100644 >>> --- a/meta-arago-test/recipes-core/packagegroups/ti-test.bb >>> +++ b/meta-arago-test/recipes-core/packagegroups/ti-test.bb >>> @@ -61,6 +61,7 @@ TI_TEST_EXTRAS = " \ >>> piglit \ >>> python3-numpy \ >>> wayland-utils \ >>> + arm-compute-library-tests \ >>> " >>> TI_TEST_BASE:append:armv7a = " \ >> -- Ryan Eatmon reatmon@ti.com ----------------------------------------- Texas Instruments, Inc. - LCPD - MGTS ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [meta-arago][scarthgap/master][PATCH 0/2] Add ARM Compute Library 2024-12-20 16:49 [meta-arago][scarthgap/master][PATCH 0/2] Add ARM Compute Library Andrew Davis 2024-12-20 16:49 ` [meta-arago][scarthgap/master][PATCH 1/2] flatbuffers: Remove this recipe Andrew Davis 2024-12-20 16:49 ` [meta-arago][scarthgap/master][PATCH 2/2] meta-arago-extras: Add recipe for arm-compute-library Andrew Davis @ 2024-12-20 18:04 ` Denys Dmytriyenko 2024-12-21 20:05 ` Andrew Davis 2 siblings, 1 reply; 10+ messages in thread From: Denys Dmytriyenko @ 2024-12-20 18:04 UTC (permalink / raw) To: afd; +Cc: Denys Dmytriyenko, Ryan Eatmon, meta-arago Andrew, We used to have older versions of arm-compute-library and ARMNN in meta-arago, but those were unmaintained and removed not long ago... Just a quick look around, there's a meta-machinelearning layer from Witekio, that hasn't been updated for 5.5 years. Also, meta-webos has a bit newer versions of both in rather curiously named recipes-upstreamable directory: https://github.com/webosose/meta-webosose/blob/master/meta-webos/recipes-upstreamable/arm-compute-library/arm-compute-library_22.08.bb https://github.com/webosose/meta-webosose/blob/master/meta-webos/recipes-upstreamable/armnn/armnn_22.08.bb Maybe you can find anything useful there? On Fri, Dec 20, 2024 at 10:49:08AM -0600, Andrew Davis via lists.yoctoproject.org wrote: > Hello all, > > This series adds support for arm-compute-library which will be used > as the base for several other ARM based ML frameworks and apps. > > This package will be sent for inclusion in meta-arm as it is ARM > produced and supported software. This will be done after the patches > here for ACL are taken into the project's upstream. We can drop > this out of meta-arago master after that. > > Thanks, > Andrew > > Andrew Davis (2): > flatbuffers: Remove this recipe > meta-arago-extras: Add recipe for arm-compute-library > > ...-indention-in-cmake-generator-script.patch | 130 ++++++++++++ > ...ENABLE_NEON-in-code-for-checking-NEO.patch | 114 ++++++++++ > ...ENABLE_SVE-in-code-for-checking-SVE-.patch | 197 ++++++++++++++++++ > ...rce-files-at-library-definition-time.patch | 167 +++++++++++++++ > ...ptions-for-SVE-SVE2-and-BF16-support.patch | 112 ++++++++++ > ...SVE2-support-to-be-disabled-in-CMake.patch | 91 ++++++++ > .../0007-Allow-ARMv7-builds-using-CMake.patch | 86 ++++++++ > ...ymbol-error-when-building-TensorInfo.patch | 46 ++++ > .../arm-compute-library_24.12.bb | 79 +++++++ > .../flatbuffers/flatbuffers_1.11.0.bb | 34 --- > .../recipes-core/packagegroups/ti-test.bb | 1 + > 11 files changed, 1023 insertions(+), 34 deletions(-) > create mode 100644 meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0001-fix-Fix-indention-in-cmake-generator-script.patch > create mode 100644 meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0002-Use-ARM_COMPUTE_ENABLE_NEON-in-code-for-checking-NEO.patch > create mode 100644 meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0003-Use-ARM_COMPUTE_ENABLE_SVE-in-code-for-checking-SVE-.patch > create mode 100644 meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0004-Add-source-files-at-library-definition-time.patch > create mode 100644 meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0005-Add-CMake-options-for-SVE-SVE2-and-BF16-support.patch > create mode 100644 meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0006-Allow-SVE-and-SVE2-support-to-be-disabled-in-CMake.patch > create mode 100644 meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0007-Allow-ARMv7-builds-using-CMake.patch > create mode 100644 meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0008-Fix-undefined-symbol-error-when-building-TensorInfo.patch > create mode 100644 meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library_24.12.bb > delete mode 100644 meta-arago-extras/recipes-devtools/flatbuffers/flatbuffers_1.11.0.bb ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [meta-arago][scarthgap/master][PATCH 0/2] Add ARM Compute Library 2024-12-20 18:04 ` [meta-arago][scarthgap/master][PATCH 0/2] Add ARM Compute Library Denys Dmytriyenko @ 2024-12-21 20:05 ` Andrew Davis 0 siblings, 0 replies; 10+ messages in thread From: Andrew Davis @ 2024-12-21 20:05 UTC (permalink / raw) To: Denys Dmytriyenko; +Cc: Denys Dmytriyenko, Ryan Eatmon, meta-arago On 12/20/24 12:04 PM, Denys Dmytriyenko wrote: > Andrew, > > We used to have older versions of arm-compute-library and ARMNN in meta-arago, > but those were unmaintained and removed not long ago... > Looks like ACL and ARMNN were dropped back in 2020, the tensorflow parts finally got dropped a couple months ago. But these were forks specific to our C7x accel HW. What I'm doing here is upstream based and works across all devices. > Just a quick look around, there's a meta-machinelearning layer from Witekio, > that hasn't been updated for 5.5 years. > Yeah I found that, and a couple other layers when starting this work, but they all seem to have been abandoned. Would be nice to get a Yocto Project supported layer for all this ML stuff. > Also, meta-webos has a bit newer versions of both in rather curiously named > recipes-upstreamable directory: > > https://github.com/webosose/meta-webosose/blob/master/meta-webos/recipes-upstreamable/arm-compute-library/arm-compute-library_22.08.bb > https://github.com/webosose/meta-webosose/blob/master/meta-webos/recipes-upstreamable/armnn/armnn_22.08.bb > > Maybe you can find anything useful there? > These were very useful and the recipes I'm posting took some inspiration from these. They do seem to be almost upstreamable and I've even seen some talk from a while ago on IRC on doing that but seems it never got done, so I'll see what I can do myself on upstreaming these. Thanks, Andrew > > > On Fri, Dec 20, 2024 at 10:49:08AM -0600, Andrew Davis via lists.yoctoproject.org wrote: >> Hello all, >> >> This series adds support for arm-compute-library which will be used >> as the base for several other ARM based ML frameworks and apps. >> >> This package will be sent for inclusion in meta-arm as it is ARM >> produced and supported software. This will be done after the patches >> here for ACL are taken into the project's upstream. We can drop >> this out of meta-arago master after that. >> >> Thanks, >> Andrew >> >> Andrew Davis (2): >> flatbuffers: Remove this recipe >> meta-arago-extras: Add recipe for arm-compute-library >> >> ...-indention-in-cmake-generator-script.patch | 130 ++++++++++++ >> ...ENABLE_NEON-in-code-for-checking-NEO.patch | 114 ++++++++++ >> ...ENABLE_SVE-in-code-for-checking-SVE-.patch | 197 ++++++++++++++++++ >> ...rce-files-at-library-definition-time.patch | 167 +++++++++++++++ >> ...ptions-for-SVE-SVE2-and-BF16-support.patch | 112 ++++++++++ >> ...SVE2-support-to-be-disabled-in-CMake.patch | 91 ++++++++ >> .../0007-Allow-ARMv7-builds-using-CMake.patch | 86 ++++++++ >> ...ymbol-error-when-building-TensorInfo.patch | 46 ++++ >> .../arm-compute-library_24.12.bb | 79 +++++++ >> .../flatbuffers/flatbuffers_1.11.0.bb | 34 --- >> .../recipes-core/packagegroups/ti-test.bb | 1 + >> 11 files changed, 1023 insertions(+), 34 deletions(-) >> create mode 100644 meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0001-fix-Fix-indention-in-cmake-generator-script.patch >> create mode 100644 meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0002-Use-ARM_COMPUTE_ENABLE_NEON-in-code-for-checking-NEO.patch >> create mode 100644 meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0003-Use-ARM_COMPUTE_ENABLE_SVE-in-code-for-checking-SVE-.patch >> create mode 100644 meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0004-Add-source-files-at-library-definition-time.patch >> create mode 100644 meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0005-Add-CMake-options-for-SVE-SVE2-and-BF16-support.patch >> create mode 100644 meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0006-Allow-SVE-and-SVE2-support-to-be-disabled-in-CMake.patch >> create mode 100644 meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0007-Allow-ARMv7-builds-using-CMake.patch >> create mode 100644 meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0008-Fix-undefined-symbol-error-when-building-TensorInfo.patch >> create mode 100644 meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library_24.12.bb >> delete mode 100644 meta-arago-extras/recipes-devtools/flatbuffers/flatbuffers_1.11.0.bb ^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2025-01-09 18:45 UTC | newest] Thread overview: 10+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2024-12-20 16:49 [meta-arago][scarthgap/master][PATCH 0/2] Add ARM Compute Library Andrew Davis 2024-12-20 16:49 ` [meta-arago][scarthgap/master][PATCH 1/2] flatbuffers: Remove this recipe Andrew Davis 2024-12-20 17:52 ` Denys Dmytriyenko 2024-12-21 19:52 ` Andrew Davis 2024-12-20 16:49 ` [meta-arago][scarthgap/master][PATCH 2/2] meta-arago-extras: Add recipe for arm-compute-library Andrew Davis 2025-01-09 18:27 ` Ryan Eatmon 2025-01-09 18:44 ` Andrew Davis 2025-01-09 18:45 ` Ryan Eatmon 2024-12-20 18:04 ` [meta-arago][scarthgap/master][PATCH 0/2] Add ARM Compute Library Denys Dmytriyenko 2024-12-21 20:05 ` Andrew Davis
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.