aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Svantesson <david.svantesson@arm.com>2022-12-15 16:25:57 +0000
committerDavid Svantesson <david.svantesson@arm.com>2023-01-31 14:57:06 +0000
commite0c42ef651709fd284da3bedd2c98d420bd6fd1a (patch)
tree6c154adf5937946b85fd46a30e3b3ce4c3ea5717
parent54eafd86fdeb19f2117271805a01da4395f9ef16 (diff)
downloadComputeLibrary-e0c42ef651709fd284da3bedd2c98d420bd6fd1a.tar.gz
Bazel and CMake builds
Resolves: ONCPUML-1110, ONCPUML-1109 Co-authored-by: Georgios Pinitas <georgios.pinitas@arm.com> Co-authored-by: Joe Ramsay <joe.ramsay@arm.com> Signed-off-by: David Svantesson <david.svantesson@arm.com> Change-Id: Iea693dbe53bf0af87867d6a9e0d1fd9fbe59ef3a Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/8981 Benchmark: Arm Jenkins <bsgcomp@arm.com> Tested-by: Arm Jenkins <bsgcomp@arm.com> Reviewed-by: Jakub Sujak <jakub.sujak@arm.com> Reviewed-by: Gunes Bayir <gunes.bayir@arm.com> Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
-rw-r--r--.bazelrc38
-rw-r--r--.gitignore2
-rw-r--r--BUILD.bazel347
-rw-r--r--CMakeLists.txt316
-rw-r--r--README.md12
-rw-r--r--WORKSPACE38
-rw-r--r--arm_compute/BUILD.bazel53
-rw-r--r--cmake/Options.cmake123
-rw-r--r--cmake/Version.cmake40
-rw-r--r--cmake/toolchains/aarch64_linux_toolchain.cmake27
-rw-r--r--docs/user_guide/how_to_build_and_run_examples.dox117
-rw-r--r--examples/BUILD.bazel420
-rw-r--r--examples/CMakeLists.txt53
-rw-r--r--include/BUILD.bazel32
-rw-r--r--scripts/BUILD.bazel28
-rw-r--r--scripts/generate_build_files.py296
-rw-r--r--scripts/print_version_file.py36
-rw-r--r--src/BUILD.bazel968
-rw-r--r--src/CMakeLists.txt957
-rw-r--r--support/BUILD.bazel28
-rw-r--r--tests/BUILD.bazel92
-rw-r--r--tests/CMakeLists.txt130
-rw-r--r--tests/benchmark/CMakeLists.txt23
-rw-r--r--tests/framework/BUILD.bazel60
-rw-r--r--tests/validation/CMakeLists.txt145
-rw-r--r--utils/BUILD.bazel35
26 files changed, 4416 insertions, 0 deletions
diff --git a/.bazelrc b/.bazelrc
new file mode 100644
index 0000000000..267e648987
--- /dev/null
+++ b/.bazelrc
@@ -0,0 +1,38 @@
+# Copyright (c) 2023 Arm Limited.
+#
+# SPDX-License-Identifier: MIT
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to
+# deal in the Software without restriction, including without limitation the
+# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+# sell copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+build --cxxopt="-Wall" --cxxopt="-DARCH_ARM" --cxxopt="-Wextra" --cxxopt="-pedantic" \
+ --cxxopt="-Wdisabled-optimization" --cxxopt="-Wformat=2" --cxxopt="-Winit-self" \
+ --cxxopt="-Wstrict-overflow=2" --cxxopt="-Wswitch-default" --cxxopt="-Woverloaded-virtual" \
+ --cxxopt="-Wformat-security" --cxxopt="-Wctor-dtor-privacy" --cxxopt="-Wsign-promo" \
+ --cxxopt="-Weffc++" --cxxopt="-Wno-overlength-strings" --cxxopt="-Wno-ignored-attributes" \
+ --cxxopt="-std=c++14"
+
+--repo_env=CC=gcc-10
+--repo_env=CXX=g++-10
+
+# Flag alises to allow user to write for example --Werror=true instead of --//:Werror=true
+build --flag_alias=Werror=//:Werror
+build --flag_alias=debug=//:debug
+build --flag_alias=logging=//:logging
+build --flag_alias=openmp=//:openmp
+build --flag_alias=cppthreads=//:cppthreads
diff --git a/.gitignore b/.gitignore
index 2e7f887550..6852bddf42 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,11 +1,13 @@
# Library builds
build/
+bazel-*
# Cscope/Ctags files
*cscope*
# Text files
*.txt
+!CMakeLists.txt
*.xml
*.embed
*.diff
diff --git a/BUILD.bazel b/BUILD.bazel
new file mode 100644
index 0000000000..d33cf6b8bb
--- /dev/null
+++ b/BUILD.bazel
@@ -0,0 +1,347 @@
+# Copyright (c) 2023 Arm Limited.
+#
+# SPDX-License-Identifier: MIT
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to
+# deal in the Software without restriction, including without limitation the
+# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+# sell copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+load("@bazel_skylib//rules:common_settings.bzl", "string_flag")
+load("@bazel_skylib//rules:common_settings.bzl", "bool_flag")
+
+#---------------------------------------------------------------------
+# Config setting for Tensorflow build
+config_setting(
+ name = "build_with_acl",
+ define_values = {
+ "build_with_acl": "true",
+ },
+ visibility = ["//visibility:public"],
+)
+
+#---------------------------------------------------------------------
+# Flags for build options. Example: --//:debug=true
+# All flags have aliases in .bazelrc so can use for example --debug=true when building
+bool_flag(
+ name = "debug",
+ build_setting_default = False,
+ visibility = ["//visibility:public"],
+)
+
+bool_flag(
+ name = "Werror",
+ build_setting_default = False,
+ visibility = ["//visibility:public"],
+)
+
+bool_flag(
+ name = "logging",
+ build_setting_default = False,
+ visibility = ["//visibility:public"],
+)
+
+bool_flag(
+ name = "openmp",
+ build_setting_default = True,
+ visibility = ["//visibility:public"],
+)
+
+bool_flag(
+ name = "cppthreads",
+ build_setting_default = False,
+ visibility = ["//visibility:public"],
+)
+
+#---------------------------------------------------------------------
+# Flag variables
+config_setting(
+ name = "debug_flag",
+ flag_values = {
+ ":debug": "true",
+ },
+)
+
+config_setting(
+ name = "Werror_flag",
+ flag_values = {
+ ":Werror": "true",
+ },
+)
+
+config_setting(
+ name = "logging_flag",
+ flag_values = {
+ ":logging": "true",
+ },
+)
+
+config_setting(
+ name = "openmp_flag",
+ flag_values = {
+ ":openmp": "true",
+ },
+)
+
+config_setting(
+ name = "cppthreads_flag",
+ flag_values = {
+ ":cppthreads": "true",
+ },
+)
+
+#---------------------------------------------------------------------
+# Common defines used for all targets
+cc_library(
+ name = "common_defines",
+ defines = [
+ "ENABLE_NEON",
+ "ARM_COMPUTE_CPU_ENABLED",
+ "ARM_COMPUTE_ENABLE_NEON",
+ "ARM_COMPUTE_ENABLE_FP16",
+ "ARM_COMPUTE_ENABLE_BF16",
+ "ARM_COMPUTE_ENABLE_I8MM",
+ "ENABLE_FP16_KERNELS",
+ "ENABLE_FP32_KERNELS",
+ "ENABLE_QASYMM8_KERNELS",
+ "ENABLE_QASYMM8_SIGNED_KERNELS",
+ "ENABLE_QSYMM16_KERNELS",
+ "ENABLE_INTEGER_KERNELS",
+ "ENABLE_NHWC_KERNELS",
+ "ENABLE_NCHW_KERNELS",
+ "DARM_COMPUTE_GRAPH_ENABLED",
+ "ARM_COMPUTE_ENABLE_SVEF32MM",
+ "ARM_COMPUTE_ENABLE_FIXED_FORMAT_KERNELS",
+ ] + select({
+ "//:debug_flag": [
+ "ARM_COMPUTE_DEBUG_ENABLED",
+ "ARM_COMPUTE_ASSERTS_ENABLED",
+ ],
+ "//conditions:default": [],
+ }) +
+ select({
+ "//:logging_flag": ["ARM_COMPUTE_LOGGING_ENABLED"],
+ "//conditions:default": [],
+ }) +
+ select({
+ "//:cppthreads_flag": ["ARM_COMPUTE_CPP_SCHEDULER"],
+ "//conditions:default": [],
+ }) +
+ select({
+ "//:openmp_flag": ["ARM_COMPUTE_OPENMP_SCHEDULER"],
+ "//conditions:default": [],
+ }),
+ visibility = ["//visibility:public"],
+)
+
+#---------------------------------------------------------------------
+# Rule for creating file "arm_compute_version.embed"
+genrule(
+ name = "create_version_file",
+ srcs = [".git/HEAD"],
+ outs = ["arm_compute_version.embed"],
+ cmd = "$(location //scripts:print_version_file) bazel-build-options `cat $(location :.git/HEAD)` > $@",
+ tools = ["//scripts:print_version_file"],
+ visibility = ["//visibility:public"],
+)
+
+#---------------------------------------------------------------------
+# Graph library
+
+cc_library(
+ name = "arm_compute_graph",
+ srcs = ["//src:arm_compute_graph_srcs"],
+ copts = [
+ "-march=armv8.2-a+fp16", # What arch is it we should go for here?
+ ] + select({
+ "//:debug_flag": [
+ "-O0",
+ "-g",
+ "-gdwarf-2",
+ ],
+ "//conditions:default": ["-O3"],
+ }) +
+ select({
+ "//:openmp_flag": ["-fopenmp"],
+ "//conditions:default": [],
+ }) +
+ select({
+ "//:Werror_flag": ["-Werror"],
+ "//conditions:default": [],
+ }),
+ visibility = ["//visibility:public"],
+ deps = [
+ "arm_compute",
+ "//:common_defines",
+ "//arm_compute:graph_headers",
+ ],
+ alwayslink = True,
+)
+
+#---------------------------------------------------------------------
+# SVE2 library
+
+cc_library(
+ name = "arm_compute_sve2",
+ srcs = ["//src:arm_compute_sve2_srcs"],
+ copts = [
+ "-march=armv8.6-a+sve2+fp16+dotprod", # What arch is it we should go for here?
+ ] + select({
+ "//:debug_flag": [
+ "-O0",
+ "-g",
+ "-gdwarf-2",
+ ],
+ "//conditions:default": ["-O3"],
+ }) +
+ select({
+ "//:openmp_flag": ["-fopenmp"],
+ "//conditions:default": [],
+ }) +
+ select({
+ "//:Werror_flag": ["-Werror"],
+ "//conditions:default": [],
+ }),
+ includes = [
+ "src/core/NEON/kernels/arm_conv",
+ "src/core/NEON/kernels/arm_gemm",
+ "src/core/NEON/kernels/assembly",
+ "src/core/cpu/kernels/assembly",
+ "src/cpu/kernels/assembly",
+ ],
+ linkopts = select({
+ "//:openmp_flag": ["-fopenmp"],
+ "//conditions:default": [],
+ }),
+ local_defines = [
+ "ENABLE_SVE",
+ "ARM_COMPUTE_ENABLE_SVE",
+ "ARM_COMPUTE_ENABLE_SVE2",
+ ],
+ deps = [
+ "//:common_defines",
+ "//arm_compute:core_headers",
+ "//arm_compute:runtime_headers",
+ "//include",
+ "//support",
+ ],
+ alwayslink = True,
+)
+
+#---------------------------------------------------------------------
+# SVE library
+
+cc_library(
+ name = "arm_compute_sve",
+ srcs = ["//src:arm_compute_sve_srcs"],
+ copts = [
+ "-march=armv8.2-a+sve+fp16+dotprod", # What arch is it we should go for here?
+ ] + select({
+ "//:debug_flag": [
+ "-O0",
+ "-g",
+ "-gdwarf-2",
+ ],
+ "//conditions:default": ["-O3"],
+ }) +
+ select({
+ "//:openmp_flag": ["-fopenmp"],
+ "//conditions:default": [],
+ }) +
+ select({
+ "//:Werror_flag": ["-Werror"],
+ "//conditions:default": [],
+ }),
+ includes = [
+ "src/core/NEON/kernels/arm_conv",
+ "src/core/NEON/kernels/arm_gemm",
+ "src/core/NEON/kernels/assembly",
+ "src/core/cpu/kernels/assembly",
+ "src/cpu/kernels/assembly",
+ ],
+ linkopts = select({
+ "//:openmp_flag": ["-fopenmp"],
+ "//conditions:default": [],
+ }),
+ local_defines = [
+ "ENABLE_SVE",
+ "ARM_COMPUTE_ENABLE_SVE",
+ ],
+ deps = [
+ "//:common_defines",
+ "//arm_compute:core_headers",
+ "//arm_compute:runtime_headers",
+ "//include",
+ "//support",
+ ],
+ alwayslink = True,
+)
+
+#---------------------------------------------------------------------
+# Core and Runtime library
+
+cc_library(
+ name = "arm_compute",
+ srcs = ["//src:arm_compute_srcs"],
+ hdrs = glob([
+ "core/NEON/kernels/**/*.h",
+ "core/NEON/kernels/**/*.hpp",
+ "**/*.inl",
+ ]) + [
+ "//:create_version_file",
+ ],
+ copts = [
+ "-march=armv8.2-a+fp16", # What arch is it we should go for here?
+ ] + select({
+ "//:debug_flag": [
+ "-O0",
+ "-g",
+ "-gdwarf-2",
+ ],
+ "//conditions:default": ["-O3"],
+ }) +
+ select({
+ "//:openmp_flag": ["-fopenmp"],
+ "//conditions:default": [],
+ }) +
+ select({
+ "//:Werror_flag": ["-Werror"],
+ "//conditions:default": [],
+ }),
+ includes = [
+ "arm_compute/runtime",
+ "src/core/NEON/kernels/assembly",
+ "src/core/NEON/kernels/convolution/common",
+ "src/core/NEON/kernels/convolution/winograd",
+ "src/core/cpu/kernels/assembly",
+ "src/cpu/kernels/assembly",
+ ],
+ linkopts = select({
+ "//:openmp_flag": ["-fopenmp"],
+ "//conditions:default": [],
+ }),
+ visibility = ["//visibility:public"],
+ deps = [
+ "//:common_defines",
+ "//arm_compute:core_headers",
+ "//arm_compute:graph_headers",
+ "//arm_compute:runtime_headers",
+ "//include",
+ "//support",
+ "//utils",
+ ],
+ alwayslink = True,
+)
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000000..4ac0c722a6
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,316 @@
+# Copyright (c) 2023 Arm Limited.
+#
+# SPDX-License-Identifier: MIT
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to
+# deal in the Software without restriction, including without limitation the
+# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+# sell copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+cmake_minimum_required(VERSION 3.13 FATAL_ERROR)
+
+# ---------------------------------------------------------------------
+# Project ArmCompute
+
+list(APPEND CMAKE_MESSAGE_CONTEXT ArmCompute)
+project(
+ ArmCompute
+ VERSION 28.0.8
+ DESCRIPTION
+ "The Arm Compute Library is a collection of low-level machine learning functions optimized for Arm® Cortex®-A CPU and Arm® Mali™ GPU architectures"
+ LANGUAGES C CXX ASM)
+
+include(GNUInstallDirs)
+
+set(CMAKE_C_STANDARD 99)
+set(CMAKE_C_STANDARD_REQUIRED ON)
+set(CMAKE_C_EXTENSIONS OFF)
+
+set(CMAKE_CXX_STANDARD 14)
+set(CMAKE_CXX_STANDARD_REQUIRED ON)
+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)
+
+# 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
+ VERSION_LESS 10.2)
+ message(
+ FATAL_ERROR "gcc and g++ version => 10.2 is required for building project!")
+endif()
+
+# ---------------------------------------------------------------------
+# Configuration
+
+# Default to Release Build
+if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
+ set(CMAKE_BUILD_TYPE
+ "Release"
+ CACHE
+ STRING
+ "Choose build type, available options are: Debug, Release, RelWithDebInfo"
+ FORCE)
+endif()
+
+# ---------------------------------------------------------------------
+# Information
+
+message(STATUS "Arm Compute Library ${PROJECT_VERSION}")
+
+message(VERBOSE "-----------------------------------------------------")
+message(VERBOSE "Build information:")
+list(APPEND CMAKE_MESSAGE_INDENT " ")
+message(VERBOSE "Host system: ${CMAKE_SYSTEM_NAME}")
+message(VERBOSE "Host processor: ${CMAKE_SYSTEM_PROCESSOR}")
+message(VERBOSE "Build path: ${CMAKE_CURRENT_BINARY_DIR}")
+message(VERBOSE "Enable OpenCL acceleration: ${ENABLE_OPENCL}")
+message(VERBOSE "Enable CPU acceleration: ${ENABLE_NEON}")
+list(POP_BACK CMAKE_MESSAGE_INDENT)
+message(VERBOSE "-----------------------------------------------------")
+
+# ---------------------------------------------------------------------
+# Compile options and features
+
+set(COMMON_CXX_FLAGS
+ -Wall
+ -DARCH_ARM
+ -Wextra
+ -Wdisabled-optimization
+ -Wformat=2
+ -Winit-self
+ -Wstrict-overflow=2
+ -Wswitch-default
+ -Woverloaded-virtual
+ -Wformat-security
+ -Wctor-dtor-privacy
+ -Wsign-promo
+ -Weffc++
+ -Wno-overlength-strings
+ -Wno-ignored-attributes)
+
+# Disable note popups on compiler ABI changes
+if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
+ add_compile_options("-Wno-psabi")
+endif()
+
+# Compile with -Werror if WERROR set
+if(WERROR)
+ add_compile_options("-Werror")
+endif()
+
+# Compile with debug flags and define ARM_COMPUTE_ASSERTS_ENABLED if DEBUG set
+if(DEBUG)
+ add_compile_options("-O0" "-g" "-gdwarf-2")
+ add_definitions(-DARM_COMPUTE_ASSERTS_ENABLED) # ARM_COMPUTE_DEBUG_ENABLED ??
+endif()
+
+# Compile with -fno-exceptions flag and define ARM_COMPUTE_EXCEPTIONS_DISABLED
+# if DEBUG set
+if(NOT EXCEPTIONS)
+ add_compile_options("-fno-exceptions")
+ add_definitions(-DARM_COMPUTE_EXCEPTIONS_DISABLED)
+endif()
+
+# Link OpenMP libraries if OPENMP flag on
+if(OPENMP)
+ find_package(OpenMP)
+ if(OpenMP_CXX_FOUND)
+ link_libraries(OpenMP::OpenMP_CXX)
+ add_definitions(-DARM_COMPUTE_OPENMP_SCHEDULER)
+ else()
+ message(FATAL_ERROR "OPENMP was set but no OpenMP library was found!")
+ endif()
+endif()
+
+# ---------------------------------------------------------------------
+# SVE Library
+
+add_library(arm_compute_sve "")
+target_compile_options(arm_compute_sve
+ PRIVATE "-march=armv8.2-a+sve+fp16+dotprod")
+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>
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
+ ${CMAKE_CURRENT_SOURCE_DIR}
+ PUBLIC src
+ src/core/NEON/kernels/arm_conv
+ src/core/NEON/kernels/arm_gemm
+ src/core/NEON/kernels/assembly
+ src/core/cpu/kernels/assembly
+ src/cpu/kernels/assembly
+ src/core/NEON/kernels/arm_gemm/merges)
+
+# ---------------------------------------------------------------------
+# SVE2 Library
+
+add_library(arm_compute_sve2 "")
+target_compile_options(arm_compute_sve2
+ PRIVATE "-march=armv8.6-a+sve2+fp16+dotprod")
+target_compile_definitions(arm_compute_sve2 PRIVATE ENABLE_SVE)
+target_compile_definitions(arm_compute_sve2 PRIVATE ARM_COMPUTE_ENABLE_SVE)
+target_compile_definitions(arm_compute_sve2 PRIVATE ARM_COMPUTE_ENABLE_SVE2)
+
+target_include_directories(
+ arm_compute_sve2
+ PUBLIC $<INSTALL_INTERFACE:include>
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
+ ${CMAKE_CURRENT_SOURCE_DIR}
+ PUBLIC src
+ src/core/NEON/kernels/arm_conv
+ src/core/NEON/kernels/arm_gemm
+ src/core/NEON/kernels/assembly
+ src/core/cpu/kernels/assembly
+ src/cpu/kernels/assembly
+ src/core/NEON/kernels/arm_gemm/merges)
+
+# ---------------------------------------------------------------------
+# Core Library
+
+add_library(arm_compute_core "")
+target_compile_options(arm_compute_core PRIVATE "-march=armv8.2-a+fp16")
+target_include_directories(
+ arm_compute_core
+ 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/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_core PUBLIC ${COMMON_CXX_FLAGS})
+
+add_library(ArmCompute::Core ALIAS arm_compute_core)
+
+# ---------------------------------------------------------------------
+# Graph Library
+
+add_library(arm_compute_graph "")
+target_compile_options(arm_compute_graph PRIVATE "-march=armv8.2-a+fp16")
+# add_subdirectory(src/graph)
+
+target_include_directories(
+ arm_compute_graph
+ 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/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_graph PUBLIC ${COMMON_CXX_FLAGS})
+
+add_library(ArmCompute::Graph ALIAS arm_compute_graph)
+
+# ---------------------------------------------------------------------
+# Library Target Sources
+add_subdirectory(src)
+
+# ---------------------------------------------------------------------
+# Validation Framework Library
+add_library(arm_compute_validation_framework "")
+# target_compile_options(arm_compute_validation_framework PRIVATE
+# "-march=armv8.2-a")
+target_compile_options(arm_compute_validation_framework
+ PRIVATE "-march=armv8.2-a+fp16")
+
+add_subdirectory(tests)
+target_include_directories(
+ arm_compute_validation_framework
+ PUBLIC $<INSTALL_INTERFACE:include>
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
+ ${CMAKE_CURRENT_SOURCE_DIR})
+target_compile_options(arm_compute_validation_framework
+ PUBLIC ${COMMON_CXX_FLAGS})
+ target_link_libraries(
+ arm_compute_validation_framework
+ PUBLIC arm_compute_core arm_compute_graph)
+
+# ---------------------------------------------------------------------
+# Validation Binary
+
+if(BUILD_TESTING)
+
+ add_executable(arm_compute_validation "")
+ target_compile_options(arm_compute_validation PRIVATE "-march=armv8.2-a+fp16")
+
+ add_subdirectory(tests/validation)
+ target_compile_options(arm_compute_validation PUBLIC ${COMMON_CXX_FLAGS})
+ set_target_properties(
+ arm_compute_validation PROPERTIES RUNTIME_OUTPUT_DIRECTORY
+ "${CMAKE_BINARY_DIR}/validation")
+ target_link_libraries(
+ arm_compute_validation
+ PUBLIC arm_compute_core arm_compute_graph arm_compute_validation_framework
+ arm_compute_sve)
+ target_link_directories(arm_compute_validation PUBLIC tests)
+
+ # ---------------------------------------------------------------------
+ # Benchmark Binary
+
+ add_executable(arm_compute_benchmark)
+ target_compile_options(arm_compute_benchmark PRIVATE "-march=armv8.2-a+fp16")
+
+ add_subdirectory(tests/benchmark)
+ target_compile_options(arm_compute_benchmark PUBLIC ${COMMON_CXX_FLAGS})
+ set_target_properties(
+ arm_compute_benchmark PROPERTIES RUNTIME_OUTPUT_DIRECTORY
+ "${CMAKE_BINARY_DIR}/validation")
+ target_link_libraries(
+ arm_compute_benchmark PUBLIC arm_compute_core arm_compute_graph
+ arm_compute_validation_framework)
+
+endif() # BUILD_TESTING
+# ---------------------------------------------------------------------
+# Examples Binaries
+
+if(BUILD_EXAMPLES)
+
+ add_subdirectory(examples)
+
+ # Graph Examples
+ foreach(test_name ${EXAMPLE_GRAPH_NAMES})
+ add_executable(
+ ${test_name} "examples/${test_name}.cpp" utils/Utils.cpp
+ utils/GraphUtils.cpp utils/CommonGraphOptions.cpp)
+ target_compile_options(${test_name} PRIVATE "-march=armv8.2-a+fp16")
+ set_target_properties(
+ ${test_name} PROPERTIES RUNTIME_OUTPUT_DIRECTORY
+ "${CMAKE_BINARY_DIR}/examples")
+ target_link_libraries(${test_name} PUBLIC arm_compute_core
+ arm_compute_graph arm_compute_sve)
+ endforeach()
+
+ # NEON Examples
+ foreach(test_name ${EXAMPLE_NEON_NAMES})
+ add_executable(${test_name} "examples/${test_name}.cpp" utils/Utils.cpp)
+ target_compile_options(${test_name} PRIVATE "-march=armv8.2-a+fp16")
+ set_target_properties(
+ ${test_name} PROPERTIES RUNTIME_OUTPUT_DIRECTORY
+ "${CMAKE_BINARY_DIR}/examples")
+ target_link_libraries(${test_name} PUBLIC arm_compute_core)
+ endforeach()
+
+endif() # BUILD_EXAMPLES
diff --git a/README.md b/README.md
index da10d80f23..c5b664a4ea 100644
--- a/README.md
+++ b/README.md
@@ -108,6 +108,12 @@ Pre-build binaries are generated with the following security / good coding pract
<br>
+## Experimental builds
+
+**⚠ Important** Bazel and CMake builds are experimental CPU only builds, please see the [documentation](https://arm-software.github.io/ComputeLibrary/latest/how_to_build.xhtml) for more details.
+
+<br>
+
## How to contribute
Contributions to the Compute Library are more than welcome. If you are interested on contributing, please have a look at our [how to contribute guidelines](https://arm-software.github.io/ComputeLibrary/latest/contribution_guidelines.xhtml).
@@ -151,6 +157,12 @@ Android is a trademark of Google LLC.
Arm, Cortex, Mali and Neon are registered trademarks or trademarks of Arm Limited (or its subsidiaries) in the US and/or elsewhere.
+Bazel is a trademark of Google LLC., registered in the U.S. and other
+countries.
+
+CMake is a trademark of Kitware, Inc., registered in the U.S. and other
+countries.
+
Linux® is the registered trademark of Linus Torvalds in the U.S. and other countries.
Mac and macOS are trademarks of Apple Inc., registered in the U.S. and other
diff --git a/WORKSPACE b/WORKSPACE
new file mode 100644
index 0000000000..e53fc84a6b
--- /dev/null
+++ b/WORKSPACE
@@ -0,0 +1,38 @@
+# Copyright (c) 2023 Arm Limited.
+#
+# SPDX-License-Identifier: MIT
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to
+# deal in the Software without restriction, including without limitation the
+# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+# sell copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+workspace(name = "compute_library")
+
+load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
+
+http_archive(
+ name = "bazel_skylib",
+ urls = [
+ "https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/releases/download/1.2.1/bazel-skylib-1.2.1.tar.gz",
+ "https://github.com/bazelbuild/bazel-skylib/releases/download/1.2.1/bazel-skylib-1.2.1.tar.gz",
+ ],
+ sha256 = "f7be3474d42aae265405a592bb7da8e171919d74c16f082a5457840f06054728",
+)
+
+load("@bazel_skylib//:workspace.bzl", "bazel_skylib_workspace")
+
+bazel_skylib_workspace() \ No newline at end of file
diff --git a/arm_compute/BUILD.bazel b/arm_compute/BUILD.bazel
new file mode 100644
index 0000000000..641a327d51
--- /dev/null
+++ b/arm_compute/BUILD.bazel
@@ -0,0 +1,53 @@
+# Copyright (c) 2023 Arm Limited.
+#
+# SPDX-License-Identifier: MIT
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to
+# deal in the Software without restriction, including without limitation the
+# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+# sell copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+cc_library(
+ name = "core_headers",
+ hdrs = glob([
+ "core/**/*.h",
+ "core/**/*.inl",
+ "*.h",
+ "*.hpp",
+ "dynamic_fusion/**/*.h",
+ ]),
+ visibility = ["//visibility:public"],
+)
+
+cc_library(
+ name = "runtime_headers",
+ hdrs = glob(["runtime/**/*.h"]),
+ visibility = ["//visibility:public"],
+)
+
+cc_library(
+ name = "graph_headers",
+ hdrs = glob(
+ [
+ "graph/**/*.h",
+ "graph.h",
+ ],
+ exclude = glob([
+ "graph/backends/CL/*.h",
+ ]),
+ ),
+ visibility = ["//visibility:public"],
+)
diff --git a/cmake/Options.cmake b/cmake/Options.cmake
new file mode 100644
index 0000000000..20cf0e42c8
--- /dev/null
+++ b/cmake/Options.cmake
@@ -0,0 +1,123 @@
+# Copyright (c) 2023 Arm Limited.
+#
+# SPDX-License-Identifier: MIT
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to
+# deal in the Software without restriction, including without limitation the
+# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+# sell copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+include(CMakeDependentOption)
+
+# ---------------------------------------------------------------------
+
+option(BUILD_SHARED_LIBS "Build shared libraries" ON)
+
+option(DEBUG "Enable ['-O0','-g','-gdwarf-2'] compilation flags" OFF)
+option(WERROR "Enable the -Werror compilation flag" OFF)
+option(EXCEPTIONS "Enable C++ exception support" ON)
+option(LOGGING "Enable logging" OFF)
+
+option(GEMM_TUNER "Build gemm_tuner programs" OFF) # Not used atm
+option(BUILD_EXAMPLES "Build example programs" OFF)
+
+option(BUILD_TESTING "Build tests" OFF)
+option(CPPTHREADS "Enable C++11 threads backend" OFF)
+option(OPENMP "Enable OpenMP backend" ON)
+
+#
+if(CPPTHREADS)
+ add_definitions(-DARM_COMPUTE_CPP_SCHEDULER)
+endif()
+#
+if(LOGGING)
+ add_definitions(-DARM_COMPUTE_LOGGING_ENABLED)
+endif()
+
+# ---------------------------------------------------------------------
+# Backends
+
+# TODO Add help string for each setting (Should user be able to )
+option(ENABLE_NEON "Enable Arm® Neon™ support" ON)
+option(ARM_COMPUTE_CPU_ENABLED "" ON)
+option(ARM_COMPUTE_ENABLE_NEON "" ON)
+option(ARM_COMPUTE_ENABLE_FP16 "" ON)
+option(ARM_COMPUTE_ENABLE_I8MM "" ON)
+option(ENABLE_FP16_KERNELS "" ON)
+option(ENABLE_FP32_KERNELS "" ON)
+option(ENABLE_QASYMM8_KERNELS "" ON)
+option(ENABLE_QASYMM8_SIGNED_KERNELS "" ON)
+option(ENABLE_QSYMM16_KERNELS "" ON)
+option(ENABLE_INTEGER_KERNELS "" ON)
+option(ENABLE_NHWC_KERNELS "" ON)
+option(ENABLE_NCHW_KERNELS "" ON)
+option(ARM_COMPUTE_GRAPH_ENABLED "" ON)
+option(ARM_COMPUTE_ENABLE_BF16 "" ON)
+option(ARM_COMPUTE_ENABLE_SVEF32MM "" ON)
+option(ARM_COMPUTE_ENABLE_FIXED_FORMAT_KERNELS "" ON)
+
+# TODO Check if this is required
+if(ENABLE_NEON)
+ add_definitions(-DENABLE_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()
+if(ARM_COMPUTE_ENABLE_I8MM)
+ add_definitions(-DARM_COMPUTE_ENABLE_I8MM)
+endif()
+if(ENABLE_FP16_KERNELS)
+ add_definitions(-DENABLE_FP16_KERNELS)
+endif()
+if(ENABLE_FP32_KERNELS)
+ add_definitions(-DENABLE_FP32_KERNELS)
+endif()
+if(ENABLE_QASYMM8_KERNELS)
+ add_definitions(-DENABLE_QASYMM8_KERNELS)
+endif()
+if(ENABLE_QASYMM8_SIGNED_KERNELS)
+ add_definitions(-DENABLE_QASYMM8_SIGNED_KERNELS)
+endif()
+if(ENABLE_QSYMM16_KERNELS)
+ add_definitions(-DENABLE_QSYMM16_KERNELS)
+endif()
+if(ENABLE_INTEGER_KERNELS)
+ add_definitions(-DENABLE_INTEGER_KERNELS)
+endif()
+if(ENABLE_NHWC_KERNELS)
+ add_definitions(-DENABLE_NHWC_KERNELS)
+endif()
+if(ENABLE_NCHW_KERNELS)
+ add_definitions(-DENABLE_NCHW_KERNELS)
+endif()
+if(ARM_COMPUTE_GRAPH_ENABLED)
+ add_definitions(-DARM_COMPUTE_GRAPH_ENABLED)
+endif()
+if(ARM_COMPUTE_ENABLE_BF16)
+ add_definitions(-DARM_COMPUTE_ENABLE_BF16)
+endif()
+if(ARM_COMPUTE_ENABLE_SVEF32MM)
+ add_definitions(-DARM_COMPUTE_ENABLE_SVEF32MM)
+endif()
+if(ARM_COMPUTE_ENABLE_FIXED_FORMAT_KERNELS)
+ add_definitions(-DARM_COMPUTE_ENABLE_FIXED_FORMAT_KERNELS)
+endif()
diff --git a/cmake/Version.cmake b/cmake/Version.cmake
new file mode 100644
index 0000000000..d01a588824
--- /dev/null
+++ b/cmake/Version.cmake
@@ -0,0 +1,40 @@
+# Copyright (c) 2023 Arm Limited.
+#
+# SPDX-License-Identifier: MIT
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to
+# deal in the Software without restriction, including without limitation the
+# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+# sell copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+find_package(Git)
+
+if(GIT_FOUND)
+ execute_process(
+ COMMAND ${GIT_EXECUTABLE} rev-parse HEAD
+ WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
+ RESULT_VARIABLE RESULT
+ OUTPUT_VARIABLE ACL_VERSION_SHA
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+endif()
+
+if(NOT GIT_FOUND OR RESULT)
+ set(ACL_VERSION_HASH "Unknown")
+endif()
+
+file(WRITE "arm_compute_version.embed" "\"${ACL_VERSION_SHA}\"")
+
+# TODO: List build options
diff --git a/cmake/toolchains/aarch64_linux_toolchain.cmake b/cmake/toolchains/aarch64_linux_toolchain.cmake
new file mode 100644
index 0000000000..2c0a554c57
--- /dev/null
+++ b/cmake/toolchains/aarch64_linux_toolchain.cmake
@@ -0,0 +1,27 @@
+# Copyright (c) 2023 Arm Limited.
+#
+# SPDX-License-Identifier: MIT
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to
+# deal in the Software without restriction, including without limitation the
+# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+# sell copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+set(CMAKE_SYSTEM_NAME Linux)
+set(CMAKE_SYSTEM_PROCESSOR aarch64)
+
+set(CMAKE_C_COMPILER gcc)
+set(CMAKE_CXX_COMPILER g++)
diff --git a/docs/user_guide/how_to_build_and_run_examples.dox b/docs/user_guide/how_to_build_and_run_examples.dox
index eb2a2151d3..81aa02625d 100644
--- a/docs/user_guide/how_to_build_and_run_examples.dox
+++ b/docs/user_guide/how_to_build_and_run_examples.dox
@@ -396,5 +396,122 @@ OpenCL kernel level debugging can be simplified with the use of printf, this req
SVM allocations are supported for all the underlying allocations in Compute Library. To enable this OpenCL 2.0 and above is a requirement.
+@section S1_8_experimental_builds Experimental Bazel and CMake builds
+
+In addition to the scons build the repository includes experimental Bazel and CMake builds.
+Both are similar to the scons multi_isa build. It compiles all libraries with Neon (TM) support, as well as SVE and SVE2 libraries. The build is CPU only, not including OpenCL support. Both were successfully built with gcc / g++ version 10.2.
+
+@subsection S1_8_1_bazel_build Bazel build
+
+@subsubsection S1_8_1_1_file_structure File structure
+
+File structure for all files included in the Bazel build:
+
+ .
+ ├── .bazelrc
+ ├── BUILD
+ ├── WORKSPACE
+ ├── arm_compute
+ │  └── BUILD
+ ├── examples
+ │  └── BUILD
+ ├── include
+ │  └── BUILD
+ ├── scripts
+ │ ├── print_version_file.py
+ │  └── BUILD
+ ├── src
+ │  └── BUILD
+ ├── support
+ │  └── BUILD
+ ├── tests
+ │ ├── BUILD
+ │  └── framework
+ │  └── BUILD
+ └── utils
+ └── BUILD
+
+@subsubsection S1_8_1_2_build_options Build options
+
+Available build options:
+
+ - debug: Enable ['-O0','-g','-gdwarf-2'] compilation flags
+ - Werror: Enable -Werror compilation flag
+ - logging: Enable logging
+ - cppthreads: Enable C++11 threads backend
+ - openmp: Enable OpenMP backend
+
+@subsubsection S1_8_1_3_example_builds Example builds
+
+Build everything (libraries, examples, tests):
+
+ bazel build //...
+
+Build libraries:
+
+ bazel build //:all
+
+Build arm_compute only:
+
+ bazel build //:arm_compute
+
+Build examples:
+
+ bazel build //examples:all
+
+Build resnet50 example:
+
+ bazel build //examples:graph_resnet50
+
+Build validation and benchmarking:
+
+ bazel build //tests:all
+
+@subsection S1_8_2_cmake_build CMake build
+
+@subsubsection S1_8_2_1_file_structure File structure
+
+File structure for all files included in the CMake build:
+
+ .
+ ├── CMakeLists.txt
+ ├── cmake
+ │ ├── Options.cmake
+ │ ├── Version.cmake
+ │  └── toolchains
+ │  └── aarch64_linux_toolchain.cmake
+ ├── examples
+ │  └── CMakeLists.txt
+ ├── src
+ │ └── CMakeLists.txt
+ └── tests
+ ├── CMakeLists.txt
+ ├── benchmark
+ │ └── CMakeLists.txt
+ └── validation
+ └── CMakeLists.txt
+
+@subsubsection S1_8_2_2_build_options Build options
+
+Available build options:
+
+ - DEBUG: Enable ['-O0','-g','-gdwarf-2'] compilation flags
+ - WERROR: Enable -Werror compilation flag
+ - EXCEPTIONS: If disabled ARM_COMPUTE_EXCEPTIONS_DISABLED is enabled
+ - LOGGING: Enable logging
+ - BUILD_EXAMPLES: Build examples
+ - BUILD_TESTING: Build tests
+ - CPPTHREADS: Enable C++11 threads backend
+ - OPENMP: Enable OpenMP backend
+
+@subsubsection S1_8_2_3_example_builds Example builds
+
+To build libraries, examples and tests:
+
+ mkdir build
+ cd build
+ cmake .. -DOPENMP=1 -DCPPTHREADS=1 -DWERROR=0 -DDEBUG=0 -DBUILD_EXAMPLES=1 -DBUILD_TESTING=1 -DCMAKE_INSTALL_LIBDIR=.
+ cmake --build . -j32
+
*/
} // namespace arm_compute
diff --git a/examples/BUILD.bazel b/examples/BUILD.bazel
new file mode 100644
index 0000000000..5b82a3200a
--- /dev/null
+++ b/examples/BUILD.bazel
@@ -0,0 +1,420 @@
+# Copyright (c) 2023 Arm Limited.
+#
+# SPDX-License-Identifier: MIT
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to
+# deal in the Software without restriction, including without limitation the
+# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+# sell copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+#---------------------------------------------------------------------
+# Neon examples
+
+cc_binary(
+ name = "neon_cnn",
+ srcs = ["neon_cnn.cpp"],
+ copts = ["-march=armv8.2-a+fp16"],
+ linkstatic = False,
+ deps = [
+ "//:arm_compute",
+ "//:arm_compute_graph",
+ "//include",
+ "//utils",
+ ],
+)
+
+cc_binary(
+ name = "neon_copy_objects",
+ srcs = ["neon_copy_objects.cpp"],
+ copts = ["-march=armv8.2-a+fp16"],
+ linkstatic = False,
+ deps = [
+ "//:arm_compute",
+ "//:arm_compute_graph",
+ "//include",
+ "//utils",
+ ],
+)
+
+cc_binary(
+ name = "neon_gemm_qasymm8",
+ srcs = ["neon_gemm_qasymm8.cpp"],
+ copts = ["-march=armv8.2-a+fp16"],
+ linkstatic = False,
+ deps = [
+ "//:arm_compute",
+ "//:arm_compute_graph",
+ "//include",
+ "//utils",
+ ],
+)
+
+cc_binary(
+ name = "neon_permute",
+ srcs = ["neon_permute.cpp"],
+ copts = ["-march=armv8.2-a+fp16"],
+ linkstatic = False,
+ deps = [
+ "//:arm_compute",
+ "//:arm_compute_graph",
+ "//include",
+ "//utils",
+ ],
+)
+
+cc_binary(
+ name = "neon_scale",
+ srcs = ["neon_scale.cpp"],
+ copts = ["-march=armv8.2-a+fp16"],
+ linkstatic = False,
+ deps = [
+ "//:arm_compute",
+ "//:arm_compute_graph",
+ "//include",
+ "//utils",
+ ],
+)
+
+cc_binary(
+ name = "neon_sgemm",
+ srcs = ["neon_sgemm.cpp"],
+ copts = ["-march=armv8.2-a+fp16"],
+ linkstatic = False,
+ deps = [
+ "//:arm_compute",
+ "//:arm_compute_graph",
+ "//include",
+ "//utils",
+ ],
+)
+
+#---------------------------------------------------------------------
+# Graph examples
+
+cc_binary(
+ name = "graph_alexnet",
+ srcs = ["graph_alexnet.cpp"],
+ copts = ["-march=armv8.2-a+fp16"],
+ linkstatic = False,
+ deps = [
+ "//:arm_compute",
+ "//:arm_compute_graph",
+ "//include",
+ "//utils",
+ ],
+)
+
+cc_binary(
+ name = "graph_deepspeech_v0_4_1",
+ srcs = ["graph_deepspeech_v0_4_1.cpp"],
+ copts = ["-march=armv8.2-a+fp16"],
+ linkstatic = False,
+ deps = [
+ "//:arm_compute",
+ "//:arm_compute_graph",
+ "//include",
+ "//utils",
+ ],
+)
+
+cc_binary(
+ name = "graph_edsr",
+ srcs = [
+ "graph_edsr.cpp",
+ "graph_edsr.h",
+ ],
+ copts = ["-march=armv8.2-a+fp16"],
+ linkstatic = False,
+ deps = [
+ "//:arm_compute",
+ "//:arm_compute_graph",
+ "//include",
+ "//utils",
+ ],
+)
+
+cc_binary(
+ name = "graph_googlenet",
+ srcs = ["graph_googlenet.cpp"],
+ copts = ["-march=armv8.2-a+fp16"],
+ linkstatic = False,
+ deps = [
+ "//:arm_compute",
+ "//:arm_compute_graph",
+ "//include",
+ "//utils",
+ ],
+)
+
+cc_binary(
+ name = "graph_inception_resnet_v1",
+ srcs = ["graph_inception_resnet_v1.cpp"],
+ copts = ["-march=armv8.2-a+fp16"],
+ linkstatic = False,
+ deps = [
+ "//:arm_compute",
+ "//:arm_compute_graph",
+ "//include",
+ "//utils",
+ ],
+)
+
+cc_binary(
+ name = "graph_inception_resnet_v2",
+ srcs = ["graph_inception_resnet_v2.cpp"],
+ copts = ["-march=armv8.2-a+fp16"],
+ linkstatic = False,
+ deps = [
+ "//:arm_compute",
+ "//:arm_compute_graph",
+ "//include",
+ "//utils",
+ ],
+)
+
+cc_binary(
+ name = "graph_inception_v3",
+ srcs = ["graph_inception_v3.cpp"],
+ copts = ["-march=armv8.2-a+fp16"],
+ linkstatic = False,
+ deps = [
+ "//:arm_compute",
+ "//:arm_compute_graph",
+ "//include",
+ "//utils",
+ ],
+)
+
+cc_binary(
+ name = "graph_inception_v4",
+ srcs = ["graph_inception_v4.cpp"],
+ copts = ["-march=armv8.2-a+fp16"],
+ linkstatic = False,
+ deps = [
+ "//:arm_compute",
+ "//:arm_compute_graph",
+ "//include",
+ "//utils",
+ ],
+)
+
+cc_binary(
+ name = "graph_lenet",
+ srcs = ["graph_lenet.cpp"],
+ copts = ["-march=armv8.2-a+fp16"],
+ linkstatic = False,
+ deps = [
+ "//:arm_compute",
+ "//:arm_compute_graph",
+ "//include",
+ "//utils",
+ ],
+)
+
+cc_binary(
+ name = "graph_mobilenet",
+ srcs = ["graph_mobilenet.cpp"],
+ copts = ["-march=armv8.2-a+fp16"],
+ linkstatic = False,
+ deps = [
+ "//:arm_compute",
+ "//:arm_compute_graph",
+ "//include",
+ "//utils",
+ ],
+)
+
+cc_binary(
+ name = "graph_mobilenet_v2",
+ srcs = ["graph_mobilenet_v2.cpp"],
+ copts = ["-march=armv8.2-a+fp16"],
+ linkstatic = False,
+ deps = [
+ "//:arm_compute",
+ "//:arm_compute_graph",
+ "//include",
+ "//utils",
+ ],
+)
+
+cc_binary(
+ name = "graph_resnet12",
+ srcs = ["graph_resnet12.cpp"],
+ copts = ["-march=armv8.2-a+fp16"],
+ linkstatic = False,
+ deps = [
+ "//:arm_compute",
+ "//:arm_compute_graph",
+ "//include",
+ "//utils",
+ ],
+)
+
+cc_binary(
+ name = "graph_resnet50",
+ srcs = ["graph_resnet50.cpp"],
+ copts = ["-march=armv8.2-a+fp16"],
+ linkstatic = False,
+ deps = [
+ "//:arm_compute",
+ "//:arm_compute_graph",
+ "//include",
+ "//utils",
+ ],
+)
+
+cc_binary(
+ name = "graph_resnet_v2_50",
+ srcs = ["graph_resnet_v2_50.cpp"],
+ copts = ["-march=armv8.2-a+fp16"],
+ linkstatic = False,
+ deps = [
+ "//:arm_compute",
+ "//:arm_compute_graph",
+ "//include",
+ "//utils",
+ ],
+)
+
+cc_binary(
+ name = "graph_resnext50",
+ srcs = ["graph_resnext50.cpp"],
+ copts = ["-march=armv8.2-a+fp16"],
+ linkstatic = False,
+ deps = [
+ "//:arm_compute",
+ "//:arm_compute_graph",
+ "//include",
+ "//utils",
+ ],
+)
+
+cc_binary(
+ name = "graph_shufflenet",
+ srcs = ["graph_shufflenet.cpp"],
+ copts = ["-march=armv8.2-a+fp16"],
+ linkstatic = False,
+ deps = [
+ "//:arm_compute",
+ "//:arm_compute_graph",
+ "//include",
+ "//utils",
+ ],
+)
+
+cc_binary(
+ name = "graph_squeezenet",
+ srcs = ["graph_squeezenet.cpp"],
+ copts = ["-march=armv8.2-a+fp16"],
+ linkstatic = False,
+ deps = [
+ "//:arm_compute",
+ "//:arm_compute_graph",
+ "//include",
+ "//utils",
+ ],
+)
+
+cc_binary(
+ name = "graph_squeezenet_v1_1",
+ srcs = ["graph_squeezenet_v1_1.cpp"],
+ copts = ["-march=armv8.2-a+fp16"],
+ linkstatic = False,
+ deps = [
+ "//:arm_compute",
+ "//:arm_compute_graph",
+ "//include",
+ "//utils",
+ ],
+)
+
+cc_binary(
+ name = "graph_srcnn955",
+ srcs = ["graph_srcnn955.cpp"],
+ copts = ["-march=armv8.2-a+fp16"],
+ linkstatic = False,
+ deps = [
+ "//:arm_compute",
+ "//:arm_compute_graph",
+ "//include",
+ "//utils",
+ ],
+)
+
+cc_binary(
+ name = "graph_ssd_mobilenet",
+ srcs = ["graph_ssd_mobilenet.cpp"],
+ copts = ["-march=armv8.2-a+fp16"],
+ linkstatic = False,
+ deps = [
+ "//:arm_compute",
+ "//:arm_compute_graph",
+ "//include",
+ "//utils",
+ ],
+)
+
+cc_binary(
+ name = "graph_vgg16",
+ srcs = ["graph_vgg16.cpp"],
+ copts = ["-march=armv8.2-a+fp16"],
+ linkstatic = False,
+ deps = [
+ "//:arm_compute",
+ "//:arm_compute_graph",
+ "//include",
+ "//utils",
+ ],
+)
+
+cc_binary(
+ name = "graph_vgg19",
+ srcs = ["graph_vgg19.cpp"],
+ copts = ["-march=armv8.2-a+fp16"],
+ linkstatic = False,
+ deps = [
+ "//:arm_compute",
+ "//:arm_compute_graph",
+ "//include",
+ "//utils",
+ ],
+)
+
+cc_binary(
+ name = "graph_vgg_vdsr",
+ srcs = ["graph_vgg_vdsr.cpp"],
+ copts = ["-march=armv8.2-a+fp16"],
+ linkstatic = False,
+ deps = [
+ "//:arm_compute",
+ "//:arm_compute_graph",
+ "//include",
+ "//utils",
+ ],
+)
+
+cc_binary(
+ name = "graph_yolov3",
+ srcs = ["graph_yolov3.cpp"],
+ copts = ["-march=armv8.2-a+fp16"],
+ linkstatic = False,
+ deps = [
+ "//:arm_compute",
+ "//:arm_compute_graph",
+ "//include",
+ "//utils",
+ ],
+)
diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt
new file mode 100644
index 0000000000..139b968e4e
--- /dev/null
+++ b/examples/CMakeLists.txt
@@ -0,0 +1,53 @@
+# Copyright (c) 2023 Arm Limited.
+#
+# SPDX-License-Identifier: MIT
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to
+# deal in the Software without restriction, including without limitation the
+# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+# sell copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+set(EXAMPLE_GRAPH_NAMES
+ graph_alexnet
+ graph_deepspeech_v0_4_1
+ graph_edsr
+ graph_googlenet
+ graph_inception_resnet_v1
+ graph_inception_resnet_v2
+ graph_inception_v3
+ graph_inception_v4
+ graph_lenet
+ graph_mobilenet_v2
+ graph_mobilenet
+ graph_resnet_v2_50
+ graph_resnet12
+ graph_resnet50
+ graph_resnext50
+ graph_shufflenet
+ graph_squeezenet_v1_1
+ graph_squeezenet
+ graph_srcnn955
+ graph_ssd_mobilenet
+ graph_vgg_vdsr
+ graph_vgg16
+ graph_vgg19
+ graph_yolov3
+ PARENT_SCOPE)
+
+set(EXAMPLE_NEON_NAMES
+ neon_cnn neon_copy_objects neon_gemm_qasymm8 neon_permute neon_scale
+ neon_sgemm
+ PARENT_SCOPE)
diff --git a/include/BUILD.bazel b/include/BUILD.bazel
new file mode 100644
index 0000000000..27f9ee7a1b
--- /dev/null
+++ b/include/BUILD.bazel
@@ -0,0 +1,32 @@
+# Copyright (c) 2023 Arm Limited.
+#
+# SPDX-License-Identifier: MIT
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to
+# deal in the Software without restriction, including without limitation the
+# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+# sell copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+cc_library(
+ name = "include",
+ hdrs = glob([
+ "**/*.h",
+ "**/*.hpp",
+ ]),
+ # includes = ["*"],
+ strip_include_prefix = ".",
+ visibility = ["//visibility:public"],
+)
diff --git a/scripts/BUILD.bazel b/scripts/BUILD.bazel
new file mode 100644
index 0000000000..06ef17beb2
--- /dev/null
+++ b/scripts/BUILD.bazel
@@ -0,0 +1,28 @@
+# Copyright (c) 2023 Arm Limited.
+#
+# SPDX-License-Identifier: MIT
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to
+# deal in the Software without restriction, including without limitation the
+# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+# sell copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+py_binary(
+ name = "print_version_file",
+ srcs = ["print_version_file.py"],
+ main = "print_version_file.py",
+ visibility = ["//:__pkg__"],
+)
diff --git a/scripts/generate_build_files.py b/scripts/generate_build_files.py
new file mode 100644
index 0000000000..8f8ed0e62a
--- /dev/null
+++ b/scripts/generate_build_files.py
@@ -0,0 +1,296 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2023 Arm Limited.
+#
+# SPDX-License-Identifier: MIT
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to
+# deal in the Software without restriction, including without limitation the
+# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+# sell copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+"""Generates build files for either bazel or cmake experimental builds using filelist.json
+Usage
+ python scripts/generate_build_files.py --bazel
+ python scripts/generate_build_files.py --cmake
+
+Writes generated file to the bazel BUILD file located under src/ if using --bazel flag.
+Writes generated file to the CMake CMakeLists.txt file located under src/ if using --cmake flag.
+"""
+
+import argparse
+import json
+import glob
+
+
+def get_operator_backend_files(filelist, operators, backend='', techs=[], attrs=[]):
+ files = {"common": []}
+
+ # Early return if filelist is empty
+ if backend not in filelist:
+ return files
+
+ # Iterate over operators and create the file lists to compiler
+ for operator in operators:
+ if operator in filelist[backend]['operators']:
+ files['common'] += filelist[backend]['operators'][operator]["files"]["common"]
+ for tech in techs:
+ if tech in filelist[backend]['operators'][operator]["files"]:
+ # Add tech as a key to dictionary if not there
+ if tech not in files:
+ files[tech] = []
+
+ # Add tech files to the tech file list
+ tech_files = filelist[backend]['operators'][operator]["files"][tech]
+ files[tech] += tech_files.get('common', [])
+ for attr in attrs:
+ files[tech] += tech_files.get(attr, [])
+
+ # Remove duplicates if they exist
+ return {k: list(set(v)) for k, v in files.items()}
+
+
+def collect_operators(filelist, operators, backend=''):
+ ops = set()
+ for operator in operators:
+ if operator in filelist[backend]['operators']:
+ ops.add(operator)
+ if 'deps' in filelist[backend]['operators'][operator]:
+ ops.update(filelist[backend]['operators'][operator]['deps'])
+ else:
+ print("Operator {0} is unsupported on {1} backend!".format(
+ operator, backend))
+
+ return ops
+
+
+def resolve_operator_dependencies(filelist, operators, backend=''):
+ resolved_operators = collect_operators(filelist, operators, backend)
+
+ are_ops_resolved = False
+ while not are_ops_resolved:
+ resolution_pass = collect_operators(
+ filelist, resolved_operators, backend)
+ if len(resolution_pass) != len(resolved_operators):
+ resolved_operators.update(resolution_pass)
+ else:
+ are_ops_resolved = True
+
+ return resolved_operators
+
+def get_template_header():
+ return """# Copyright (c) 2023 Arm Limited.
+#
+# SPDX-License-Identifier: MIT
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to
+# deal in the Software without restriction, including without limitation the
+# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+# sell copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE."""
+
+def build_from_template_bazel(srcs_graph, srcs_sve, srcs_sve2, srcs_core):
+
+ line_separator = '",\n\t"'
+
+ template = f"""{get_template_header()}
+
+filegroup(
+ name = "arm_compute_graph_srcs",
+ srcs = ["{line_separator.join(srcs_graph)}"] +
+ glob(["**/*.h",
+ "**/*.hpp",
+ "**/*.inl"]),
+ visibility = ["//visibility:public"]
+)
+
+filegroup(
+ name = "arm_compute_sve2_srcs",
+ srcs = ["{line_separator.join(srcs_sve2)}"] +
+ glob(["**/*.h",
+ "**/*.hpp",
+ "**/*.inl"]),
+ visibility = ["//visibility:public"]
+)
+
+filegroup(
+ name = "arm_compute_sve_srcs",
+ srcs = ["{line_separator.join(srcs_sve)}"] +
+ glob(["**/*.h",
+ "**/*.hpp",
+ "**/*.inl"]),
+ visibility = ["//visibility:public"]
+)
+
+filegroup(
+ name = "arm_compute_srcs",
+ srcs = ["{line_separator.join(srcs_core)}"] +
+ glob(["**/*.h",
+ "**/*.hpp",
+ "**/*.inl"]),
+ visibility = ["//visibility:public"]
+)
+"""
+
+ return template
+
+
+def build_from_template_cmake(srcs_graph, srcs_sve, srcs_sve2, srcs_core):
+
+ line_separator = '\n\t'
+
+ template = f"""{get_template_header()}
+
+target_sources(
+ arm_compute_graph
+ PRIVATE
+ {line_separator.join(srcs_graph)}
+)
+
+target_sources(
+ arm_compute_sve
+ PRIVATE
+ {line_separator.join(srcs_sve)}
+)
+
+target_sources(
+ arm_compute_sve2
+ PRIVATE
+ {line_separator.join(srcs_sve2)}
+)
+
+target_sources(
+ arm_compute_core
+ PRIVATE
+ {line_separator.join(srcs_core)}
+)
+ """
+ return template
+
+
+def gather_sources():
+
+ # Source file list
+ with open("filelist.json") as fp:
+ filelist = json.load(fp)
+
+ # Common backend files
+ lib_files = filelist['common']
+
+ # TODO Add Fixed format GEMM kernels ?
+
+ # Logging files
+ lib_files += filelist['logging']
+
+ # C API files
+ lib_files += filelist['c_api']['common']
+ lib_files += filelist['c_api']['operators']
+
+ # Scheduler infrastructure
+ lib_files += filelist['scheduler']['single']
+ # Add both cppthreads and omp sources for now
+ lib_files += filelist['scheduler']['threads']
+ lib_files += filelist['scheduler']['omp']
+
+ # Graph files
+ graph_files = glob.glob('src/graph/*.cpp')
+ graph_files += glob.glob('src/graph/*/*.cpp')
+
+ lib_files_sve = []
+ lib_files_sve2 = []
+
+ # -------------------------------------
+ # NEON files
+ lib_files += filelist['cpu']['common']
+ simd = ['neon', 'sve', 'sve2']
+
+ # Get attributes
+ data_types = ["qasymm8", "qasymm8_signed", "qsymm16",
+ "fp16", "fp32", "integer"] # Are all needed?
+ data_layouts = ["nhwc", "nchw"] # Are both needed?
+ experimental_fixed_format_kernels = ["experimental_fixed_format_kernels"]
+ attrs = data_types + data_layouts + \
+ experimental_fixed_format_kernels + ["estate64"]
+
+ # Setup data-type and data-layout files to include
+ cpu_operators = filelist['cpu']['operators'].keys()
+ cpu_ops_to_build = resolve_operator_dependencies(
+ filelist, cpu_operators, 'cpu')
+ cpu_files = get_operator_backend_files(
+ filelist, cpu_ops_to_build, 'cpu', simd, attrs)
+
+ # Shared among ALL CPU files
+ lib_files += cpu_files.get('common', [])
+
+ # Arm® Neon™ specific files
+ lib_files += cpu_files.get('neon', [])
+
+ # SVE files only
+ lib_files_sve = cpu_files.get('sve', [])
+
+ # SVE2 files only
+ lib_files_sve2 = cpu_files.get('sve2', [])
+
+ graph_files += glob.glob('src/graph/backends/NEON/*.cpp')
+
+ # -------------------------------------
+
+ graph_files = sorted([path.replace("src/", "") for path in graph_files])
+ lib_files_sve = sorted([path.replace("src/", "") for path in lib_files_sve])
+ lib_files_sve2 = sorted([path.replace("src/", "") for path in lib_files_sve2])
+ lib_files = sorted([path.replace("src/", "") for path in lib_files])
+
+ return graph_files, lib_files_sve, lib_files_sve2, lib_files
+
+
+if "__main__" in __name__:
+
+ parser = argparse.ArgumentParser()
+ parser.add_argument("--bazel", action="store_true")
+ parser.add_argument("--cmake", action="store_true")
+ args = parser.parse_args()
+
+ graph_files, lib_files_sve, lib_files_sve2, lib_files = gather_sources()
+
+ if args.bazel:
+ bazel_build_string = build_from_template_bazel(
+ graph_files, lib_files_sve, lib_files_sve2, lib_files)
+ print(bazel_build_string)
+ with open("src/BUILD.bazel", "w") as fp:
+ fp.write(bazel_build_string)
+
+ if args.cmake:
+ cmake_build_string = build_from_template_cmake(
+ graph_files, lib_files_sve, lib_files_sve2, lib_files)
+ print(cmake_build_string)
+ with open("src/CMakeLists.txt", "w") as fp:
+ fp.write(cmake_build_string)
+
+ if not args.cmake and not args.bazel:
+ print("Supply either --bazel or --cmake flag to generate build files for corresponding build")
diff --git a/scripts/print_version_file.py b/scripts/print_version_file.py
new file mode 100644
index 0000000000..6c50216f8b
--- /dev/null
+++ b/scripts/print_version_file.py
@@ -0,0 +1,36 @@
+# Copyright (c) 2023 Arm Limited.
+#
+# SPDX-License-Identifier: MIT
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to
+# deal in the Software without restriction, including without limitation the
+# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+# sell copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+import sys
+import os
+
+VERSION = "v0.0-unreleased"
+
+
+def make_version_file(build_args, git_hash):
+ build_info = "\"arm_compute_version=%s Build options: %s Git hash=%s\"" % (
+ VERSION, build_args, git_hash.strip())
+ return build_info
+
+
+if __name__ == "__main__":
+ print(make_version_file(sys.argv[1], sys.argv[2]))
diff --git a/src/BUILD.bazel b/src/BUILD.bazel
new file mode 100644
index 0000000000..93f7d1acb9
--- /dev/null
+++ b/src/BUILD.bazel
@@ -0,0 +1,968 @@
+# Copyright (c) 2023 Arm Limited.
+#
+# SPDX-License-Identifier: MIT
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to
+# deal in the Software without restriction, including without limitation the
+# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+# sell copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+filegroup(
+ name = "arm_compute_graph_srcs",
+ srcs = ["graph/DataLayerVisitor.cpp",
+ "graph/Graph.cpp",
+ "graph/GraphBuilder.cpp",
+ "graph/GraphContext.cpp",
+ "graph/GraphManager.cpp",
+ "graph/INode.cpp",
+ "graph/INodeVisitor.cpp",
+ "graph/PassManager.cpp",
+ "graph/Tensor.cpp",
+ "graph/TypeLoader.cpp",
+ "graph/Utils.cpp",
+ "graph/Workload.cpp",
+ "graph/algorithms/TopologicalSort.cpp",
+ "graph/backends/BackendRegistry.cpp",
+ "graph/backends/NEON/NEDeviceBackend.cpp",
+ "graph/backends/NEON/NEFunctionFactory.cpp",
+ "graph/backends/NEON/NENodeValidator.cpp",
+ "graph/backends/NEON/NESubTensorHandle.cpp",
+ "graph/backends/NEON/NETensorHandle.cpp",
+ "graph/detail/CrossLayerMemoryManagerHelpers.cpp",
+ "graph/detail/ExecutionHelpers.cpp",
+ "graph/frontend/Stream.cpp",
+ "graph/frontend/SubStream.cpp",
+ "graph/mutators/DepthConcatSubTensorMutator.cpp",
+ "graph/mutators/GroupedConvolutionMutator.cpp",
+ "graph/mutators/InPlaceOperationMutator.cpp",
+ "graph/mutators/MutatorUtils.cpp",
+ "graph/mutators/NodeExecutionMethodMutator.cpp",
+ "graph/mutators/NodeFusionMutator.cpp",
+ "graph/mutators/SplitLayerSubTensorMutator.cpp",
+ "graph/mutators/SyntheticDataTypeMutator.cpp",
+ "graph/nodes/ActivationLayerNode.cpp",
+ "graph/nodes/ArgMinMaxLayerNode.cpp",
+ "graph/nodes/BatchNormalizationLayerNode.cpp",
+ "graph/nodes/BoundingBoxTransformLayerNode.cpp",
+ "graph/nodes/ChannelShuffleLayerNode.cpp",
+ "graph/nodes/ConcatenateLayerNode.cpp",
+ "graph/nodes/ConstNode.cpp",
+ "graph/nodes/ConvolutionLayerNode.cpp",
+ "graph/nodes/DeconvolutionLayerNode.cpp",
+ "graph/nodes/DepthToSpaceLayerNode.cpp",
+ "graph/nodes/DepthwiseConvolutionLayerNode.cpp",
+ "graph/nodes/DequantizationLayerNode.cpp",
+ "graph/nodes/DetectionOutputLayerNode.cpp",
+ "graph/nodes/DetectionPostProcessLayerNode.cpp",
+ "graph/nodes/DummyNode.cpp",
+ "graph/nodes/EltwiseLayerNode.cpp",
+ "graph/nodes/FlattenLayerNode.cpp",
+ "graph/nodes/FullyConnectedLayer.cpp",
+ "graph/nodes/FusedConvolutionBatchNormalizationNode.cpp",
+ "graph/nodes/FusedConvolutionBatchNormalizationWithPostOpsNode.cpp",
+ "graph/nodes/FusedConvolutionWithPostOpNode.cpp",
+ "graph/nodes/FusedDepthwiseConvolutionBatchNormalizationNode.cpp",
+ "graph/nodes/GenerateProposalsLayerNode.cpp",
+ "graph/nodes/InputNode.cpp",
+ "graph/nodes/L2NormalizeLayerNode.cpp",
+ "graph/nodes/NormalizationLayerNode.cpp",
+ "graph/nodes/NormalizePlanarYUVLayerNode.cpp",
+ "graph/nodes/OutputNode.cpp",
+ "graph/nodes/PReluLayerNode.cpp",
+ "graph/nodes/PadLayerNode.cpp",
+ "graph/nodes/PermuteLayerNode.cpp",
+ "graph/nodes/PoolingLayerNode.cpp",
+ "graph/nodes/PrintLayerNode.cpp",
+ "graph/nodes/PriorBoxLayerNode.cpp",
+ "graph/nodes/QuantizationLayerNode.cpp",
+ "graph/nodes/ROIAlignLayerNode.cpp",
+ "graph/nodes/ReductionLayerNode.cpp",
+ "graph/nodes/ReorgLayerNode.cpp",
+ "graph/nodes/ReshapeLayer.cpp",
+ "graph/nodes/ResizeLayerNode.cpp",
+ "graph/nodes/SliceLayerNode.cpp",
+ "graph/nodes/SoftmaxLayerNode.cpp",
+ "graph/nodes/SplitLayerNode.cpp",
+ "graph/nodes/StackLayerNode.cpp",
+ "graph/nodes/StridedSliceLayerNode.cpp",
+ "graph/printers/DotGraphPrinter.cpp"] +
+ glob(["**/*.h",
+ "**/*.hpp",
+ "**/*.inl"]),
+ visibility = ["//visibility:public"]
+)
+
+filegroup(
+ name = "arm_compute_sve2_srcs",
+ srcs = ["cpu/kernels/activation/generic/sve2/qasymm8.cpp",
+ "cpu/kernels/activation/generic/sve2/qasymm8_signed.cpp",
+ "cpu/kernels/activation/generic/sve2/qsymm16.cpp",
+ "cpu/kernels/add/generic/sve2/qasymm8.cpp",
+ "cpu/kernels/add/generic/sve2/qasymm8_signed.cpp",
+ "cpu/kernels/add/generic/sve2/qsymm16.cpp",
+ "cpu/kernels/elementwise_binary/generic/sve2/qasymm8.cpp",
+ "cpu/kernels/elementwise_binary/generic/sve2/qasymm8_signed.cpp",
+ "cpu/kernels/softmax/generic/sve2/impl.cpp",
+ "cpu/kernels/softmax/generic/sve2/qasymm8.cpp",
+ "cpu/kernels/softmax/generic/sve2/qasymm8_signed.cpp"] +
+ glob(["**/*.h",
+ "**/*.hpp",
+ "**/*.inl"]),
+ visibility = ["//visibility:public"]
+)
+
+filegroup(
+ name = "arm_compute_sve_srcs",
+ srcs = ["core/NEON/kernels/arm_conv/depthwise/interleaves/sve_8b_mla.cpp",
+ "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_fp32_nhwc_3x3_s1_output2x2_mla_depthfirst/generic_direct.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/sme2_fp32_nhwc_3x3_s1_output2x2_mla_depthfirst/generic_indirect.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/sme2_fp32_nhwc_3x3_s1_output3x3_mla_depthfirst/generic_direct.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/sme2_fp32_nhwc_3x3_s1_output3x3_mla_depthfirst/generic_indirect.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/sme2_fp32_nhwc_3x3_s1_output4x4_mla_depthfirst/generic_direct.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/sme2_fp32_nhwc_3x3_s1_output4x4_mla_depthfirst/generic_indirect.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/sme2_fp32_nhwc_3x3_s2_output2x2_mla_depthfirst/generic_direct.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/sme2_fp32_nhwc_3x3_s2_output2x2_mla_depthfirst/generic_indirect.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/sme2_fp32_planar_3x3_s1_4rows_mla_za/generic.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/sme2_fp32_planar_3x3_s2_4rows_mla_za/generic.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/sme2_fp32_planar_5x5_s1_4rows_mla_za/generic.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/sme2_fp32_planar_5x5_s2_4rows_mla_za/generic.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/sme2_fp32bf16fp32_planar_3x3_s1_4rows_dot_za/generic.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/sme2_fp32bf16fp32_planar_3x3_s2_4rows_dot_za/generic.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/sme2_fp32bf16fp32_planar_5x5_s1_4rows_dot_za/generic.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/sme2_fp32bf16fp32_planar_5x5_s2_4rows_dot_za/generic.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/sme2_s8q_planar_3x3_s1_4rows_dot_za/generic.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/sme2_s8q_planar_3x3_s2_2rows_dot_za/generic.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/sme2_s8q_planar_3x3_s2_4rows_dot_za/generic.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/sme2_s8q_planar_5x5_s1_4rows_dot_za/generic.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/sme2_s8q_planar_5x5_s2_4rows_dot_za/generic.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/sme2_u8q_planar_3x3_s1_4rows_dot_za/generic.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/sme2_u8q_planar_3x3_s2_2rows_dot_za/generic.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/sme2_u8q_planar_3x3_s2_4rows_dot_za/generic.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/sme2_u8q_planar_5x5_s1_4rows_dot_za/generic.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/sme2_u8q_planar_5x5_s2_4rows_dot_za/generic.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/sme2_u8s8u8q_planar_3x3_s1_4rows_dot_za/generic.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/sme2_u8s8u8q_planar_3x3_s2_2rows_dot_za/generic.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/sme2_u8s8u8q_planar_3x3_s2_4rows_dot_za/generic.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/sme2_u8s8u8q_planar_5x5_s1_4rows_dot_za/generic.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/sme2_u8s8u8q_planar_5x5_s2_4rows_dot_za/generic.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/sve_fp16_nhwc_3x3_s1_output2x2_mla_depthfirst/generic_direct.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/sve_fp16_nhwc_3x3_s1_output2x2_mla_depthfirst/generic_indirect.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/sve_fp16_nhwc_3x3_s1_output3x3_mla_depthfirst/generic_direct.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/sve_fp16_nhwc_3x3_s1_output3x3_mla_depthfirst/generic_indirect.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/sve_fp16_nhwc_3x3_s1_output4x4_mla_depthfirst/generic_direct.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/sve_fp16_nhwc_3x3_s1_output4x4_mla_depthfirst/generic_indirect.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/sve_fp16_nhwc_3x3_s2_output2x2_mla_depthfirst/generic_direct.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/sve_fp16_nhwc_3x3_s2_output2x2_mla_depthfirst/generic_indirect.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/sve_fp16_nhwc_5x5_s1_output2x2_mla_depthfirst/generic_direct.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/sve_fp16_nhwc_5x5_s1_output2x2_mla_depthfirst/generic_indirect.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/sve_fp32_nhwc_3x3_s1_output2x2_mla_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/sve_fp32_nhwc_3x3_s1_output2x2_mla_depthfirst/generic_direct.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/sve_fp32_nhwc_3x3_s1_output2x2_mla_depthfirst/generic_indirect.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/sve_fp32_nhwc_3x3_s1_output2x2_mla_depthfirst_strided/generic.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/sve_fp32_nhwc_3x3_s1_output3x3_mla_depthfirst/generic_direct.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/sve_fp32_nhwc_3x3_s1_output3x3_mla_depthfirst/generic_indirect.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/sve_fp32_nhwc_3x3_s1_output4x4_mla_depthfirst/generic_direct.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/sve_fp32_nhwc_3x3_s1_output4x4_mla_depthfirst/generic_indirect.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/sve_fp32_nhwc_3x3_s2_output2x2_mla_depthfirst/generic_direct.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/sve_fp32_nhwc_3x3_s2_output2x2_mla_depthfirst/generic_indirect.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/sve_fp32_nhwc_5x5_s1_output2x2_mla_depthfirst/generic_direct.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/sve_fp32_nhwc_5x5_s1_output2x2_mla_depthfirst/generic_indirect.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/sve_fp32_nhwc_generic_output9_mla_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/sve_fp32_packed_to_nhwc_3x3_s2_with_multiplier_output3x3_mla_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/sve_fp32_packed_to_nhwc_5x5_s1_with_multiplier_output2x4_mla_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/sve_fp32_packed_to_nhwc_generic_with_multiplier_output2x8_mla_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/sve_s8q_nhwc_3x3_s1_output2x2_dot_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/sve_s8q_nhwc_3x3_s1_output2x2_mla_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/sve_s8q_nhwc_3x3_s2_output2x2_mla_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/sve_s8q_nhwc_5x5_s1_output2x2_mla_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/sve_s8q_packed_to_nhwc_3x3_s2_with_multiplier_output2x4_dot_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/sve_s8q_packed_to_nhwc_5x5_s1_with_multiplier_output4x2_dot_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/sve_s8qs_nhwc_3x3_s1_output2x2_dot_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/sve_u8q_nhwc_3x3_s1_output2x2_dot_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/sve_u8q_nhwc_3x3_s1_output2x2_mla_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/sve_u8q_nhwc_3x3_s2_output2x2_mla_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/sve_u8q_nhwc_5x5_s1_output2x2_mla_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/sve_u8q_packed_to_nhwc_3x3_s2_with_multiplier_output2x4_dot_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/sve_u8q_packed_to_nhwc_5x5_s1_with_multiplier_output4x2_dot_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/sve_u8s8u8q_nhwc_3x3_s1_output2x2_mla_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/sve_u8s8u8q_nhwc_3x3_s2_output2x2_mla_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/sve_u8s8u8q_nhwc_5x5_s1_output2x2_mla_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/pooling/kernels/sme_fp16_nhwc_avg_3x3_s1_output2x2_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/pooling/kernels/sme_fp16_nhwc_avg_generic_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/pooling/kernels/sme_fp16_nhwc_max_2x2_s1_output2x2_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/pooling/kernels/sme_fp16_nhwc_max_generic_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/pooling/kernels/sme_fp32_nhwc_avg_3x3_s1_output2x2_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/pooling/kernels/sme_fp32_nhwc_avg_generic_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/pooling/kernels/sme_fp32_nhwc_max_2x2_s1_output2x2_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/pooling/kernels/sme_fp32_nhwc_max_generic_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/pooling/kernels/sme_s8_nhwc_avg_generic_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/pooling/kernels/sme_s8_nhwc_max_2x2_s1_output2x2_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/pooling/kernels/sme_s8_nhwc_max_generic_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/pooling/kernels/sme_s8q_nhwc_avg_generic_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/pooling/kernels/sme_s8q_nhwc_max_generic_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/pooling/kernels/sme_u8_nhwc_avg_generic_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/pooling/kernels/sme_u8_nhwc_max_2x2_s1_output2x2_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/pooling/kernels/sme_u8_nhwc_max_generic_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/pooling/kernels/sme_u8q_nhwc_avg_generic_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/pooling/kernels/sme_u8q_nhwc_max_generic_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/pooling/kernels/sve_fp16_nhwc_avg_3x3_s1_output2x2_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/pooling/kernels/sve_fp16_nhwc_avg_generic_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/pooling/kernels/sve_fp16_nhwc_max_2x2_s1_output2x2_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/pooling/kernels/sve_fp16_nhwc_max_generic_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/pooling/kernels/sve_fp32_nhwc_avg_3x3_s1_output2x2_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/pooling/kernels/sve_fp32_nhwc_avg_generic_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/pooling/kernels/sve_fp32_nhwc_max_2x2_s1_output2x2_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/pooling/kernels/sve_fp32_nhwc_max_generic_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/pooling/kernels/sve_s8_nhwc_avg_generic_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/pooling/kernels/sve_s8_nhwc_max_2x2_s1_output2x2_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/pooling/kernels/sve_s8_nhwc_max_generic_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/pooling/kernels/sve_s8q_nhwc_avg_generic_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/pooling/kernels/sve_s8q_nhwc_max_generic_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/pooling/kernels/sve_u8_nhwc_avg_generic_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/pooling/kernels/sve_u8_nhwc_max_2x2_s1_output2x2_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/pooling/kernels/sve_u8_nhwc_max_generic_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/pooling/kernels/sve_u8q_nhwc_avg_generic_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/pooling/kernels/sve_u8q_nhwc_max_generic_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_gemm/interleave_indirect-sve.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/sme2_gemv_bf16fp32_dot_16VL/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/sme2_gemv_fp32_mla_16VL/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/sme2_gemv_fp32bf16fp32_dot_16VL/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/sme2_gemv_s8qa_dot_16VL/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/sme2_gemv_u8qa_dot_16VL/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/sme2_interleaved_nomerge_bf16fp32_mopa_1VLx4VL/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/sme2_interleaved_nomerge_bf16fp32_mopa_2VLx2VL/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/sme2_interleaved_nomerge_bf16fp32_mopa_4VLx1VL/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/sme2_interleaved_nomerge_fp32_mopa_1VLx4VL/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/sme2_interleaved_nomerge_fp32_mopa_2VLx2VL/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/sme2_interleaved_nomerge_fp32_mopa_4VLx1VL/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/sme2_interleaved_nomerge_s8q_mopa_1VLx4VL/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/sme2_interleaved_nomerge_s8q_mopa_2VLx2VL/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/sme2_interleaved_nomerge_s8q_mopa_4VLx1VL/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/sme2_interleaved_nomerge_s8s32_mopa_1VLx4VL/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/sme2_interleaved_nomerge_s8s32_mopa_2VLx2VL/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/sme2_interleaved_nomerge_s8s32_mopa_4VLx1VL/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/sme2_interleaved_nomerge_u8q_mopa_1VLx4VL/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/sme2_interleaved_nomerge_u8q_mopa_2VLx2VL/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/sme2_interleaved_nomerge_u8q_mopa_4VLx1VL/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/sve_ffhybrid_bf16fp32_mmla_6x4VL/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/sve_ffhybrid_fp16_mla_6x4VL/a64fx.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/sve_ffhybrid_fp16_mla_6x4VL/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/sve_ffhybrid_fp32_mla_6x4VL/a64fx.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/sve_ffhybrid_fp32_mla_6x4VL/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/sve_ffhybrid_fp32bf16fp32_mmla_4x6VL/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/sve_ffinterleaved_bf16fp32_mmla_8x3VL/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/sve_ffinterleaved_fp16_mla_8x3VL/a64fx.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/sve_ffinterleaved_fp16_mla_8x3VL/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/sve_ffinterleaved_fp32_mla_8x3VL/a64fx.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/sve_ffinterleaved_fp32_mla_8x3VL/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/sve_hybrid_bf16fp32_dot_6x4VL/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/sve_hybrid_bf16fp32_mmla_6x4VL/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/sve_hybrid_fp16_mla_6x4VL/a64fx.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/sve_hybrid_fp16_mla_6x4VL/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/sve_hybrid_fp32_mla_6x4VL/a64fx.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/sve_hybrid_fp32_mla_6x4VL/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/sve_hybrid_fp32_mla_8x1VL/a64fx.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/sve_hybrid_fp32_mla_8x1VL/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/sve_hybrid_fp32bf16fp32_mmla_4x6VL/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/sve_hybrid_fp32bf16fp32_mmla_6x4VL/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/sve_hybrid_s8qa_dot_4x4VL/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/sve_hybrid_s8qa_mmla_4x4VL/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/sve_hybrid_s8qs_dot_6x4VL/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/sve_hybrid_s8qs_mmla_6x4VL/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/sve_hybrid_s8s32_dot_6x4VL/a64fx.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/sve_hybrid_s8s32_dot_6x4VL/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/sve_hybrid_s8s32_mmla_6x4VL/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/sve_hybrid_u8qa_dot_4x4VL/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/sve_hybrid_u8qa_mmla_4x4VL/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/sve_hybrid_u8u32_dot_6x4VL/a64fx.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/sve_hybrid_u8u32_dot_6x4VL/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/sve_hybrid_u8u32_mmla_6x4VL/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/sve_interleaved_bf16fp32_dot_8x3VL/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/sve_interleaved_bf16fp32_mmla_8x3VL/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/sve_interleaved_fp16_mla_8x3VL/a64fx.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/sve_interleaved_fp16_mla_8x3VL/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/sve_interleaved_fp32_mla_8x3VL/a64fx.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/sve_interleaved_fp32_mla_8x3VL/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/sve_interleaved_fp32_mmla_8x3VL/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/sve_interleaved_s8s32_dot_8x3VL/a64fx.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/sve_interleaved_s8s32_dot_8x3VL/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/sve_interleaved_s8s32_mmla_8x3VL/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/sve_interleaved_u8u32_dot_8x3VL/a64fx.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/sve_interleaved_u8u32_dot_8x3VL/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/sve_interleaved_u8u32_mmla_8x3VL/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/sve_smallK_hybrid_fp32_mla_8x1VL/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/sve_smallK_hybrid_s8s32_dot_8x1VL/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/sve_smallK_hybrid_u8u32_dot_8x1VL/generic.cpp",
+ "core/NEON/kernels/arm_gemm/mergeresults-sve.cpp",
+ "core/NEON/kernels/arm_gemm/misc-sve.cpp",
+ "core/NEON/kernels/arm_gemm/transform-sve.cpp",
+ "core/NEON/kernels/batchnormalization/impl/SVE/fp16.cpp",
+ "core/NEON/kernels/batchnormalization/impl/SVE/fp32.cpp",
+ "core/NEON/kernels/convolution/winograd/input_transforms/sme_fp32_mla_6x6.cpp",
+ "core/NEON/kernels/convolution/winograd/input_transforms/sve_fp32_6x6.cpp",
+ "core/NEON/kernels/convolution/winograd/output_transforms/sme_fp32_mopa_4x4_3x3.cpp",
+ "cpu/kernels/activation/generic/sve/fp16.cpp",
+ "cpu/kernels/activation/generic/sve/fp32.cpp",
+ "cpu/kernels/activation/generic/sve/lut.cpp",
+ "cpu/kernels/add/generic/sve/fp16.cpp",
+ "cpu/kernels/add/generic/sve/fp32.cpp",
+ "cpu/kernels/add/generic/sve/impl.cpp",
+ "cpu/kernels/add/generic/sve/integer.cpp",
+ "cpu/kernels/elementwise_binary/generic/sve/fp16.cpp",
+ "cpu/kernels/elementwise_binary/generic/sve/fp32.cpp",
+ "cpu/kernels/elementwise_binary/generic/sve/impl.cpp",
+ "cpu/kernels/elementwise_binary/generic/sve/integer.cpp",
+ "cpu/kernels/elementwise_unary/generic/sve/fp16.cpp",
+ "cpu/kernels/elementwise_unary/generic/sve/fp32.cpp",
+ "cpu/kernels/elementwise_unary/generic/sve/impl.cpp",
+ "cpu/kernels/elementwise_unary/generic/sve/integer.cpp",
+ "cpu/kernels/scale/sve/fp16.cpp",
+ "cpu/kernels/scale/sve/fp32.cpp",
+ "cpu/kernels/scale/sve/integer.cpp",
+ "cpu/kernels/scale/sve/qasymm8.cpp",
+ "cpu/kernels/scale/sve/qasymm8_signed.cpp",
+ "cpu/kernels/softmax/generic/sve/fp16.cpp",
+ "cpu/kernels/softmax/generic/sve/fp32.cpp",
+ "cpu/kernels/softmax/generic/sve/impl.cpp",
+ "cpu/kernels/softmax/generic/sve/qasymm8.cpp",
+ "cpu/kernels/softmax/generic/sve/qasymm8_signed.cpp"] +
+ glob(["**/*.h",
+ "**/*.hpp",
+ "**/*.inl"]),
+ visibility = ["//visibility:public"]
+)
+
+filegroup(
+ name = "arm_compute_srcs",
+ srcs = ["c/AclContext.cpp",
+ "c/AclOperator.cpp",
+ "c/AclQueue.cpp",
+ "c/AclTensor.cpp",
+ "c/AclTensorPack.cpp",
+ "c/AclVersion.cpp",
+ "c/operators/AclActivation.cpp",
+ "common/AllocatorWrapper.cpp",
+ "common/IOperator.cpp",
+ "common/ITensorV2.cpp",
+ "common/TensorPack.cpp",
+ "common/cpuinfo/CpuInfo.cpp",
+ "common/cpuinfo/CpuIsaInfo.cpp",
+ "common/cpuinfo/CpuModel.cpp",
+ "common/utils/LegacySupport.cpp",
+ "core/AccessWindowAutoPadding.cpp",
+ "core/AccessWindowStatic.cpp",
+ "core/AccessWindowTranspose.cpp",
+ "core/CPP/CPPTypes.cpp",
+ "core/CPP/kernels/CPPBoxWithNonMaximaSuppressionLimitKernel.cpp",
+ "core/CPP/kernels/CPPNonMaximumSuppressionKernel.cpp",
+ "core/CPP/kernels/CPPPermuteKernel.cpp",
+ "core/CPP/kernels/CPPTopKVKernel.cpp",
+ "core/CPP/kernels/CPPUpsampleKernel.cpp",
+ "core/Error.cpp",
+ "core/GPUTarget.cpp",
+ "core/Helpers.cpp",
+ "core/IAccessWindow.cpp",
+ "core/IKernel.cpp",
+ "core/ITensor.cpp",
+ "core/ITensorPack.cpp",
+ "core/NEON/kernels/NEBatchNormalizationLayerKernel.cpp",
+ "core/NEON/kernels/NEBatchToSpaceLayerKernel.cpp",
+ "core/NEON/kernels/NEBitwiseAndKernel.cpp",
+ "core/NEON/kernels/NEBitwiseNotKernel.cpp",
+ "core/NEON/kernels/NEBitwiseOrKernel.cpp",
+ "core/NEON/kernels/NEBitwiseXorKernel.cpp",
+ "core/NEON/kernels/NEBoundingBoxTransformKernel.cpp",
+ "core/NEON/kernels/NEChannelShuffleLayerKernel.cpp",
+ "core/NEON/kernels/NECropKernel.cpp",
+ "core/NEON/kernels/NEDepthToSpaceLayerKernel.cpp",
+ "core/NEON/kernels/NEFFTDigitReverseKernel.cpp",
+ "core/NEON/kernels/NEFFTRadixStageKernel.cpp",
+ "core/NEON/kernels/NEFFTScaleKernel.cpp",
+ "core/NEON/kernels/NEFillBorderKernel.cpp",
+ "core/NEON/kernels/NEFuseBatchNormalizationKernel.cpp",
+ "core/NEON/kernels/NEGatherKernel.cpp",
+ "core/NEON/kernels/NEGenerateProposalsLayerKernel.cpp",
+ "core/NEON/kernels/NEInstanceNormalizationLayerKernel.cpp",
+ "core/NEON/kernels/NEL2NormalizeLayerKernel.cpp",
+ "core/NEON/kernels/NELogicalKernel.cpp",
+ "core/NEON/kernels/NEMeanStdDevNormalizationKernel.cpp",
+ "core/NEON/kernels/NENormalizationLayerKernel.cpp",
+ "core/NEON/kernels/NEPadLayerKernel.cpp",
+ "core/NEON/kernels/NEPriorBoxLayerKernel.cpp",
+ "core/NEON/kernels/NEQLSTMLayerNormalizationKernel.cpp",
+ "core/NEON/kernels/NEROIAlignLayerKernel.cpp",
+ "core/NEON/kernels/NEROIPoolingLayerKernel.cpp",
+ "core/NEON/kernels/NERangeKernel.cpp",
+ "core/NEON/kernels/NEReductionOperationKernel.cpp",
+ "core/NEON/kernels/NEReorgLayerKernel.cpp",
+ "core/NEON/kernels/NEReverseKernel.cpp",
+ "core/NEON/kernels/NESelectKernel.cpp",
+ "core/NEON/kernels/NESpaceToBatchLayerKernel.cpp",
+ "core/NEON/kernels/NESpaceToDepthLayerKernel.cpp",
+ "core/NEON/kernels/NEStackLayerKernel.cpp",
+ "core/NEON/kernels/NEStridedSliceKernel.cpp",
+ "core/NEON/kernels/NETileKernel.cpp",
+ "core/NEON/kernels/arm_conv/addressing.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/depthwise_fp16.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/depthwise_fp32.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/depthwise_s8q.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/depthwise_strategies_common.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/depthwise_u8q.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/depthwise_u8s8u8q.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/interleaves/8b_mla.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/interleaves/a64_s8q_3x3_dot.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/interleaves/a64_u8q_3x3_dot.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/interleaves/generic.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/interleaves/generic_quantized_dot_product.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/a64_fp16_nhwc_3x3_s1_output2x2_mla_depthfirst/generic_direct.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/a64_fp16_nhwc_3x3_s1_output2x2_mla_depthfirst/generic_indirect.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/a64_fp16_nhwc_3x3_s1_output3x3_mla_depthfirst/generic_direct.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/a64_fp16_nhwc_3x3_s1_output3x3_mla_depthfirst/generic_indirect.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/a64_fp16_nhwc_3x3_s1_output4x4_mla_depthfirst/generic_direct.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/a64_fp16_nhwc_3x3_s1_output4x4_mla_depthfirst/generic_indirect.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/a64_fp16_nhwc_3x3_s2_output2x2_mla_depthfirst/generic_direct.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/a64_fp16_nhwc_3x3_s2_output2x2_mla_depthfirst/generic_indirect.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/a64_fp16_nhwc_5x5_s1_output2x2_mla_depthfirst/generic_direct.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/a64_fp16_nhwc_5x5_s1_output2x2_mla_depthfirst/generic_indirect.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/a64_fp16_nhwc_generic_output9_mla_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/a64_fp16_packed_to_nhwc_generic_with_multiplier_output2x8_mla_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/a64_fp32_nhwc_3x3_s1_output2x2_mla_depthfirst/generic_direct.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/a64_fp32_nhwc_3x3_s1_output2x2_mla_depthfirst/generic_indirect.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/a64_fp32_nhwc_3x3_s1_output3x3_mla_depthfirst/generic_direct.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/a64_fp32_nhwc_3x3_s1_output3x3_mla_depthfirst/generic_indirect.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/a64_fp32_nhwc_3x3_s1_output4x4_mla_depthfirst/generic_direct.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/a64_fp32_nhwc_3x3_s1_output4x4_mla_depthfirst/generic_indirect.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/a64_fp32_nhwc_3x3_s2_output2x2_mla_depthfirst/generic_direct.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/a64_fp32_nhwc_3x3_s2_output2x2_mla_depthfirst/generic_indirect.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/a64_fp32_nhwc_5x5_s1_output2x2_mla_depthfirst/generic_direct.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/a64_fp32_nhwc_5x5_s1_output2x2_mla_depthfirst/generic_indirect.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/a64_fp32_nhwc_generic_output9_mla_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/a64_fp32_packed_to_nhwc_3x3_s2_with_multiplier_output3x3_mla_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/a64_fp32_packed_to_nhwc_5x5_s1_with_multiplier_output2x4_mla_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/a64_fp32_packed_to_nhwc_generic_with_multiplier_output2x8_mla_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/a64_s8q_nhwc_3x3_s1_output2x2_dot_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/a64_s8q_nhwc_3x3_s1_output2x2_mla_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/a64_s8q_nhwc_3x3_s2_output2x2_mla_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/a64_s8q_nhwc_5x5_s1_output2x2_mla_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/a64_s8q_nhwc_generic_output9_mla_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/a64_s8q_packed_to_nhwc_3x3_s2_with_multiplier_output2x4_dot_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/a64_s8q_packed_to_nhwc_5x5_s1_with_multiplier_output4x2_dot_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/a64_s8q_packed_to_nhwc_generic_with_multiplier_output2x8_mla_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/a64_s8qs_nhwc_3x3_s1_output2x2_dot_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/a64_u8q_nhwc_3x3_s1_output2x2_dot_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/a64_u8q_nhwc_3x3_s1_output2x2_mla_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/a64_u8q_nhwc_3x3_s2_output2x2_mla_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/a64_u8q_nhwc_5x5_s1_output2x2_mla_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/a64_u8q_nhwc_generic_output9_mla_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/a64_u8q_packed_to_nhwc_3x3_s2_with_multiplier_output2x4_dot_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/a64_u8q_packed_to_nhwc_5x5_s1_with_multiplier_output4x2_dot_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/a64_u8q_packed_to_nhwc_generic_with_multiplier_output2x8_mla_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/a64_u8qa_nhwc_3x3_s1_output2x2_mla_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/a64_u8qa_nhwc_3x3_s2_output2x2_mla_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/a64_u8qa_nhwc_5x5_s1_output2x2_mla_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/a64_u8s8u8q_nhwc_3x3_s1_output2x2_mla_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/a64_u8s8u8q_nhwc_3x3_s2_output2x2_mla_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/a64_u8s8u8q_nhwc_5x5_s1_output2x2_mla_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/a64_u8s8u8q_nhwc_generic_output9_mla_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/depthwise/kernels/a64_u8s8u8q_packed_to_nhwc_generic_with_multiplier_output2x8_mla_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/pooling/kernels/a64_fp16_nhwc_avg_3x3_s1_output2x2_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/pooling/kernels/a64_fp16_nhwc_avg_generic_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/pooling/kernels/a64_fp16_nhwc_max_2x2_s1_output2x2_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/pooling/kernels/a64_fp16_nhwc_max_generic_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/pooling/kernels/a64_fp32_nhwc_avg_3x3_s1_output2x2_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/pooling/kernels/a64_fp32_nhwc_avg_generic_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/pooling/kernels/a64_fp32_nhwc_max_2x2_s1_output2x2_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/pooling/kernels/a64_fp32_nhwc_max_generic_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/pooling/kernels/a64_s8_nhwc_avg_generic_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/pooling/kernels/a64_s8_nhwc_max_2x2_s1_output2x2_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/pooling/kernels/a64_s8_nhwc_max_generic_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/pooling/kernels/a64_s8q_nhwc_avg_generic_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/pooling/kernels/a64_s8q_nhwc_max_generic_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/pooling/kernels/a64_u8_nhwc_avg_generic_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/pooling/kernels/a64_u8_nhwc_max_2x2_s1_output2x2_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/pooling/kernels/a64_u8_nhwc_max_generic_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/pooling/kernels/a64_u8q_nhwc_avg_generic_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/pooling/kernels/a64_u8q_nhwc_max_generic_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/pooling/kernels/cpp_nhwc_1x1_stride_any_depthfirst/generic.cpp",
+ "core/NEON/kernels/arm_conv/pooling/pooling_fp16.cpp",
+ "core/NEON/kernels/arm_conv/pooling/pooling_fp32.cpp",
+ "core/NEON/kernels/arm_conv/pooling/pooling_s8.cpp",
+ "core/NEON/kernels/arm_conv/pooling/pooling_s8q.cpp",
+ "core/NEON/kernels/arm_conv/pooling/pooling_u8.cpp",
+ "core/NEON/kernels/arm_conv/pooling/pooling_u8q.cpp",
+ "core/NEON/kernels/arm_gemm/gemm_bf16.cpp",
+ "core/NEON/kernels/arm_gemm/gemm_fp16.cpp",
+ "core/NEON/kernels/arm_gemm/gemm_fp32.cpp",
+ "core/NEON/kernels/arm_gemm/gemm_int16.cpp",
+ "core/NEON/kernels/arm_gemm/gemm_int8.cpp",
+ "core/NEON/kernels/arm_gemm/gemm_qint8.cpp",
+ "core/NEON/kernels/arm_gemm/gemm_quint8.cpp",
+ "core/NEON/kernels/arm_gemm/gemm_uint16.cpp",
+ "core/NEON/kernels/arm_gemm/gemm_uint8.cpp",
+ "core/NEON/kernels/arm_gemm/interleave_indirect.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/a64_ffhybrid_bf16fp32_mmla_6x16/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/a64_ffhybrid_fp16_mla_6x32/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/a64_ffhybrid_fp32_mla_6x16/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/a64_ffhybrid_fp32bf16fp32_mmla_4x24/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/a64_ffinterleaved_bf16fp32_dot_8x12/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/a64_ffinterleaved_bf16fp32_mmla_8x12/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/a64_ffinterleaved_fp16_mla_8x24/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/a64_ffinterleaved_fp32_mla_8x12/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/a64_gemm_s16_8x12/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/a64_gemm_s8_4x4/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/a64_gemm_s8_8x12/a55r1.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/a64_gemm_s8_8x12/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/a64_gemm_s8_8x12/x1.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/a64_gemm_u16_8x12/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/a64_gemm_u8_4x4/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/a64_gemm_u8_8x12/a55r1.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/a64_gemm_u8_8x12/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/a64_gemm_u8_8x12/x1.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/a64_hgemm_8x24/a55r1.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/a64_hgemm_8x24/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/a64_hgemm_8x24/x1.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/a64_hybrid_bf16fp32_dot_6x16/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/a64_hybrid_bf16fp32_mmla_6x16/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/a64_hybrid_fp16_mla_6x32/a55.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/a64_hybrid_fp16_mla_6x32/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/a64_hybrid_fp32_mla_4x24/a55.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/a64_hybrid_fp32_mla_4x24/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/a64_hybrid_fp32_mla_6x16/a55.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/a64_hybrid_fp32_mla_6x16/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/a64_hybrid_fp32_mla_8x4/a55.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/a64_hybrid_fp32_mla_8x4/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/a64_hybrid_fp32bf16fp32_mmla_4x24/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/a64_hybrid_fp32bf16fp32_mmla_6x16/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/a64_hybrid_s8qa_dot_4x16/a55.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/a64_hybrid_s8qa_dot_4x16/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/a64_hybrid_s8qa_mmla_4x16/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/a64_hybrid_s8qs_dot_6x16/a55.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/a64_hybrid_s8qs_dot_6x16/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/a64_hybrid_s8qs_mmla_6x16/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/a64_hybrid_s8s32_dot_6x16/a55.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/a64_hybrid_s8s32_dot_6x16/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/a64_hybrid_s8s32_mmla_6x16/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/a64_hybrid_u8qa_dot_4x16/a55.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/a64_hybrid_u8qa_dot_4x16/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/a64_hybrid_u8qa_mmla_4x16/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/a64_hybrid_u8u32_dot_6x16/a55.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/a64_hybrid_u8u32_dot_6x16/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/a64_hybrid_u8u32_mmla_6x16/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/a64_interleaved_bf16fp32_dot_8x12/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/a64_interleaved_bf16fp32_dot_8x12/x1.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/a64_interleaved_bf16fp32_mmla_8x12/a510.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/a64_interleaved_bf16fp32_mmla_8x12/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/a64_interleaved_s8s32_mmla_8x12/a510.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/a64_interleaved_s8s32_mmla_8x12/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/a64_interleaved_u8u32_mmla_8x12/a510.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/a64_interleaved_u8u32_mmla_8x12/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/a64_sgemm_8x12/a53.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/a64_sgemm_8x12/a55.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/a64_sgemm_8x12/a55r1.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/a64_sgemm_8x12/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/a64_sgemm_8x12/x1.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/a64_sgemm_8x6/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/a64_sgemv_pretransposed/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/a64_smallK_hybrid_fp32_mla_6x4/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/a64_smallK_hybrid_fp32_mla_8x4/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/a64_smallK_hybrid_s8s32_dot_6x4/a55.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/a64_smallK_hybrid_s8s32_dot_6x4/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/a64_smallK_hybrid_s8s32_dot_8x4/a55.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/a64_smallK_hybrid_s8s32_dot_8x4/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/a64_smallK_hybrid_u8u32_dot_6x4/a55.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/a64_smallK_hybrid_u8u32_dot_6x4/generic.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/a64_smallK_hybrid_u8u32_dot_8x4/a55.cpp",
+ "core/NEON/kernels/arm_gemm/kernels/a64_smallK_hybrid_u8u32_dot_8x4/generic.cpp",
+ "core/NEON/kernels/arm_gemm/mergeresults-fp16.cpp",
+ "core/NEON/kernels/arm_gemm/mergeresults.cpp",
+ "core/NEON/kernels/arm_gemm/misc.cpp",
+ "core/NEON/kernels/arm_gemm/quantized.cpp",
+ "core/NEON/kernels/arm_gemm/rowsum_indirect_s8.cpp",
+ "core/NEON/kernels/arm_gemm/rowsum_indirect_u8.cpp",
+ "core/NEON/kernels/arm_gemm/transform.cpp",
+ "core/NEON/kernels/batchnormalization/impl/NEON/fp16.cpp",
+ "core/NEON/kernels/batchnormalization/impl/NEON/fp32.cpp",
+ "core/NEON/kernels/convolution/common/padding.cpp",
+ "core/NEON/kernels/convolution/common/qasymm8.cpp",
+ "core/NEON/kernels/convolution/common/qsymm8.cpp",
+ "core/NEON/kernels/convolution/common/utils.cpp",
+ "core/NEON/kernels/convolution/winograd/input_transforms/a64_fp16_6x6.cpp",
+ "core/NEON/kernels/convolution/winograd/input_transforms/a64_fp32_6x6.cpp",
+ "core/NEON/kernels/convolution/winograd/input_transforms/arm_fp32_1x8.cpp",
+ "core/NEON/kernels/convolution/winograd/input_transforms/arm_fp32_4x4.cpp",
+ "core/NEON/kernels/convolution/winograd/input_transforms/arm_fp32_6x6.cpp",
+ "core/NEON/kernels/convolution/winograd/input_transforms_fp16.cpp",
+ "core/NEON/kernels/convolution/winograd/input_transforms_fp32.cpp",
+ "core/NEON/kernels/convolution/winograd/output_transforms/a64_fp16_4x4_3x3.cpp",
+ "core/NEON/kernels/convolution/winograd/output_transforms/arm_fp32_1x2_1x7.cpp",
+ "core/NEON/kernels/convolution/winograd/output_transforms/arm_fp32_1x4_1x5.cpp",
+ "core/NEON/kernels/convolution/winograd/output_transforms/arm_fp32_1x6_1x3.cpp",
+ "core/NEON/kernels/convolution/winograd/output_transforms/arm_fp32_2x2_3x3.cpp",
+ "core/NEON/kernels/convolution/winograd/output_transforms/arm_fp32_2x2_5x5.cpp",
+ "core/NEON/kernels/convolution/winograd/output_transforms/arm_fp32_4x4_3x3.cpp",
+ "core/NEON/kernels/convolution/winograd/output_transforms_fp16.cpp",
+ "core/NEON/kernels/convolution/winograd/output_transforms_fp32.cpp",
+ "core/NEON/kernels/convolution/winograd/weight_transforms/a64_fp16_4x4_3x3.cpp",
+ "core/NEON/kernels/convolution/winograd/weight_transforms/arm_fp32_2x2_3x3.cpp",
+ "core/NEON/kernels/convolution/winograd/weight_transforms/arm_fp32_2x2_5x5.cpp",
+ "core/NEON/kernels/convolution/winograd/weight_transforms/arm_fp32_4x4_3x3.cpp",
+ "core/NEON/kernels/convolution/winograd/weight_transforms/cpp_fp32_1x2_1x7.cpp",
+ "core/NEON/kernels/convolution/winograd/weight_transforms/cpp_fp32_1x4_1x5.cpp",
+ "core/NEON/kernels/convolution/winograd/weight_transforms/cpp_fp32_1x6_1x3.cpp",
+ "core/NEON/kernels/convolution/winograd/weight_transforms_fp16.cpp",
+ "core/NEON/kernels/convolution/winograd/weight_transforms_fp32.cpp",
+ "core/NEON/kernels/convolution/winograd/winograd_fp16.cpp",
+ "core/NEON/kernels/convolution/winograd/winograd_fp32.cpp",
+ "core/Rounding.cpp",
+ "core/Size2D.cpp",
+ "core/SubTensorInfo.cpp",
+ "core/TensorInfo.cpp",
+ "core/Utils.cpp",
+ "core/Validate.cpp",
+ "core/Version.cpp",
+ "core/helpers/SoftmaxHelpers.cpp",
+ "core/helpers/WindowHelpers.cpp",
+ "core/utils/AssemblyUtils.cpp",
+ "core/utils/ScaleUtils.cpp",
+ "core/utils/helpers/fft.cpp",
+ "core/utils/helpers/tensor_transform.cpp",
+ "core/utils/io/FileHandler.cpp",
+ "core/utils/logging/FilePrinter.cpp",
+ "core/utils/logging/Helpers.cpp",
+ "core/utils/logging/Logger.cpp",
+ "core/utils/logging/LoggerRegistry.cpp",
+ "core/utils/misc/MMappedFile.cpp",
+ "core/utils/quantization/AsymmHelpers.cpp",
+ "cpu/CpuContext.cpp",
+ "cpu/CpuQueue.cpp",
+ "cpu/CpuTensor.cpp",
+ "cpu/kernels/CpuActivationKernel.cpp",
+ "cpu/kernels/CpuAddKernel.cpp",
+ "cpu/kernels/CpuCastKernel.cpp",
+ "cpu/kernels/CpuCol2ImKernel.cpp",
+ "cpu/kernels/CpuConcatenateBatchKernel.cpp",
+ "cpu/kernels/CpuConcatenateDepthKernel.cpp",
+ "cpu/kernels/CpuConcatenateHeightKernel.cpp",
+ "cpu/kernels/CpuConcatenateWidthKernel.cpp",
+ "cpu/kernels/CpuConvertFullyConnectedWeightsKernel.cpp",
+ "cpu/kernels/CpuConvertQuantizedSignednessKernel.cpp",
+ "cpu/kernels/CpuCopyKernel.cpp",
+ "cpu/kernels/CpuDepthwiseConv2dNativeKernel.cpp",
+ "cpu/kernels/CpuDequantizeKernel.cpp",
+ "cpu/kernels/CpuDirectConv2dKernel.cpp",
+ "cpu/kernels/CpuDirectConv2dOutputStageKernel.cpp",
+ "cpu/kernels/CpuDirectConv3dKernel.cpp",
+ "cpu/kernels/CpuElementwiseKernel.cpp",
+ "cpu/kernels/CpuElementwiseUnaryKernel.cpp",
+ "cpu/kernels/CpuFillKernel.cpp",
+ "cpu/kernels/CpuFloorKernel.cpp",
+ "cpu/kernels/CpuGemmInterleave4x4Kernel.cpp",
+ "cpu/kernels/CpuGemmLowpMatrixMultiplyKernel.cpp",
+ "cpu/kernels/CpuGemmLowpMatrixReductionKernel.cpp",
+ "cpu/kernels/CpuGemmLowpOffsetContributionKernel.cpp",
+ "cpu/kernels/CpuGemmLowpOffsetContributionOutputStageKernel.cpp",
+ "cpu/kernels/CpuGemmLowpQuantizeDownInt32ScaleKernel.cpp",
+ "cpu/kernels/CpuGemmLowpQuantizeDownInt32ToInt16ScaleByFixedPointKernel.cpp",
+ "cpu/kernels/CpuGemmLowpQuantizeDownInt32ToInt8ScaleByFixedPointKernel.cpp",
+ "cpu/kernels/CpuGemmLowpQuantizeDownInt32ToUint8ScaleByFixedPointKernel.cpp",
+ "cpu/kernels/CpuGemmMatrixAdditionKernel.cpp",
+ "cpu/kernels/CpuGemmMatrixMultiplyKernel.cpp",
+ "cpu/kernels/CpuGemmTranspose1xWKernel.cpp",
+ "cpu/kernels/CpuIm2ColKernel.cpp",
+ "cpu/kernels/CpuMaxUnpoolingLayerKernel.cpp",
+ "cpu/kernels/CpuMulKernel.cpp",
+ "cpu/kernels/CpuPermuteKernel.cpp",
+ "cpu/kernels/CpuPool2dKernel.cpp",
+ "cpu/kernels/CpuPool3dKernel.cpp",
+ "cpu/kernels/CpuQuantizeKernel.cpp",
+ "cpu/kernels/CpuReshapeKernel.cpp",
+ "cpu/kernels/CpuScaleKernel.cpp",
+ "cpu/kernels/CpuSoftmaxKernel.cpp",
+ "cpu/kernels/CpuSubKernel.cpp",
+ "cpu/kernels/CpuTransposeKernel.cpp",
+ "cpu/kernels/CpuWeightsReshapeKernel.cpp",
+ "cpu/kernels/CpuWinogradConv2dKernel.cpp",
+ "cpu/kernels/activation/generic/neon/fp16.cpp",
+ "cpu/kernels/activation/generic/neon/fp32.cpp",
+ "cpu/kernels/activation/generic/neon/lut.cpp",
+ "cpu/kernels/activation/generic/neon/qasymm8.cpp",
+ "cpu/kernels/activation/generic/neon/qasymm8_signed.cpp",
+ "cpu/kernels/activation/generic/neon/qsymm16.cpp",
+ "cpu/kernels/add/generic/neon/fp16.cpp",
+ "cpu/kernels/add/generic/neon/fp32.cpp",
+ "cpu/kernels/add/generic/neon/impl.cpp",
+ "cpu/kernels/add/generic/neon/integer.cpp",
+ "cpu/kernels/add/generic/neon/qasymm8.cpp",
+ "cpu/kernels/add/generic/neon/qasymm8_signed.cpp",
+ "cpu/kernels/add/generic/neon/qsymm16.cpp",
+ "cpu/kernels/boundingboxtransform/generic/neon/fp16.cpp",
+ "cpu/kernels/boundingboxtransform/generic/neon/fp32.cpp",
+ "cpu/kernels/boundingboxtransform/generic/neon/impl.cpp",
+ "cpu/kernels/boundingboxtransform/generic/neon/qsymm16.cpp",
+ "cpu/kernels/cast/generic/neon/bfloat16.cpp",
+ "cpu/kernels/cast/generic/neon/fp16.cpp",
+ "cpu/kernels/crop/generic/neon/fp16.cpp",
+ "cpu/kernels/crop/generic/neon/fp32.cpp",
+ "cpu/kernels/crop/generic/neon/impl.cpp",
+ "cpu/kernels/crop/generic/neon/integer.cpp",
+ "cpu/kernels/depthwiseconv2d/generic/neon/fp16.cpp",
+ "cpu/kernels/depthwiseconv2d/generic/neon/fp32.cpp",
+ "cpu/kernels/depthwiseconv2d/generic/neon/impl.cpp",
+ "cpu/kernels/depthwiseconv2d/generic/neon/qasymm8.cpp",
+ "cpu/kernels/depthwiseconv2d/generic/neon/qasymm8_signed.cpp",
+ "cpu/kernels/directconv2d/nchw/all.cpp",
+ "cpu/kernels/directconv2d/nhwc/neon/fp32.cpp",
+ "cpu/kernels/directconv2d/nhwc/neon/impl.cpp",
+ "cpu/kernels/elementwise_binary/generic/neon/fp16.cpp",
+ "cpu/kernels/elementwise_binary/generic/neon/fp32.cpp",
+ "cpu/kernels/elementwise_binary/generic/neon/integer.cpp",
+ "cpu/kernels/elementwise_binary/generic/neon/qasymm8.cpp",
+ "cpu/kernels/elementwise_binary/generic/neon/qasymm8_signed.cpp",
+ "cpu/kernels/elementwise_unary/generic/neon/fp16.cpp",
+ "cpu/kernels/elementwise_unary/generic/neon/fp32.cpp",
+ "cpu/kernels/elementwise_unary/generic/neon/impl.cpp",
+ "cpu/kernels/elementwise_unary/generic/neon/integer.cpp",
+ "cpu/kernels/floor/neon/fp16.cpp",
+ "cpu/kernels/floor/neon/fp32.cpp",
+ "cpu/kernels/fuse_batch_normalization/generic/fp16.cpp",
+ "cpu/kernels/fuse_batch_normalization/generic/fp32.cpp",
+ "cpu/kernels/fuse_batch_normalization/generic/impl.cpp",
+ "cpu/kernels/fuse_batch_normalization/nchw/all.cpp",
+ "cpu/kernels/fuse_batch_normalization/nhwc/neon/fp16.cpp",
+ "cpu/kernels/fuse_batch_normalization/nhwc/neon/fp32.cpp",
+ "cpu/kernels/fuse_batch_normalization/nhwc/neon/impl.cpp",
+ "cpu/kernels/gemm_matrix_add/generic/neon/fp16.cpp",
+ "cpu/kernels/gemm_matrix_add/generic/neon/fp32.cpp",
+ "cpu/kernels/gemm_matrix_add/generic/neon/impl.cpp",
+ "cpu/kernels/gemm_matrix_mul/generic/neon/fp16.cpp",
+ "cpu/kernels/gemm_matrix_mul/generic/neon/fp32.cpp",
+ "cpu/kernels/gemm_matrix_mul/generic/neon/impl.cpp",
+ "cpu/kernels/genproposals/generic/neon/fp16.cpp",
+ "cpu/kernels/genproposals/generic/neon/fp32.cpp",
+ "cpu/kernels/genproposals/generic/neon/impl.cpp",
+ "cpu/kernels/genproposals/generic/neon/qsymm16.cpp",
+ "cpu/kernels/instancenorm/generic/neon/fp16.cpp",
+ "cpu/kernels/instancenorm/generic/neon/fp32.cpp",
+ "cpu/kernels/instancenorm/generic/neon/impl.cpp",
+ "cpu/kernels/internal/CpuDepthwiseConv2dAssemblyWrapperKernel.cpp",
+ "cpu/kernels/internal/CpuPool2dAssemblyWrapperKernel.cpp",
+ "cpu/kernels/l2normlayer/generic/neon/fp16.cpp",
+ "cpu/kernels/l2normlayer/generic/neon/fp32.cpp",
+ "cpu/kernels/l2normlayer/generic/neon/impl.cpp",
+ "cpu/kernels/maxunpool/generic/neon/fp16.cpp",
+ "cpu/kernels/maxunpool/generic/neon/fp32.cpp",
+ "cpu/kernels/maxunpool/generic/neon/impl.cpp",
+ "cpu/kernels/maxunpool/generic/neon/qasymm8.cpp",
+ "cpu/kernels/maxunpool/generic/neon/qasymm8_signed.cpp",
+ "cpu/kernels/meanstddevnorm/generic/neon/fp16.cpp",
+ "cpu/kernels/meanstddevnorm/generic/neon/fp32.cpp",
+ "cpu/kernels/meanstddevnorm/generic/neon/impl.cpp",
+ "cpu/kernels/meanstddevnorm/generic/neon/qasymm8.cpp",
+ "cpu/kernels/pool2d/neon/fp16.cpp",
+ "cpu/kernels/pool2d/neon/fp32.cpp",
+ "cpu/kernels/pool2d/neon/nchw/all.cpp",
+ "cpu/kernels/pool2d/neon/qasymm8.cpp",
+ "cpu/kernels/pool2d/neon/qasymm8_signed.cpp",
+ "cpu/kernels/pool3d/neon/fp16.cpp",
+ "cpu/kernels/pool3d/neon/fp32.cpp",
+ "cpu/kernels/pool3d/neon/impl.cpp",
+ "cpu/kernels/pool3d/neon/qasymm8.cpp",
+ "cpu/kernels/pool3d/neon/qasymm8_signed.cpp",
+ "cpu/kernels/range/generic/neon/fp16.cpp",
+ "cpu/kernels/range/generic/neon/fp32.cpp",
+ "cpu/kernels/range/generic/neon/impl.cpp",
+ "cpu/kernels/range/generic/neon/integer.cpp",
+ "cpu/kernels/roialign/generic/neon/fp16.cpp",
+ "cpu/kernels/roialign/generic/neon/fp32.cpp",
+ "cpu/kernels/roialign/generic/neon/impl.cpp",
+ "cpu/kernels/roialign/generic/neon/qasymm8.cpp",
+ "cpu/kernels/roialign/generic/neon/qasymm8_signed.cpp",
+ "cpu/kernels/scale/neon/fp16.cpp",
+ "cpu/kernels/scale/neon/integer.cpp",
+ "cpu/kernels/scale/neon/qasymm8.cpp",
+ "cpu/kernels/scale/neon/qasymm8_signed.cpp",
+ "cpu/kernels/select/generic/neon/fp16.cpp",
+ "cpu/kernels/select/generic/neon/fp32.cpp",
+ "cpu/kernels/select/generic/neon/impl.cpp",
+ "cpu/kernels/select/generic/neon/integer.cpp",
+ "cpu/kernels/softmax/generic/neon/fp16.cpp",
+ "cpu/kernels/softmax/generic/neon/fp32.cpp",
+ "cpu/kernels/softmax/generic/neon/impl.cpp",
+ "cpu/kernels/softmax/generic/neon/qasymm8.cpp",
+ "cpu/kernels/softmax/generic/neon/qasymm8_signed.cpp",
+ "cpu/kernels/sub/neon/qasymm8.cpp",
+ "cpu/kernels/sub/neon/qasymm8_signed.cpp",
+ "cpu/kernels/sub/neon/qsymm16.cpp",
+ "cpu/operators/CpuActivation.cpp",
+ "cpu/operators/CpuAdd.cpp",
+ "cpu/operators/CpuCast.cpp",
+ "cpu/operators/CpuConcatenate.cpp",
+ "cpu/operators/CpuConv2d.cpp",
+ "cpu/operators/CpuConvertFullyConnectedWeights.cpp",
+ "cpu/operators/CpuCopy.cpp",
+ "cpu/operators/CpuDepthwiseConv2d.cpp",
+ "cpu/operators/CpuDepthwiseConv2dAssemblyDispatch.cpp",
+ "cpu/operators/CpuDequantize.cpp",
+ "cpu/operators/CpuDirectConv2d.cpp",
+ "cpu/operators/CpuDirectConv3d.cpp",
+ "cpu/operators/CpuElementwise.cpp",
+ "cpu/operators/CpuElementwiseUnary.cpp",
+ "cpu/operators/CpuFill.cpp",
+ "cpu/operators/CpuFlatten.cpp",
+ "cpu/operators/CpuFloor.cpp",
+ "cpu/operators/CpuFullyConnected.cpp",
+ "cpu/operators/CpuGemm.cpp",
+ "cpu/operators/CpuGemmConv2d.cpp",
+ "cpu/operators/CpuGemmDirectConv2d.cpp",
+ "cpu/operators/CpuGemmLowpMatrixMultiplyCore.cpp",
+ "cpu/operators/CpuGemmLowpOutputStage.cpp",
+ "cpu/operators/CpuMaxUnpooling.cpp",
+ "cpu/operators/CpuMul.cpp",
+ "cpu/operators/CpuPermute.cpp",
+ "cpu/operators/CpuPool2d.cpp",
+ "cpu/operators/CpuPool3d.cpp",
+ "cpu/operators/CpuQuantize.cpp",
+ "cpu/operators/CpuReshape.cpp",
+ "cpu/operators/CpuScale.cpp",
+ "cpu/operators/CpuSoftmax.cpp",
+ "cpu/operators/CpuSub.cpp",
+ "cpu/operators/CpuTranspose.cpp",
+ "cpu/operators/CpuWinogradConv2d.cpp",
+ "cpu/operators/internal/CpuGemmAssemblyDispatch.cpp",
+ "runtime/Allocator.cpp",
+ "runtime/BlobLifetimeManager.cpp",
+ "runtime/BlobMemoryPool.cpp",
+ "runtime/CPP/CPPScheduler.cpp",
+ "runtime/CPP/ICPPSimpleFunction.cpp",
+ "runtime/CPP/SingleThreadScheduler.cpp",
+ "runtime/CPP/functions/CPPBoxWithNonMaximaSuppressionLimit.cpp",
+ "runtime/CPP/functions/CPPDetectionOutputLayer.cpp",
+ "runtime/CPP/functions/CPPDetectionPostProcessLayer.cpp",
+ "runtime/CPP/functions/CPPNonMaximumSuppression.cpp",
+ "runtime/CPP/functions/CPPPermute.cpp",
+ "runtime/CPP/functions/CPPTopKV.cpp",
+ "runtime/CPP/functions/CPPUpsample.cpp",
+ "runtime/IScheduler.cpp",
+ "runtime/ISimpleLifetimeManager.cpp",
+ "runtime/ITensorAllocator.cpp",
+ "runtime/IWeightsManager.cpp",
+ "runtime/Memory.cpp",
+ "runtime/MemoryManagerOnDemand.cpp",
+ "runtime/NEON/INEOperator.cpp",
+ "runtime/NEON/INESimpleFunction.cpp",
+ "runtime/NEON/INESimpleFunctionNoBorder.cpp",
+ "runtime/NEON/functions/NEActivationLayer.cpp",
+ "runtime/NEON/functions/NEArgMinMaxLayer.cpp",
+ "runtime/NEON/functions/NEArithmeticAddition.cpp",
+ "runtime/NEON/functions/NEArithmeticSubtraction.cpp",
+ "runtime/NEON/functions/NEBatchNormalizationLayer.cpp",
+ "runtime/NEON/functions/NEBatchToSpaceLayer.cpp",
+ "runtime/NEON/functions/NEBitwiseAnd.cpp",
+ "runtime/NEON/functions/NEBitwiseNot.cpp",
+ "runtime/NEON/functions/NEBitwiseOr.cpp",
+ "runtime/NEON/functions/NEBitwiseXor.cpp",
+ "runtime/NEON/functions/NEBoundingBoxTransform.cpp",
+ "runtime/NEON/functions/NECast.cpp",
+ "runtime/NEON/functions/NEChannelShuffleLayer.cpp",
+ "runtime/NEON/functions/NEConcatenateLayer.cpp",
+ "runtime/NEON/functions/NEConv3D.cpp",
+ "runtime/NEON/functions/NEConvertFullyConnectedWeights.cpp",
+ "runtime/NEON/functions/NEConvolutionLayer.cpp",
+ "runtime/NEON/functions/NECopy.cpp",
+ "runtime/NEON/functions/NECropResize.cpp",
+ "runtime/NEON/functions/NEDeconvolutionLayer.cpp",
+ "runtime/NEON/functions/NEDepthConvertLayer.cpp",
+ "runtime/NEON/functions/NEDepthToSpaceLayer.cpp",
+ "runtime/NEON/functions/NEDepthwiseConvolutionLayer.cpp",
+ "runtime/NEON/functions/NEDequantizationLayer.cpp",
+ "runtime/NEON/functions/NEDetectionPostProcessLayer.cpp",
+ "runtime/NEON/functions/NEDirectConvolutionLayer.cpp",
+ "runtime/NEON/functions/NEElementwiseOperations.cpp",
+ "runtime/NEON/functions/NEElementwiseUnaryLayer.cpp",
+ "runtime/NEON/functions/NEFFT1D.cpp",
+ "runtime/NEON/functions/NEFFT2D.cpp",
+ "runtime/NEON/functions/NEFFTConvolutionLayer.cpp",
+ "runtime/NEON/functions/NEFill.cpp",
+ "runtime/NEON/functions/NEFlattenLayer.cpp",
+ "runtime/NEON/functions/NEFloor.cpp",
+ "runtime/NEON/functions/NEFullyConnectedLayer.cpp",
+ "runtime/NEON/functions/NEFuseBatchNormalization.cpp",
+ "runtime/NEON/functions/NEGEMM.cpp",
+ "runtime/NEON/functions/NEGEMMConv2d.cpp",
+ "runtime/NEON/functions/NEGEMMConvolutionLayer.cpp",
+ "runtime/NEON/functions/NEGEMMLowpMatrixMultiplyCore.cpp",
+ "runtime/NEON/functions/NEGEMMLowpOutputStage.cpp",
+ "runtime/NEON/functions/NEGather.cpp",
+ "runtime/NEON/functions/NEGenerateProposalsLayer.cpp",
+ "runtime/NEON/functions/NEInstanceNormalizationLayer.cpp",
+ "runtime/NEON/functions/NEL2NormalizeLayer.cpp",
+ "runtime/NEON/functions/NELSTMLayer.cpp",
+ "runtime/NEON/functions/NELSTMLayerQuantized.cpp",
+ "runtime/NEON/functions/NELogical.cpp",
+ "runtime/NEON/functions/NEMaxUnpoolingLayer.cpp",
+ "runtime/NEON/functions/NEMeanStdDevNormalizationLayer.cpp",
+ "runtime/NEON/functions/NENormalizationLayer.cpp",
+ "runtime/NEON/functions/NEPReluLayer.cpp",
+ "runtime/NEON/functions/NEPadLayer.cpp",
+ "runtime/NEON/functions/NEPermute.cpp",
+ "runtime/NEON/functions/NEPixelWiseMultiplication.cpp",
+ "runtime/NEON/functions/NEPooling3dLayer.cpp",
+ "runtime/NEON/functions/NEPoolingLayer.cpp",
+ "runtime/NEON/functions/NEPriorBoxLayer.cpp",
+ "runtime/NEON/functions/NEQLSTMLayer.cpp",
+ "runtime/NEON/functions/NEQuantizationLayer.cpp",
+ "runtime/NEON/functions/NERNNLayer.cpp",
+ "runtime/NEON/functions/NEROIAlignLayer.cpp",
+ "runtime/NEON/functions/NEROIPoolingLayer.cpp",
+ "runtime/NEON/functions/NERange.cpp",
+ "runtime/NEON/functions/NEReduceMean.cpp",
+ "runtime/NEON/functions/NEReductionOperation.cpp",
+ "runtime/NEON/functions/NEReorgLayer.cpp",
+ "runtime/NEON/functions/NEReshapeLayer.cpp",
+ "runtime/NEON/functions/NEReverse.cpp",
+ "runtime/NEON/functions/NEScale.cpp",
+ "runtime/NEON/functions/NESelect.cpp",
+ "runtime/NEON/functions/NESlice.cpp",
+ "runtime/NEON/functions/NESoftmaxLayer.cpp",
+ "runtime/NEON/functions/NESpaceToBatchLayer.cpp",
+ "runtime/NEON/functions/NESpaceToDepthLayer.cpp",
+ "runtime/NEON/functions/NESplit.cpp",
+ "runtime/NEON/functions/NEStackLayer.cpp",
+ "runtime/NEON/functions/NEStridedSlice.cpp",
+ "runtime/NEON/functions/NETile.cpp",
+ "runtime/NEON/functions/NETranspose.cpp",
+ "runtime/NEON/functions/NEUnstack.cpp",
+ "runtime/NEON/functions/NEWinogradConvolutionLayer.cpp",
+ "runtime/OMP/OMPScheduler.cpp",
+ "runtime/OffsetLifetimeManager.cpp",
+ "runtime/OffsetMemoryPool.cpp",
+ "runtime/OperatorTensor.cpp",
+ "runtime/PoolManager.cpp",
+ "runtime/RuntimeContext.cpp",
+ "runtime/Scheduler.cpp",
+ "runtime/SchedulerFactory.cpp",
+ "runtime/SchedulerUtils.cpp",
+ "runtime/SubTensor.cpp",
+ "runtime/Tensor.cpp",
+ "runtime/TensorAllocator.cpp",
+ "runtime/Utils.cpp"] +
+ glob(["**/*.h",
+ "**/*.hpp",
+ "**/*.inl"]),
+ visibility = ["//visibility:public"]
+)
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
new file mode 100644
index 0000000000..77f68056d4
--- /dev/null
+++ b/src/CMakeLists.txt
@@ -0,0 +1,957 @@
+# Copyright (c) 2023 Arm Limited.
+#
+# SPDX-License-Identifier: MIT
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to
+# deal in the Software without restriction, including without limitation the
+# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+# sell copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+target_sources(
+ arm_compute_graph
+ PRIVATE
+ graph/DataLayerVisitor.cpp
+ graph/Graph.cpp
+ graph/GraphBuilder.cpp
+ graph/GraphContext.cpp
+ graph/GraphManager.cpp
+ graph/INode.cpp
+ graph/INodeVisitor.cpp
+ graph/PassManager.cpp
+ graph/Tensor.cpp
+ graph/TypeLoader.cpp
+ graph/Utils.cpp
+ graph/Workload.cpp
+ graph/algorithms/TopologicalSort.cpp
+ graph/backends/BackendRegistry.cpp
+ graph/backends/NEON/NEDeviceBackend.cpp
+ graph/backends/NEON/NEFunctionFactory.cpp
+ graph/backends/NEON/NENodeValidator.cpp
+ graph/backends/NEON/NESubTensorHandle.cpp
+ graph/backends/NEON/NETensorHandle.cpp
+ graph/detail/CrossLayerMemoryManagerHelpers.cpp
+ graph/detail/ExecutionHelpers.cpp
+ graph/frontend/Stream.cpp
+ graph/frontend/SubStream.cpp
+ graph/mutators/DepthConcatSubTensorMutator.cpp
+ graph/mutators/GroupedConvolutionMutator.cpp
+ graph/mutators/InPlaceOperationMutator.cpp
+ graph/mutators/MutatorUtils.cpp
+ graph/mutators/NodeExecutionMethodMutator.cpp
+ graph/mutators/NodeFusionMutator.cpp
+ graph/mutators/SplitLayerSubTensorMutator.cpp
+ graph/mutators/SyntheticDataTypeMutator.cpp
+ graph/nodes/ActivationLayerNode.cpp
+ graph/nodes/ArgMinMaxLayerNode.cpp
+ graph/nodes/BatchNormalizationLayerNode.cpp
+ graph/nodes/BoundingBoxTransformLayerNode.cpp
+ graph/nodes/ChannelShuffleLayerNode.cpp
+ graph/nodes/ConcatenateLayerNode.cpp
+ graph/nodes/ConstNode.cpp
+ graph/nodes/ConvolutionLayerNode.cpp
+ graph/nodes/DeconvolutionLayerNode.cpp
+ graph/nodes/DepthToSpaceLayerNode.cpp
+ graph/nodes/DepthwiseConvolutionLayerNode.cpp
+ graph/nodes/DequantizationLayerNode.cpp
+ graph/nodes/DetectionOutputLayerNode.cpp
+ graph/nodes/DetectionPostProcessLayerNode.cpp
+ graph/nodes/DummyNode.cpp
+ graph/nodes/EltwiseLayerNode.cpp
+ graph/nodes/FlattenLayerNode.cpp
+ graph/nodes/FullyConnectedLayer.cpp
+ graph/nodes/FusedConvolutionBatchNormalizationNode.cpp
+ graph/nodes/FusedConvolutionBatchNormalizationWithPostOpsNode.cpp
+ graph/nodes/FusedConvolutionWithPostOpNode.cpp
+ graph/nodes/FusedDepthwiseConvolutionBatchNormalizationNode.cpp
+ graph/nodes/GenerateProposalsLayerNode.cpp
+ graph/nodes/InputNode.cpp
+ graph/nodes/L2NormalizeLayerNode.cpp
+ graph/nodes/NormalizationLayerNode.cpp
+ graph/nodes/NormalizePlanarYUVLayerNode.cpp
+ graph/nodes/OutputNode.cpp
+ graph/nodes/PReluLayerNode.cpp
+ graph/nodes/PadLayerNode.cpp
+ graph/nodes/PermuteLayerNode.cpp
+ graph/nodes/PoolingLayerNode.cpp
+ graph/nodes/PrintLayerNode.cpp
+ graph/nodes/PriorBoxLayerNode.cpp
+ graph/nodes/QuantizationLayerNode.cpp
+ graph/nodes/ROIAlignLayerNode.cpp
+ graph/nodes/ReductionLayerNode.cpp
+ graph/nodes/ReorgLayerNode.cpp
+ graph/nodes/ReshapeLayer.cpp
+ graph/nodes/ResizeLayerNode.cpp
+ graph/nodes/SliceLayerNode.cpp
+ graph/nodes/SoftmaxLayerNode.cpp
+ graph/nodes/SplitLayerNode.cpp
+ graph/nodes/StackLayerNode.cpp
+ graph/nodes/StridedSliceLayerNode.cpp
+ graph/printers/DotGraphPrinter.cpp
+)
+
+target_sources(
+ arm_compute_sve
+ PRIVATE
+ core/NEON/kernels/arm_conv/depthwise/interleaves/sve_8b_mla.cpp
+ 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_fp32_nhwc_3x3_s1_output2x2_mla_depthfirst/generic_direct.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/sme2_fp32_nhwc_3x3_s1_output2x2_mla_depthfirst/generic_indirect.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/sme2_fp32_nhwc_3x3_s1_output3x3_mla_depthfirst/generic_direct.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/sme2_fp32_nhwc_3x3_s1_output3x3_mla_depthfirst/generic_indirect.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/sme2_fp32_nhwc_3x3_s1_output4x4_mla_depthfirst/generic_direct.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/sme2_fp32_nhwc_3x3_s1_output4x4_mla_depthfirst/generic_indirect.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/sme2_fp32_nhwc_3x3_s2_output2x2_mla_depthfirst/generic_direct.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/sme2_fp32_nhwc_3x3_s2_output2x2_mla_depthfirst/generic_indirect.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/sme2_fp32_planar_3x3_s1_4rows_mla_za/generic.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/sme2_fp32_planar_3x3_s2_4rows_mla_za/generic.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/sme2_fp32_planar_5x5_s1_4rows_mla_za/generic.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/sme2_fp32_planar_5x5_s2_4rows_mla_za/generic.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/sme2_fp32bf16fp32_planar_3x3_s1_4rows_dot_za/generic.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/sme2_fp32bf16fp32_planar_3x3_s2_4rows_dot_za/generic.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/sme2_fp32bf16fp32_planar_5x5_s1_4rows_dot_za/generic.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/sme2_fp32bf16fp32_planar_5x5_s2_4rows_dot_za/generic.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/sme2_s8q_planar_3x3_s1_4rows_dot_za/generic.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/sme2_s8q_planar_3x3_s2_2rows_dot_za/generic.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/sme2_s8q_planar_3x3_s2_4rows_dot_za/generic.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/sme2_s8q_planar_5x5_s1_4rows_dot_za/generic.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/sme2_s8q_planar_5x5_s2_4rows_dot_za/generic.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/sme2_u8q_planar_3x3_s1_4rows_dot_za/generic.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/sme2_u8q_planar_3x3_s2_2rows_dot_za/generic.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/sme2_u8q_planar_3x3_s2_4rows_dot_za/generic.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/sme2_u8q_planar_5x5_s1_4rows_dot_za/generic.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/sme2_u8q_planar_5x5_s2_4rows_dot_za/generic.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/sme2_u8s8u8q_planar_3x3_s1_4rows_dot_za/generic.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/sme2_u8s8u8q_planar_3x3_s2_2rows_dot_za/generic.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/sme2_u8s8u8q_planar_3x3_s2_4rows_dot_za/generic.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/sme2_u8s8u8q_planar_5x5_s1_4rows_dot_za/generic.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/sme2_u8s8u8q_planar_5x5_s2_4rows_dot_za/generic.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/sve_fp16_nhwc_3x3_s1_output2x2_mla_depthfirst/generic_direct.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/sve_fp16_nhwc_3x3_s1_output2x2_mla_depthfirst/generic_indirect.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/sve_fp16_nhwc_3x3_s1_output3x3_mla_depthfirst/generic_direct.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/sve_fp16_nhwc_3x3_s1_output3x3_mla_depthfirst/generic_indirect.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/sve_fp16_nhwc_3x3_s1_output4x4_mla_depthfirst/generic_direct.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/sve_fp16_nhwc_3x3_s1_output4x4_mla_depthfirst/generic_indirect.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/sve_fp16_nhwc_3x3_s2_output2x2_mla_depthfirst/generic_direct.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/sve_fp16_nhwc_3x3_s2_output2x2_mla_depthfirst/generic_indirect.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/sve_fp16_nhwc_5x5_s1_output2x2_mla_depthfirst/generic_direct.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/sve_fp16_nhwc_5x5_s1_output2x2_mla_depthfirst/generic_indirect.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/sve_fp32_nhwc_3x3_s1_output2x2_mla_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/sve_fp32_nhwc_3x3_s1_output2x2_mla_depthfirst/generic_direct.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/sve_fp32_nhwc_3x3_s1_output2x2_mla_depthfirst/generic_indirect.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/sve_fp32_nhwc_3x3_s1_output2x2_mla_depthfirst_strided/generic.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/sve_fp32_nhwc_3x3_s1_output3x3_mla_depthfirst/generic_direct.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/sve_fp32_nhwc_3x3_s1_output3x3_mla_depthfirst/generic_indirect.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/sve_fp32_nhwc_3x3_s1_output4x4_mla_depthfirst/generic_direct.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/sve_fp32_nhwc_3x3_s1_output4x4_mla_depthfirst/generic_indirect.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/sve_fp32_nhwc_3x3_s2_output2x2_mla_depthfirst/generic_direct.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/sve_fp32_nhwc_3x3_s2_output2x2_mla_depthfirst/generic_indirect.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/sve_fp32_nhwc_5x5_s1_output2x2_mla_depthfirst/generic_direct.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/sve_fp32_nhwc_5x5_s1_output2x2_mla_depthfirst/generic_indirect.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/sve_fp32_nhwc_generic_output9_mla_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/sve_fp32_packed_to_nhwc_3x3_s2_with_multiplier_output3x3_mla_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/sve_fp32_packed_to_nhwc_5x5_s1_with_multiplier_output2x4_mla_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/sve_fp32_packed_to_nhwc_generic_with_multiplier_output2x8_mla_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/sve_s8q_nhwc_3x3_s1_output2x2_dot_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/sve_s8q_nhwc_3x3_s1_output2x2_mla_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/sve_s8q_nhwc_3x3_s2_output2x2_mla_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/sve_s8q_nhwc_5x5_s1_output2x2_mla_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/sve_s8q_packed_to_nhwc_3x3_s2_with_multiplier_output2x4_dot_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/sve_s8q_packed_to_nhwc_5x5_s1_with_multiplier_output4x2_dot_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/sve_s8qs_nhwc_3x3_s1_output2x2_dot_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/sve_u8q_nhwc_3x3_s1_output2x2_dot_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/sve_u8q_nhwc_3x3_s1_output2x2_mla_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/sve_u8q_nhwc_3x3_s2_output2x2_mla_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/sve_u8q_nhwc_5x5_s1_output2x2_mla_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/sve_u8q_packed_to_nhwc_3x3_s2_with_multiplier_output2x4_dot_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/sve_u8q_packed_to_nhwc_5x5_s1_with_multiplier_output4x2_dot_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/sve_u8s8u8q_nhwc_3x3_s1_output2x2_mla_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/sve_u8s8u8q_nhwc_3x3_s2_output2x2_mla_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/sve_u8s8u8q_nhwc_5x5_s1_output2x2_mla_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/pooling/kernels/sme_fp16_nhwc_avg_3x3_s1_output2x2_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/pooling/kernels/sme_fp16_nhwc_avg_generic_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/pooling/kernels/sme_fp16_nhwc_max_2x2_s1_output2x2_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/pooling/kernels/sme_fp16_nhwc_max_generic_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/pooling/kernels/sme_fp32_nhwc_avg_3x3_s1_output2x2_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/pooling/kernels/sme_fp32_nhwc_avg_generic_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/pooling/kernels/sme_fp32_nhwc_max_2x2_s1_output2x2_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/pooling/kernels/sme_fp32_nhwc_max_generic_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/pooling/kernels/sme_s8_nhwc_avg_generic_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/pooling/kernels/sme_s8_nhwc_max_2x2_s1_output2x2_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/pooling/kernels/sme_s8_nhwc_max_generic_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/pooling/kernels/sme_s8q_nhwc_avg_generic_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/pooling/kernels/sme_s8q_nhwc_max_generic_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/pooling/kernels/sme_u8_nhwc_avg_generic_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/pooling/kernels/sme_u8_nhwc_max_2x2_s1_output2x2_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/pooling/kernels/sme_u8_nhwc_max_generic_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/pooling/kernels/sme_u8q_nhwc_avg_generic_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/pooling/kernels/sme_u8q_nhwc_max_generic_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/pooling/kernels/sve_fp16_nhwc_avg_3x3_s1_output2x2_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/pooling/kernels/sve_fp16_nhwc_avg_generic_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/pooling/kernels/sve_fp16_nhwc_max_2x2_s1_output2x2_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/pooling/kernels/sve_fp16_nhwc_max_generic_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/pooling/kernels/sve_fp32_nhwc_avg_3x3_s1_output2x2_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/pooling/kernels/sve_fp32_nhwc_avg_generic_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/pooling/kernels/sve_fp32_nhwc_max_2x2_s1_output2x2_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/pooling/kernels/sve_fp32_nhwc_max_generic_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/pooling/kernels/sve_s8_nhwc_avg_generic_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/pooling/kernels/sve_s8_nhwc_max_2x2_s1_output2x2_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/pooling/kernels/sve_s8_nhwc_max_generic_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/pooling/kernels/sve_s8q_nhwc_avg_generic_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/pooling/kernels/sve_s8q_nhwc_max_generic_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/pooling/kernels/sve_u8_nhwc_avg_generic_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/pooling/kernels/sve_u8_nhwc_max_2x2_s1_output2x2_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/pooling/kernels/sve_u8_nhwc_max_generic_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/pooling/kernels/sve_u8q_nhwc_avg_generic_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/pooling/kernels/sve_u8q_nhwc_max_generic_depthfirst/generic.cpp
+ core/NEON/kernels/arm_gemm/interleave_indirect-sve.cpp
+ core/NEON/kernels/arm_gemm/kernels/sme2_gemv_bf16fp32_dot_16VL/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/sme2_gemv_fp32_mla_16VL/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/sme2_gemv_fp32bf16fp32_dot_16VL/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/sme2_gemv_s8qa_dot_16VL/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/sme2_gemv_u8qa_dot_16VL/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/sme2_interleaved_nomerge_bf16fp32_mopa_1VLx4VL/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/sme2_interleaved_nomerge_bf16fp32_mopa_2VLx2VL/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/sme2_interleaved_nomerge_bf16fp32_mopa_4VLx1VL/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/sme2_interleaved_nomerge_fp32_mopa_1VLx4VL/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/sme2_interleaved_nomerge_fp32_mopa_2VLx2VL/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/sme2_interleaved_nomerge_fp32_mopa_4VLx1VL/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/sme2_interleaved_nomerge_s8q_mopa_1VLx4VL/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/sme2_interleaved_nomerge_s8q_mopa_2VLx2VL/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/sme2_interleaved_nomerge_s8q_mopa_4VLx1VL/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/sme2_interleaved_nomerge_s8s32_mopa_1VLx4VL/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/sme2_interleaved_nomerge_s8s32_mopa_2VLx2VL/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/sme2_interleaved_nomerge_s8s32_mopa_4VLx1VL/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/sme2_interleaved_nomerge_u8q_mopa_1VLx4VL/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/sme2_interleaved_nomerge_u8q_mopa_2VLx2VL/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/sme2_interleaved_nomerge_u8q_mopa_4VLx1VL/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/sve_ffhybrid_bf16fp32_mmla_6x4VL/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/sve_ffhybrid_fp16_mla_6x4VL/a64fx.cpp
+ core/NEON/kernels/arm_gemm/kernels/sve_ffhybrid_fp16_mla_6x4VL/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/sve_ffhybrid_fp32_mla_6x4VL/a64fx.cpp
+ core/NEON/kernels/arm_gemm/kernels/sve_ffhybrid_fp32_mla_6x4VL/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/sve_ffhybrid_fp32bf16fp32_mmla_4x6VL/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/sve_ffinterleaved_bf16fp32_mmla_8x3VL/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/sve_ffinterleaved_fp16_mla_8x3VL/a64fx.cpp
+ core/NEON/kernels/arm_gemm/kernels/sve_ffinterleaved_fp16_mla_8x3VL/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/sve_ffinterleaved_fp32_mla_8x3VL/a64fx.cpp
+ core/NEON/kernels/arm_gemm/kernels/sve_ffinterleaved_fp32_mla_8x3VL/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/sve_hybrid_bf16fp32_dot_6x4VL/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/sve_hybrid_bf16fp32_mmla_6x4VL/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/sve_hybrid_fp16_mla_6x4VL/a64fx.cpp
+ core/NEON/kernels/arm_gemm/kernels/sve_hybrid_fp16_mla_6x4VL/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/sve_hybrid_fp32_mla_6x4VL/a64fx.cpp
+ core/NEON/kernels/arm_gemm/kernels/sve_hybrid_fp32_mla_6x4VL/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/sve_hybrid_fp32_mla_8x1VL/a64fx.cpp
+ core/NEON/kernels/arm_gemm/kernels/sve_hybrid_fp32_mla_8x1VL/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/sve_hybrid_fp32bf16fp32_mmla_4x6VL/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/sve_hybrid_fp32bf16fp32_mmla_6x4VL/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/sve_hybrid_s8qa_dot_4x4VL/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/sve_hybrid_s8qa_mmla_4x4VL/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/sve_hybrid_s8qs_dot_6x4VL/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/sve_hybrid_s8qs_mmla_6x4VL/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/sve_hybrid_s8s32_dot_6x4VL/a64fx.cpp
+ core/NEON/kernels/arm_gemm/kernels/sve_hybrid_s8s32_dot_6x4VL/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/sve_hybrid_s8s32_mmla_6x4VL/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/sve_hybrid_u8qa_dot_4x4VL/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/sve_hybrid_u8qa_mmla_4x4VL/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/sve_hybrid_u8u32_dot_6x4VL/a64fx.cpp
+ core/NEON/kernels/arm_gemm/kernels/sve_hybrid_u8u32_dot_6x4VL/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/sve_hybrid_u8u32_mmla_6x4VL/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/sve_interleaved_bf16fp32_dot_8x3VL/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/sve_interleaved_bf16fp32_mmla_8x3VL/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/sve_interleaved_fp16_mla_8x3VL/a64fx.cpp
+ core/NEON/kernels/arm_gemm/kernels/sve_interleaved_fp16_mla_8x3VL/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/sve_interleaved_fp32_mla_8x3VL/a64fx.cpp
+ core/NEON/kernels/arm_gemm/kernels/sve_interleaved_fp32_mla_8x3VL/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/sve_interleaved_fp32_mmla_8x3VL/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/sve_interleaved_s8s32_dot_8x3VL/a64fx.cpp
+ core/NEON/kernels/arm_gemm/kernels/sve_interleaved_s8s32_dot_8x3VL/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/sve_interleaved_s8s32_mmla_8x3VL/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/sve_interleaved_u8u32_dot_8x3VL/a64fx.cpp
+ core/NEON/kernels/arm_gemm/kernels/sve_interleaved_u8u32_dot_8x3VL/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/sve_interleaved_u8u32_mmla_8x3VL/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/sve_smallK_hybrid_fp32_mla_8x1VL/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/sve_smallK_hybrid_s8s32_dot_8x1VL/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/sve_smallK_hybrid_u8u32_dot_8x1VL/generic.cpp
+ core/NEON/kernels/arm_gemm/mergeresults-sve.cpp
+ core/NEON/kernels/arm_gemm/misc-sve.cpp
+ core/NEON/kernels/arm_gemm/transform-sve.cpp
+ core/NEON/kernels/batchnormalization/impl/SVE/fp16.cpp
+ core/NEON/kernels/batchnormalization/impl/SVE/fp32.cpp
+ core/NEON/kernels/convolution/winograd/input_transforms/sme_fp32_mla_6x6.cpp
+ core/NEON/kernels/convolution/winograd/input_transforms/sve_fp32_6x6.cpp
+ core/NEON/kernels/convolution/winograd/output_transforms/sme_fp32_mopa_4x4_3x3.cpp
+ cpu/kernels/activation/generic/sve/fp16.cpp
+ cpu/kernels/activation/generic/sve/fp32.cpp
+ cpu/kernels/activation/generic/sve/lut.cpp
+ cpu/kernels/add/generic/sve/fp16.cpp
+ cpu/kernels/add/generic/sve/fp32.cpp
+ cpu/kernels/add/generic/sve/impl.cpp
+ cpu/kernels/add/generic/sve/integer.cpp
+ cpu/kernels/elementwise_binary/generic/sve/fp16.cpp
+ cpu/kernels/elementwise_binary/generic/sve/fp32.cpp
+ cpu/kernels/elementwise_binary/generic/sve/impl.cpp
+ cpu/kernels/elementwise_binary/generic/sve/integer.cpp
+ cpu/kernels/elementwise_unary/generic/sve/fp16.cpp
+ cpu/kernels/elementwise_unary/generic/sve/fp32.cpp
+ cpu/kernels/elementwise_unary/generic/sve/impl.cpp
+ cpu/kernels/elementwise_unary/generic/sve/integer.cpp
+ cpu/kernels/scale/sve/fp16.cpp
+ cpu/kernels/scale/sve/fp32.cpp
+ cpu/kernels/scale/sve/integer.cpp
+ cpu/kernels/scale/sve/qasymm8.cpp
+ cpu/kernels/scale/sve/qasymm8_signed.cpp
+ cpu/kernels/softmax/generic/sve/fp16.cpp
+ cpu/kernels/softmax/generic/sve/fp32.cpp
+ cpu/kernels/softmax/generic/sve/impl.cpp
+ cpu/kernels/softmax/generic/sve/qasymm8.cpp
+ cpu/kernels/softmax/generic/sve/qasymm8_signed.cpp
+)
+
+target_sources(
+ arm_compute_sve2
+ PRIVATE
+ cpu/kernels/activation/generic/sve2/qasymm8.cpp
+ cpu/kernels/activation/generic/sve2/qasymm8_signed.cpp
+ cpu/kernels/activation/generic/sve2/qsymm16.cpp
+ cpu/kernels/add/generic/sve2/qasymm8.cpp
+ cpu/kernels/add/generic/sve2/qasymm8_signed.cpp
+ cpu/kernels/add/generic/sve2/qsymm16.cpp
+ cpu/kernels/elementwise_binary/generic/sve2/qasymm8.cpp
+ cpu/kernels/elementwise_binary/generic/sve2/qasymm8_signed.cpp
+ cpu/kernels/softmax/generic/sve2/impl.cpp
+ cpu/kernels/softmax/generic/sve2/qasymm8.cpp
+ cpu/kernels/softmax/generic/sve2/qasymm8_signed.cpp
+)
+
+target_sources(
+ arm_compute_core
+ PRIVATE
+ c/AclContext.cpp
+ c/AclOperator.cpp
+ c/AclQueue.cpp
+ c/AclTensor.cpp
+ c/AclTensorPack.cpp
+ c/AclVersion.cpp
+ c/operators/AclActivation.cpp
+ common/AllocatorWrapper.cpp
+ common/IOperator.cpp
+ common/ITensorV2.cpp
+ common/TensorPack.cpp
+ common/cpuinfo/CpuInfo.cpp
+ common/cpuinfo/CpuIsaInfo.cpp
+ common/cpuinfo/CpuModel.cpp
+ common/utils/LegacySupport.cpp
+ core/AccessWindowAutoPadding.cpp
+ core/AccessWindowStatic.cpp
+ core/AccessWindowTranspose.cpp
+ core/CPP/CPPTypes.cpp
+ core/CPP/kernels/CPPBoxWithNonMaximaSuppressionLimitKernel.cpp
+ core/CPP/kernels/CPPNonMaximumSuppressionKernel.cpp
+ core/CPP/kernels/CPPPermuteKernel.cpp
+ core/CPP/kernels/CPPTopKVKernel.cpp
+ core/CPP/kernels/CPPUpsampleKernel.cpp
+ core/Error.cpp
+ core/GPUTarget.cpp
+ core/Helpers.cpp
+ core/IAccessWindow.cpp
+ core/IKernel.cpp
+ core/ITensor.cpp
+ core/ITensorPack.cpp
+ core/NEON/kernels/NEBatchNormalizationLayerKernel.cpp
+ core/NEON/kernels/NEBatchToSpaceLayerKernel.cpp
+ core/NEON/kernels/NEBitwiseAndKernel.cpp
+ core/NEON/kernels/NEBitwiseNotKernel.cpp
+ core/NEON/kernels/NEBitwiseOrKernel.cpp
+ core/NEON/kernels/NEBitwiseXorKernel.cpp
+ core/NEON/kernels/NEBoundingBoxTransformKernel.cpp
+ core/NEON/kernels/NEChannelShuffleLayerKernel.cpp
+ core/NEON/kernels/NECropKernel.cpp
+ core/NEON/kernels/NEDepthToSpaceLayerKernel.cpp
+ core/NEON/kernels/NEFFTDigitReverseKernel.cpp
+ core/NEON/kernels/NEFFTRadixStageKernel.cpp
+ core/NEON/kernels/NEFFTScaleKernel.cpp
+ core/NEON/kernels/NEFillBorderKernel.cpp
+ core/NEON/kernels/NEFuseBatchNormalizationKernel.cpp
+ core/NEON/kernels/NEGatherKernel.cpp
+ core/NEON/kernels/NEGenerateProposalsLayerKernel.cpp
+ core/NEON/kernels/NEInstanceNormalizationLayerKernel.cpp
+ core/NEON/kernels/NEL2NormalizeLayerKernel.cpp
+ core/NEON/kernels/NELogicalKernel.cpp
+ core/NEON/kernels/NEMeanStdDevNormalizationKernel.cpp
+ core/NEON/kernels/NENormalizationLayerKernel.cpp
+ core/NEON/kernels/NEPadLayerKernel.cpp
+ core/NEON/kernels/NEPriorBoxLayerKernel.cpp
+ core/NEON/kernels/NEQLSTMLayerNormalizationKernel.cpp
+ core/NEON/kernels/NEROIAlignLayerKernel.cpp
+ core/NEON/kernels/NEROIPoolingLayerKernel.cpp
+ core/NEON/kernels/NERangeKernel.cpp
+ core/NEON/kernels/NEReductionOperationKernel.cpp
+ core/NEON/kernels/NEReorgLayerKernel.cpp
+ core/NEON/kernels/NEReverseKernel.cpp
+ core/NEON/kernels/NESelectKernel.cpp
+ core/NEON/kernels/NESpaceToBatchLayerKernel.cpp
+ core/NEON/kernels/NESpaceToDepthLayerKernel.cpp
+ core/NEON/kernels/NEStackLayerKernel.cpp
+ core/NEON/kernels/NEStridedSliceKernel.cpp
+ core/NEON/kernels/NETileKernel.cpp
+ core/NEON/kernels/arm_conv/addressing.cpp
+ core/NEON/kernels/arm_conv/depthwise/depthwise_fp16.cpp
+ core/NEON/kernels/arm_conv/depthwise/depthwise_fp32.cpp
+ core/NEON/kernels/arm_conv/depthwise/depthwise_s8q.cpp
+ core/NEON/kernels/arm_conv/depthwise/depthwise_strategies_common.cpp
+ core/NEON/kernels/arm_conv/depthwise/depthwise_u8q.cpp
+ core/NEON/kernels/arm_conv/depthwise/depthwise_u8s8u8q.cpp
+ core/NEON/kernels/arm_conv/depthwise/interleaves/8b_mla.cpp
+ core/NEON/kernels/arm_conv/depthwise/interleaves/a64_s8q_3x3_dot.cpp
+ core/NEON/kernels/arm_conv/depthwise/interleaves/a64_u8q_3x3_dot.cpp
+ core/NEON/kernels/arm_conv/depthwise/interleaves/generic.cpp
+ core/NEON/kernels/arm_conv/depthwise/interleaves/generic_quantized_dot_product.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/a64_fp16_nhwc_3x3_s1_output2x2_mla_depthfirst/generic_direct.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/a64_fp16_nhwc_3x3_s1_output2x2_mla_depthfirst/generic_indirect.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/a64_fp16_nhwc_3x3_s1_output3x3_mla_depthfirst/generic_direct.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/a64_fp16_nhwc_3x3_s1_output3x3_mla_depthfirst/generic_indirect.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/a64_fp16_nhwc_3x3_s1_output4x4_mla_depthfirst/generic_direct.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/a64_fp16_nhwc_3x3_s1_output4x4_mla_depthfirst/generic_indirect.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/a64_fp16_nhwc_3x3_s2_output2x2_mla_depthfirst/generic_direct.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/a64_fp16_nhwc_3x3_s2_output2x2_mla_depthfirst/generic_indirect.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/a64_fp16_nhwc_5x5_s1_output2x2_mla_depthfirst/generic_direct.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/a64_fp16_nhwc_5x5_s1_output2x2_mla_depthfirst/generic_indirect.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/a64_fp16_nhwc_generic_output9_mla_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/a64_fp16_packed_to_nhwc_generic_with_multiplier_output2x8_mla_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/a64_fp32_nhwc_3x3_s1_output2x2_mla_depthfirst/generic_direct.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/a64_fp32_nhwc_3x3_s1_output2x2_mla_depthfirst/generic_indirect.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/a64_fp32_nhwc_3x3_s1_output3x3_mla_depthfirst/generic_direct.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/a64_fp32_nhwc_3x3_s1_output3x3_mla_depthfirst/generic_indirect.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/a64_fp32_nhwc_3x3_s1_output4x4_mla_depthfirst/generic_direct.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/a64_fp32_nhwc_3x3_s1_output4x4_mla_depthfirst/generic_indirect.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/a64_fp32_nhwc_3x3_s2_output2x2_mla_depthfirst/generic_direct.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/a64_fp32_nhwc_3x3_s2_output2x2_mla_depthfirst/generic_indirect.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/a64_fp32_nhwc_5x5_s1_output2x2_mla_depthfirst/generic_direct.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/a64_fp32_nhwc_5x5_s1_output2x2_mla_depthfirst/generic_indirect.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/a64_fp32_nhwc_generic_output9_mla_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/a64_fp32_packed_to_nhwc_3x3_s2_with_multiplier_output3x3_mla_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/a64_fp32_packed_to_nhwc_5x5_s1_with_multiplier_output2x4_mla_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/a64_fp32_packed_to_nhwc_generic_with_multiplier_output2x8_mla_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/a64_s8q_nhwc_3x3_s1_output2x2_dot_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/a64_s8q_nhwc_3x3_s1_output2x2_mla_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/a64_s8q_nhwc_3x3_s2_output2x2_mla_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/a64_s8q_nhwc_5x5_s1_output2x2_mla_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/a64_s8q_nhwc_generic_output9_mla_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/a64_s8q_packed_to_nhwc_3x3_s2_with_multiplier_output2x4_dot_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/a64_s8q_packed_to_nhwc_5x5_s1_with_multiplier_output4x2_dot_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/a64_s8q_packed_to_nhwc_generic_with_multiplier_output2x8_mla_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/a64_s8qs_nhwc_3x3_s1_output2x2_dot_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/a64_u8q_nhwc_3x3_s1_output2x2_dot_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/a64_u8q_nhwc_3x3_s1_output2x2_mla_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/a64_u8q_nhwc_3x3_s2_output2x2_mla_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/a64_u8q_nhwc_5x5_s1_output2x2_mla_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/a64_u8q_nhwc_generic_output9_mla_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/a64_u8q_packed_to_nhwc_3x3_s2_with_multiplier_output2x4_dot_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/a64_u8q_packed_to_nhwc_5x5_s1_with_multiplier_output4x2_dot_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/a64_u8q_packed_to_nhwc_generic_with_multiplier_output2x8_mla_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/a64_u8qa_nhwc_3x3_s1_output2x2_mla_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/a64_u8qa_nhwc_3x3_s2_output2x2_mla_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/a64_u8qa_nhwc_5x5_s1_output2x2_mla_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/a64_u8s8u8q_nhwc_3x3_s1_output2x2_mla_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/a64_u8s8u8q_nhwc_3x3_s2_output2x2_mla_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/a64_u8s8u8q_nhwc_5x5_s1_output2x2_mla_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/a64_u8s8u8q_nhwc_generic_output9_mla_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/a64_u8s8u8q_packed_to_nhwc_generic_with_multiplier_output2x8_mla_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/pooling/kernels/a64_fp16_nhwc_avg_3x3_s1_output2x2_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/pooling/kernels/a64_fp16_nhwc_avg_generic_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/pooling/kernels/a64_fp16_nhwc_max_2x2_s1_output2x2_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/pooling/kernels/a64_fp16_nhwc_max_generic_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/pooling/kernels/a64_fp32_nhwc_avg_3x3_s1_output2x2_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/pooling/kernels/a64_fp32_nhwc_avg_generic_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/pooling/kernels/a64_fp32_nhwc_max_2x2_s1_output2x2_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/pooling/kernels/a64_fp32_nhwc_max_generic_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/pooling/kernels/a64_s8_nhwc_avg_generic_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/pooling/kernels/a64_s8_nhwc_max_2x2_s1_output2x2_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/pooling/kernels/a64_s8_nhwc_max_generic_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/pooling/kernels/a64_s8q_nhwc_avg_generic_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/pooling/kernels/a64_s8q_nhwc_max_generic_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/pooling/kernels/a64_u8_nhwc_avg_generic_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/pooling/kernels/a64_u8_nhwc_max_2x2_s1_output2x2_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/pooling/kernels/a64_u8_nhwc_max_generic_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/pooling/kernels/a64_u8q_nhwc_avg_generic_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/pooling/kernels/a64_u8q_nhwc_max_generic_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/pooling/kernels/cpp_nhwc_1x1_stride_any_depthfirst/generic.cpp
+ core/NEON/kernels/arm_conv/pooling/pooling_fp16.cpp
+ core/NEON/kernels/arm_conv/pooling/pooling_fp32.cpp
+ core/NEON/kernels/arm_conv/pooling/pooling_s8.cpp
+ core/NEON/kernels/arm_conv/pooling/pooling_s8q.cpp
+ core/NEON/kernels/arm_conv/pooling/pooling_u8.cpp
+ core/NEON/kernels/arm_conv/pooling/pooling_u8q.cpp
+ core/NEON/kernels/arm_gemm/gemm_bf16.cpp
+ core/NEON/kernels/arm_gemm/gemm_fp16.cpp
+ core/NEON/kernels/arm_gemm/gemm_fp32.cpp
+ core/NEON/kernels/arm_gemm/gemm_int16.cpp
+ core/NEON/kernels/arm_gemm/gemm_int8.cpp
+ core/NEON/kernels/arm_gemm/gemm_qint8.cpp
+ core/NEON/kernels/arm_gemm/gemm_quint8.cpp
+ core/NEON/kernels/arm_gemm/gemm_uint16.cpp
+ core/NEON/kernels/arm_gemm/gemm_uint8.cpp
+ core/NEON/kernels/arm_gemm/interleave_indirect.cpp
+ core/NEON/kernels/arm_gemm/kernels/a64_ffhybrid_bf16fp32_mmla_6x16/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/a64_ffhybrid_fp16_mla_6x32/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/a64_ffhybrid_fp32_mla_6x16/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/a64_ffhybrid_fp32bf16fp32_mmla_4x24/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/a64_ffinterleaved_bf16fp32_dot_8x12/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/a64_ffinterleaved_bf16fp32_mmla_8x12/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/a64_ffinterleaved_fp16_mla_8x24/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/a64_ffinterleaved_fp32_mla_8x12/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/a64_gemm_s16_8x12/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/a64_gemm_s8_4x4/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/a64_gemm_s8_8x12/a55r1.cpp
+ core/NEON/kernels/arm_gemm/kernels/a64_gemm_s8_8x12/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/a64_gemm_s8_8x12/x1.cpp
+ core/NEON/kernels/arm_gemm/kernels/a64_gemm_u16_8x12/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/a64_gemm_u8_4x4/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/a64_gemm_u8_8x12/a55r1.cpp
+ core/NEON/kernels/arm_gemm/kernels/a64_gemm_u8_8x12/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/a64_gemm_u8_8x12/x1.cpp
+ core/NEON/kernels/arm_gemm/kernels/a64_hgemm_8x24/a55r1.cpp
+ core/NEON/kernels/arm_gemm/kernels/a64_hgemm_8x24/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/a64_hgemm_8x24/x1.cpp
+ core/NEON/kernels/arm_gemm/kernels/a64_hybrid_bf16fp32_dot_6x16/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/a64_hybrid_bf16fp32_mmla_6x16/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/a64_hybrid_fp16_mla_6x32/a55.cpp
+ core/NEON/kernels/arm_gemm/kernels/a64_hybrid_fp16_mla_6x32/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/a64_hybrid_fp32_mla_4x24/a55.cpp
+ core/NEON/kernels/arm_gemm/kernels/a64_hybrid_fp32_mla_4x24/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/a64_hybrid_fp32_mla_6x16/a55.cpp
+ core/NEON/kernels/arm_gemm/kernels/a64_hybrid_fp32_mla_6x16/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/a64_hybrid_fp32_mla_8x4/a55.cpp
+ core/NEON/kernels/arm_gemm/kernels/a64_hybrid_fp32_mla_8x4/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/a64_hybrid_fp32bf16fp32_mmla_4x24/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/a64_hybrid_fp32bf16fp32_mmla_6x16/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/a64_hybrid_s8qa_dot_4x16/a55.cpp
+ core/NEON/kernels/arm_gemm/kernels/a64_hybrid_s8qa_dot_4x16/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/a64_hybrid_s8qa_mmla_4x16/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/a64_hybrid_s8qs_dot_6x16/a55.cpp
+ core/NEON/kernels/arm_gemm/kernels/a64_hybrid_s8qs_dot_6x16/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/a64_hybrid_s8qs_mmla_6x16/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/a64_hybrid_s8s32_dot_6x16/a55.cpp
+ core/NEON/kernels/arm_gemm/kernels/a64_hybrid_s8s32_dot_6x16/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/a64_hybrid_s8s32_mmla_6x16/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/a64_hybrid_u8qa_dot_4x16/a55.cpp
+ core/NEON/kernels/arm_gemm/kernels/a64_hybrid_u8qa_dot_4x16/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/a64_hybrid_u8qa_mmla_4x16/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/a64_hybrid_u8u32_dot_6x16/a55.cpp
+ core/NEON/kernels/arm_gemm/kernels/a64_hybrid_u8u32_dot_6x16/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/a64_hybrid_u8u32_mmla_6x16/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/a64_interleaved_bf16fp32_dot_8x12/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/a64_interleaved_bf16fp32_dot_8x12/x1.cpp
+ core/NEON/kernels/arm_gemm/kernels/a64_interleaved_bf16fp32_mmla_8x12/a510.cpp
+ core/NEON/kernels/arm_gemm/kernels/a64_interleaved_bf16fp32_mmla_8x12/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/a64_interleaved_s8s32_mmla_8x12/a510.cpp
+ core/NEON/kernels/arm_gemm/kernels/a64_interleaved_s8s32_mmla_8x12/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/a64_interleaved_u8u32_mmla_8x12/a510.cpp
+ core/NEON/kernels/arm_gemm/kernels/a64_interleaved_u8u32_mmla_8x12/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/a64_sgemm_8x12/a53.cpp
+ core/NEON/kernels/arm_gemm/kernels/a64_sgemm_8x12/a55.cpp
+ core/NEON/kernels/arm_gemm/kernels/a64_sgemm_8x12/a55r1.cpp
+ core/NEON/kernels/arm_gemm/kernels/a64_sgemm_8x12/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/a64_sgemm_8x12/x1.cpp
+ core/NEON/kernels/arm_gemm/kernels/a64_sgemm_8x6/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/a64_sgemv_pretransposed/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/a64_smallK_hybrid_fp32_mla_6x4/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/a64_smallK_hybrid_fp32_mla_8x4/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/a64_smallK_hybrid_s8s32_dot_6x4/a55.cpp
+ core/NEON/kernels/arm_gemm/kernels/a64_smallK_hybrid_s8s32_dot_6x4/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/a64_smallK_hybrid_s8s32_dot_8x4/a55.cpp
+ core/NEON/kernels/arm_gemm/kernels/a64_smallK_hybrid_s8s32_dot_8x4/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/a64_smallK_hybrid_u8u32_dot_6x4/a55.cpp
+ core/NEON/kernels/arm_gemm/kernels/a64_smallK_hybrid_u8u32_dot_6x4/generic.cpp
+ core/NEON/kernels/arm_gemm/kernels/a64_smallK_hybrid_u8u32_dot_8x4/a55.cpp
+ core/NEON/kernels/arm_gemm/kernels/a64_smallK_hybrid_u8u32_dot_8x4/generic.cpp
+ core/NEON/kernels/arm_gemm/mergeresults-fp16.cpp
+ core/NEON/kernels/arm_gemm/mergeresults.cpp
+ core/NEON/kernels/arm_gemm/misc.cpp
+ core/NEON/kernels/arm_gemm/quantized.cpp
+ core/NEON/kernels/arm_gemm/rowsum_indirect_s8.cpp
+ core/NEON/kernels/arm_gemm/rowsum_indirect_u8.cpp
+ core/NEON/kernels/arm_gemm/transform.cpp
+ core/NEON/kernels/batchnormalization/impl/NEON/fp16.cpp
+ core/NEON/kernels/batchnormalization/impl/NEON/fp32.cpp
+ core/NEON/kernels/convolution/common/padding.cpp
+ core/NEON/kernels/convolution/common/qasymm8.cpp
+ core/NEON/kernels/convolution/common/qsymm8.cpp
+ core/NEON/kernels/convolution/common/utils.cpp
+ core/NEON/kernels/convolution/winograd/input_transforms/a64_fp16_6x6.cpp
+ core/NEON/kernels/convolution/winograd/input_transforms/a64_fp32_6x6.cpp
+ core/NEON/kernels/convolution/winograd/input_transforms/arm_fp32_1x8.cpp
+ core/NEON/kernels/convolution/winograd/input_transforms/arm_fp32_4x4.cpp
+ core/NEON/kernels/convolution/winograd/input_transforms/arm_fp32_6x6.cpp
+ core/NEON/kernels/convolution/winograd/input_transforms_fp16.cpp
+ core/NEON/kernels/convolution/winograd/input_transforms_fp32.cpp
+ core/NEON/kernels/convolution/winograd/output_transforms/a64_fp16_4x4_3x3.cpp
+ core/NEON/kernels/convolution/winograd/output_transforms/arm_fp32_1x2_1x7.cpp
+ core/NEON/kernels/convolution/winograd/output_transforms/arm_fp32_1x4_1x5.cpp
+ core/NEON/kernels/convolution/winograd/output_transforms/arm_fp32_1x6_1x3.cpp
+ core/NEON/kernels/convolution/winograd/output_transforms/arm_fp32_2x2_3x3.cpp
+ core/NEON/kernels/convolution/winograd/output_transforms/arm_fp32_2x2_5x5.cpp
+ core/NEON/kernels/convolution/winograd/output_transforms/arm_fp32_4x4_3x3.cpp
+ core/NEON/kernels/convolution/winograd/output_transforms_fp16.cpp
+ core/NEON/kernels/convolution/winograd/output_transforms_fp32.cpp
+ core/NEON/kernels/convolution/winograd/weight_transforms/a64_fp16_4x4_3x3.cpp
+ core/NEON/kernels/convolution/winograd/weight_transforms/arm_fp32_2x2_3x3.cpp
+ core/NEON/kernels/convolution/winograd/weight_transforms/arm_fp32_2x2_5x5.cpp
+ core/NEON/kernels/convolution/winograd/weight_transforms/arm_fp32_4x4_3x3.cpp
+ core/NEON/kernels/convolution/winograd/weight_transforms/cpp_fp32_1x2_1x7.cpp
+ core/NEON/kernels/convolution/winograd/weight_transforms/cpp_fp32_1x4_1x5.cpp
+ core/NEON/kernels/convolution/winograd/weight_transforms/cpp_fp32_1x6_1x3.cpp
+ core/NEON/kernels/convolution/winograd/weight_transforms_fp16.cpp
+ core/NEON/kernels/convolution/winograd/weight_transforms_fp32.cpp
+ core/NEON/kernels/convolution/winograd/winograd_fp16.cpp
+ core/NEON/kernels/convolution/winograd/winograd_fp32.cpp
+ core/Rounding.cpp
+ core/Size2D.cpp
+ core/SubTensorInfo.cpp
+ core/TensorInfo.cpp
+ core/Utils.cpp
+ core/Validate.cpp
+ core/Version.cpp
+ core/helpers/SoftmaxHelpers.cpp
+ core/helpers/WindowHelpers.cpp
+ core/utils/AssemblyUtils.cpp
+ core/utils/ScaleUtils.cpp
+ core/utils/helpers/fft.cpp
+ core/utils/helpers/tensor_transform.cpp
+ core/utils/io/FileHandler.cpp
+ core/utils/logging/FilePrinter.cpp
+ core/utils/logging/Helpers.cpp
+ core/utils/logging/Logger.cpp
+ core/utils/logging/LoggerRegistry.cpp
+ core/utils/misc/MMappedFile.cpp
+ core/utils/quantization/AsymmHelpers.cpp
+ cpu/CpuContext.cpp
+ cpu/CpuQueue.cpp
+ cpu/CpuTensor.cpp
+ cpu/kernels/CpuActivationKernel.cpp
+ cpu/kernels/CpuAddKernel.cpp
+ cpu/kernels/CpuCastKernel.cpp
+ cpu/kernels/CpuCol2ImKernel.cpp
+ cpu/kernels/CpuConcatenateBatchKernel.cpp
+ cpu/kernels/CpuConcatenateDepthKernel.cpp
+ cpu/kernels/CpuConcatenateHeightKernel.cpp
+ cpu/kernels/CpuConcatenateWidthKernel.cpp
+ cpu/kernels/CpuConvertFullyConnectedWeightsKernel.cpp
+ cpu/kernels/CpuConvertQuantizedSignednessKernel.cpp
+ cpu/kernels/CpuCopyKernel.cpp
+ cpu/kernels/CpuDepthwiseConv2dNativeKernel.cpp
+ cpu/kernels/CpuDequantizeKernel.cpp
+ cpu/kernels/CpuDirectConv2dKernel.cpp
+ cpu/kernels/CpuDirectConv2dOutputStageKernel.cpp
+ cpu/kernels/CpuDirectConv3dKernel.cpp
+ cpu/kernels/CpuElementwiseKernel.cpp
+ cpu/kernels/CpuElementwiseUnaryKernel.cpp
+ cpu/kernels/CpuFillKernel.cpp
+ cpu/kernels/CpuFloorKernel.cpp
+ cpu/kernels/CpuGemmInterleave4x4Kernel.cpp
+ cpu/kernels/CpuGemmLowpMatrixMultiplyKernel.cpp
+ cpu/kernels/CpuGemmLowpMatrixReductionKernel.cpp
+ cpu/kernels/CpuGemmLowpOffsetContributionKernel.cpp
+ cpu/kernels/CpuGemmLowpOffsetContributionOutputStageKernel.cpp
+ cpu/kernels/CpuGemmLowpQuantizeDownInt32ScaleKernel.cpp
+ cpu/kernels/CpuGemmLowpQuantizeDownInt32ToInt16ScaleByFixedPointKernel.cpp
+ cpu/kernels/CpuGemmLowpQuantizeDownInt32ToInt8ScaleByFixedPointKernel.cpp
+ cpu/kernels/CpuGemmLowpQuantizeDownInt32ToUint8ScaleByFixedPointKernel.cpp
+ cpu/kernels/CpuGemmMatrixAdditionKernel.cpp
+ cpu/kernels/CpuGemmMatrixMultiplyKernel.cpp
+ cpu/kernels/CpuGemmTranspose1xWKernel.cpp
+ cpu/kernels/CpuIm2ColKernel.cpp
+ cpu/kernels/CpuMaxUnpoolingLayerKernel.cpp
+ cpu/kernels/CpuMulKernel.cpp
+ cpu/kernels/CpuPermuteKernel.cpp
+ cpu/kernels/CpuPool2dKernel.cpp
+ cpu/kernels/CpuPool3dKernel.cpp
+ cpu/kernels/CpuQuantizeKernel.cpp
+ cpu/kernels/CpuReshapeKernel.cpp
+ cpu/kernels/CpuScaleKernel.cpp
+ cpu/kernels/CpuSoftmaxKernel.cpp
+ cpu/kernels/CpuSubKernel.cpp
+ cpu/kernels/CpuTransposeKernel.cpp
+ cpu/kernels/CpuWeightsReshapeKernel.cpp
+ cpu/kernels/CpuWinogradConv2dKernel.cpp
+ cpu/kernels/activation/generic/neon/fp16.cpp
+ cpu/kernels/activation/generic/neon/fp32.cpp
+ cpu/kernels/activation/generic/neon/lut.cpp
+ cpu/kernels/activation/generic/neon/qasymm8.cpp
+ cpu/kernels/activation/generic/neon/qasymm8_signed.cpp
+ cpu/kernels/activation/generic/neon/qsymm16.cpp
+ cpu/kernels/add/generic/neon/fp16.cpp
+ cpu/kernels/add/generic/neon/fp32.cpp
+ cpu/kernels/add/generic/neon/impl.cpp
+ cpu/kernels/add/generic/neon/integer.cpp
+ cpu/kernels/add/generic/neon/qasymm8.cpp
+ cpu/kernels/add/generic/neon/qasymm8_signed.cpp
+ cpu/kernels/add/generic/neon/qsymm16.cpp
+ cpu/kernels/boundingboxtransform/generic/neon/fp16.cpp
+ cpu/kernels/boundingboxtransform/generic/neon/fp32.cpp
+ cpu/kernels/boundingboxtransform/generic/neon/impl.cpp
+ cpu/kernels/boundingboxtransform/generic/neon/qsymm16.cpp
+ cpu/kernels/cast/generic/neon/bfloat16.cpp
+ cpu/kernels/cast/generic/neon/fp16.cpp
+ cpu/kernels/crop/generic/neon/fp16.cpp
+ cpu/kernels/crop/generic/neon/fp32.cpp
+ cpu/kernels/crop/generic/neon/impl.cpp
+ cpu/kernels/crop/generic/neon/integer.cpp
+ cpu/kernels/depthwiseconv2d/generic/neon/fp16.cpp
+ cpu/kernels/depthwiseconv2d/generic/neon/fp32.cpp
+ cpu/kernels/depthwiseconv2d/generic/neon/impl.cpp
+ cpu/kernels/depthwiseconv2d/generic/neon/qasymm8.cpp
+ cpu/kernels/depthwiseconv2d/generic/neon/qasymm8_signed.cpp
+ cpu/kernels/directconv2d/nchw/all.cpp
+ cpu/kernels/directconv2d/nhwc/neon/fp32.cpp
+ cpu/kernels/directconv2d/nhwc/neon/impl.cpp
+ cpu/kernels/elementwise_binary/generic/neon/fp16.cpp
+ cpu/kernels/elementwise_binary/generic/neon/fp32.cpp
+ cpu/kernels/elementwise_binary/generic/neon/integer.cpp
+ cpu/kernels/elementwise_binary/generic/neon/qasymm8.cpp
+ cpu/kernels/elementwise_binary/generic/neon/qasymm8_signed.cpp
+ cpu/kernels/elementwise_unary/generic/neon/fp16.cpp
+ cpu/kernels/elementwise_unary/generic/neon/fp32.cpp
+ cpu/kernels/elementwise_unary/generic/neon/impl.cpp
+ cpu/kernels/elementwise_unary/generic/neon/integer.cpp
+ cpu/kernels/floor/neon/fp16.cpp
+ cpu/kernels/floor/neon/fp32.cpp
+ cpu/kernels/fuse_batch_normalization/generic/fp16.cpp
+ cpu/kernels/fuse_batch_normalization/generic/fp32.cpp
+ cpu/kernels/fuse_batch_normalization/generic/impl.cpp
+ cpu/kernels/fuse_batch_normalization/nchw/all.cpp
+ cpu/kernels/fuse_batch_normalization/nhwc/neon/fp16.cpp
+ cpu/kernels/fuse_batch_normalization/nhwc/neon/fp32.cpp
+ cpu/kernels/fuse_batch_normalization/nhwc/neon/impl.cpp
+ cpu/kernels/gemm_matrix_add/generic/neon/fp16.cpp
+ cpu/kernels/gemm_matrix_add/generic/neon/fp32.cpp
+ cpu/kernels/gemm_matrix_add/generic/neon/impl.cpp
+ cpu/kernels/gemm_matrix_mul/generic/neon/fp16.cpp
+ cpu/kernels/gemm_matrix_mul/generic/neon/fp32.cpp
+ cpu/kernels/gemm_matrix_mul/generic/neon/impl.cpp
+ cpu/kernels/genproposals/generic/neon/fp16.cpp
+ cpu/kernels/genproposals/generic/neon/fp32.cpp
+ cpu/kernels/genproposals/generic/neon/impl.cpp
+ cpu/kernels/genproposals/generic/neon/qsymm16.cpp
+ cpu/kernels/instancenorm/generic/neon/fp16.cpp
+ cpu/kernels/instancenorm/generic/neon/fp32.cpp
+ cpu/kernels/instancenorm/generic/neon/impl.cpp
+ cpu/kernels/internal/CpuDepthwiseConv2dAssemblyWrapperKernel.cpp
+ cpu/kernels/internal/CpuPool2dAssemblyWrapperKernel.cpp
+ cpu/kernels/l2normlayer/generic/neon/fp16.cpp
+ cpu/kernels/l2normlayer/generic/neon/fp32.cpp
+ cpu/kernels/l2normlayer/generic/neon/impl.cpp
+ cpu/kernels/maxunpool/generic/neon/fp16.cpp
+ cpu/kernels/maxunpool/generic/neon/fp32.cpp
+ cpu/kernels/maxunpool/generic/neon/impl.cpp
+ cpu/kernels/maxunpool/generic/neon/qasymm8.cpp
+ cpu/kernels/maxunpool/generic/neon/qasymm8_signed.cpp
+ cpu/kernels/meanstddevnorm/generic/neon/fp16.cpp
+ cpu/kernels/meanstddevnorm/generic/neon/fp32.cpp
+ cpu/kernels/meanstddevnorm/generic/neon/impl.cpp
+ cpu/kernels/meanstddevnorm/generic/neon/qasymm8.cpp
+ cpu/kernels/pool2d/neon/fp16.cpp
+ cpu/kernels/pool2d/neon/fp32.cpp
+ cpu/kernels/pool2d/neon/nchw/all.cpp
+ cpu/kernels/pool2d/neon/qasymm8.cpp
+ cpu/kernels/pool2d/neon/qasymm8_signed.cpp
+ cpu/kernels/pool3d/neon/fp16.cpp
+ cpu/kernels/pool3d/neon/fp32.cpp
+ cpu/kernels/pool3d/neon/impl.cpp
+ cpu/kernels/pool3d/neon/qasymm8.cpp
+ cpu/kernels/pool3d/neon/qasymm8_signed.cpp
+ cpu/kernels/range/generic/neon/fp16.cpp
+ cpu/kernels/range/generic/neon/fp32.cpp
+ cpu/kernels/range/generic/neon/impl.cpp
+ cpu/kernels/range/generic/neon/integer.cpp
+ cpu/kernels/roialign/generic/neon/fp16.cpp
+ cpu/kernels/roialign/generic/neon/fp32.cpp
+ cpu/kernels/roialign/generic/neon/impl.cpp
+ cpu/kernels/roialign/generic/neon/qasymm8.cpp
+ cpu/kernels/roialign/generic/neon/qasymm8_signed.cpp
+ cpu/kernels/scale/neon/fp16.cpp
+ cpu/kernels/scale/neon/integer.cpp
+ cpu/kernels/scale/neon/qasymm8.cpp
+ cpu/kernels/scale/neon/qasymm8_signed.cpp
+ cpu/kernels/select/generic/neon/fp16.cpp
+ cpu/kernels/select/generic/neon/fp32.cpp
+ cpu/kernels/select/generic/neon/impl.cpp
+ cpu/kernels/select/generic/neon/integer.cpp
+ cpu/kernels/softmax/generic/neon/fp16.cpp
+ cpu/kernels/softmax/generic/neon/fp32.cpp
+ cpu/kernels/softmax/generic/neon/impl.cpp
+ cpu/kernels/softmax/generic/neon/qasymm8.cpp
+ cpu/kernels/softmax/generic/neon/qasymm8_signed.cpp
+ cpu/kernels/sub/neon/qasymm8.cpp
+ cpu/kernels/sub/neon/qasymm8_signed.cpp
+ cpu/kernels/sub/neon/qsymm16.cpp
+ cpu/operators/CpuActivation.cpp
+ cpu/operators/CpuAdd.cpp
+ cpu/operators/CpuCast.cpp
+ cpu/operators/CpuConcatenate.cpp
+ cpu/operators/CpuConv2d.cpp
+ cpu/operators/CpuConvertFullyConnectedWeights.cpp
+ cpu/operators/CpuCopy.cpp
+ cpu/operators/CpuDepthwiseConv2d.cpp
+ cpu/operators/CpuDepthwiseConv2dAssemblyDispatch.cpp
+ cpu/operators/CpuDequantize.cpp
+ cpu/operators/CpuDirectConv2d.cpp
+ cpu/operators/CpuDirectConv3d.cpp
+ cpu/operators/CpuElementwise.cpp
+ cpu/operators/CpuElementwiseUnary.cpp
+ cpu/operators/CpuFill.cpp
+ cpu/operators/CpuFlatten.cpp
+ cpu/operators/CpuFloor.cpp
+ cpu/operators/CpuFullyConnected.cpp
+ cpu/operators/CpuGemm.cpp
+ cpu/operators/CpuGemmConv2d.cpp
+ cpu/operators/CpuGemmDirectConv2d.cpp
+ cpu/operators/CpuGemmLowpMatrixMultiplyCore.cpp
+ cpu/operators/CpuGemmLowpOutputStage.cpp
+ cpu/operators/CpuMaxUnpooling.cpp
+ cpu/operators/CpuMul.cpp
+ cpu/operators/CpuPermute.cpp
+ cpu/operators/CpuPool2d.cpp
+ cpu/operators/CpuPool3d.cpp
+ cpu/operators/CpuQuantize.cpp
+ cpu/operators/CpuReshape.cpp
+ cpu/operators/CpuScale.cpp
+ cpu/operators/CpuSoftmax.cpp
+ cpu/operators/CpuSub.cpp
+ cpu/operators/CpuTranspose.cpp
+ cpu/operators/CpuWinogradConv2d.cpp
+ cpu/operators/internal/CpuGemmAssemblyDispatch.cpp
+ runtime/Allocator.cpp
+ runtime/BlobLifetimeManager.cpp
+ runtime/BlobMemoryPool.cpp
+ runtime/CPP/CPPScheduler.cpp
+ runtime/CPP/ICPPSimpleFunction.cpp
+ runtime/CPP/SingleThreadScheduler.cpp
+ runtime/CPP/functions/CPPBoxWithNonMaximaSuppressionLimit.cpp
+ runtime/CPP/functions/CPPDetectionOutputLayer.cpp
+ runtime/CPP/functions/CPPDetectionPostProcessLayer.cpp
+ runtime/CPP/functions/CPPNonMaximumSuppression.cpp
+ runtime/CPP/functions/CPPPermute.cpp
+ runtime/CPP/functions/CPPTopKV.cpp
+ runtime/CPP/functions/CPPUpsample.cpp
+ runtime/IScheduler.cpp
+ runtime/ISimpleLifetimeManager.cpp
+ runtime/ITensorAllocator.cpp
+ runtime/IWeightsManager.cpp
+ runtime/Memory.cpp
+ runtime/MemoryManagerOnDemand.cpp
+ runtime/NEON/INEOperator.cpp
+ runtime/NEON/INESimpleFunction.cpp
+ runtime/NEON/INESimpleFunctionNoBorder.cpp
+ runtime/NEON/functions/NEActivationLayer.cpp
+ runtime/NEON/functions/NEArgMinMaxLayer.cpp
+ runtime/NEON/functions/NEArithmeticAddition.cpp
+ runtime/NEON/functions/NEArithmeticSubtraction.cpp
+ runtime/NEON/functions/NEBatchNormalizationLayer.cpp
+ runtime/NEON/functions/NEBatchToSpaceLayer.cpp
+ runtime/NEON/functions/NEBitwiseAnd.cpp
+ runtime/NEON/functions/NEBitwiseNot.cpp
+ runtime/NEON/functions/NEBitwiseOr.cpp
+ runtime/NEON/functions/NEBitwiseXor.cpp
+ runtime/NEON/functions/NEBoundingBoxTransform.cpp
+ runtime/NEON/functions/NECast.cpp
+ runtime/NEON/functions/NEChannelShuffleLayer.cpp
+ runtime/NEON/functions/NEConcatenateLayer.cpp
+ runtime/NEON/functions/NEConv3D.cpp
+ runtime/NEON/functions/NEConvertFullyConnectedWeights.cpp
+ runtime/NEON/functions/NEConvolutionLayer.cpp
+ runtime/NEON/functions/NECopy.cpp
+ runtime/NEON/functions/NECropResize.cpp
+ runtime/NEON/functions/NEDeconvolutionLayer.cpp
+ runtime/NEON/functions/NEDepthConvertLayer.cpp
+ runtime/NEON/functions/NEDepthToSpaceLayer.cpp
+ runtime/NEON/functions/NEDepthwiseConvolutionLayer.cpp
+ runtime/NEON/functions/NEDequantizationLayer.cpp
+ runtime/NEON/functions/NEDetectionPostProcessLayer.cpp
+ runtime/NEON/functions/NEDirectConvolutionLayer.cpp
+ runtime/NEON/functions/NEElementwiseOperations.cpp
+ runtime/NEON/functions/NEElementwiseUnaryLayer.cpp
+ runtime/NEON/functions/NEFFT1D.cpp
+ runtime/NEON/functions/NEFFT2D.cpp
+ runtime/NEON/functions/NEFFTConvolutionLayer.cpp
+ runtime/NEON/functions/NEFill.cpp
+ runtime/NEON/functions/NEFlattenLayer.cpp
+ runtime/NEON/functions/NEFloor.cpp
+ runtime/NEON/functions/NEFullyConnectedLayer.cpp
+ runtime/NEON/functions/NEFuseBatchNormalization.cpp
+ runtime/NEON/functions/NEGEMM.cpp
+ runtime/NEON/functions/NEGEMMConv2d.cpp
+ runtime/NEON/functions/NEGEMMConvolutionLayer.cpp
+ runtime/NEON/functions/NEGEMMLowpMatrixMultiplyCore.cpp
+ runtime/NEON/functions/NEGEMMLowpOutputStage.cpp
+ runtime/NEON/functions/NEGather.cpp
+ runtime/NEON/functions/NEGenerateProposalsLayer.cpp
+ runtime/NEON/functions/NEInstanceNormalizationLayer.cpp
+ runtime/NEON/functions/NEL2NormalizeLayer.cpp
+ runtime/NEON/functions/NELSTMLayer.cpp
+ runtime/NEON/functions/NELSTMLayerQuantized.cpp
+ runtime/NEON/functions/NELogical.cpp
+ runtime/NEON/functions/NEMaxUnpoolingLayer.cpp
+ runtime/NEON/functions/NEMeanStdDevNormalizationLayer.cpp
+ runtime/NEON/functions/NENormalizationLayer.cpp
+ runtime/NEON/functions/NEPReluLayer.cpp
+ runtime/NEON/functions/NEPadLayer.cpp
+ runtime/NEON/functions/NEPermute.cpp
+ runtime/NEON/functions/NEPixelWiseMultiplication.cpp
+ runtime/NEON/functions/NEPooling3dLayer.cpp
+ runtime/NEON/functions/NEPoolingLayer.cpp
+ runtime/NEON/functions/NEPriorBoxLayer.cpp
+ runtime/NEON/functions/NEQLSTMLayer.cpp
+ runtime/NEON/functions/NEQuantizationLayer.cpp
+ runtime/NEON/functions/NERNNLayer.cpp
+ runtime/NEON/functions/NEROIAlignLayer.cpp
+ runtime/NEON/functions/NEROIPoolingLayer.cpp
+ runtime/NEON/functions/NERange.cpp
+ runtime/NEON/functions/NEReduceMean.cpp
+ runtime/NEON/functions/NEReductionOperation.cpp
+ runtime/NEON/functions/NEReorgLayer.cpp
+ runtime/NEON/functions/NEReshapeLayer.cpp
+ runtime/NEON/functions/NEReverse.cpp
+ runtime/NEON/functions/NEScale.cpp
+ runtime/NEON/functions/NESelect.cpp
+ runtime/NEON/functions/NESlice.cpp
+ runtime/NEON/functions/NESoftmaxLayer.cpp
+ runtime/NEON/functions/NESpaceToBatchLayer.cpp
+ runtime/NEON/functions/NESpaceToDepthLayer.cpp
+ runtime/NEON/functions/NESplit.cpp
+ runtime/NEON/functions/NEStackLayer.cpp
+ runtime/NEON/functions/NEStridedSlice.cpp
+ runtime/NEON/functions/NETile.cpp
+ runtime/NEON/functions/NETranspose.cpp
+ runtime/NEON/functions/NEUnstack.cpp
+ runtime/NEON/functions/NEWinogradConvolutionLayer.cpp
+ runtime/OMP/OMPScheduler.cpp
+ runtime/OffsetLifetimeManager.cpp
+ runtime/OffsetMemoryPool.cpp
+ runtime/OperatorTensor.cpp
+ runtime/PoolManager.cpp
+ runtime/RuntimeContext.cpp
+ runtime/Scheduler.cpp
+ runtime/SchedulerFactory.cpp
+ runtime/SchedulerUtils.cpp
+ runtime/SubTensor.cpp
+ runtime/Tensor.cpp
+ runtime/TensorAllocator.cpp
+ runtime/Utils.cpp
+)
+ \ No newline at end of file
diff --git a/support/BUILD.bazel b/support/BUILD.bazel
new file mode 100644
index 0000000000..c2173d45b2
--- /dev/null
+++ b/support/BUILD.bazel
@@ -0,0 +1,28 @@
+# Copyright (c) 2023 Arm Limited.
+#
+# SPDX-License-Identifier: MIT
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to
+# deal in the Software without restriction, including without limitation the
+# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+# sell copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+cc_library(
+ name = "support",
+ hdrs = glob(["*.h"]),
+ visibility = ["//visibility:public"],
+ deps = ["//include"],
+)
diff --git a/tests/BUILD.bazel b/tests/BUILD.bazel
new file mode 100644
index 0000000000..57ea3f6576
--- /dev/null
+++ b/tests/BUILD.bazel
@@ -0,0 +1,92 @@
+# Copyright (c) 2023 Arm Limited.
+#
+# SPDX-License-Identifier: MIT
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to
+# deal in the Software without restriction, including without limitation the
+# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+# sell copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+#---------------------------------------------------------------------
+# Validation Framework Library
+
+cc_library(
+ name = "validation_framework",
+ srcs = glob([
+ "validation/reference/*.cpp",
+ "validation/*.cpp",
+ "*.h",
+ ]),
+ hdrs = glob([
+ "validation/reference/*.h",
+ "validation/**/*.h",
+ ]),
+ copts = [
+ "-march=armv8.2-a+fp16",
+ ],
+ linkstatic = True,
+ deps = [
+ "//:arm_compute",
+ "//:common_defines",
+ "//tests/framework",
+ ],
+)
+
+#---------------------------------------------------------------------
+# Validation Binary
+cc_binary(
+ name = "arm_compute_validation",
+ srcs = glob([
+ "validation/UNIT/**/*.cpp",
+ "validation/CPP/**/*.cpp",
+ "NEON/*.h",
+ "validation/NEON/**/*.cpp",
+ "validation/NEON/**/*.h",
+ "*.cpp",
+ "datasets/*.h",
+ "instruments/*.h",
+ ]),
+ copts = [
+ "-march=armv8.2-a+fp16",
+ "-ffp-contract=off",
+ ],
+ linkstatic = True,
+ deps = [
+ ":validation_framework",
+ "//:arm_compute",
+ "//:arm_compute_graph",
+ "//:common_defines",
+ "//tests/framework",
+ ],
+)
+
+#---------------------------------------------------------------------
+# Benchmark Binary
+cc_binary(
+ name = "arm_benchmark",
+ srcs = glob([
+ "benchmark/fixtures/*.h",
+ "benchmark/NEON/*.cpp",
+ "*.cpp",
+ ]),
+ copts = ["-march=armv8.2-a+fp16"],
+ linkstatic = True,
+ deps = [
+ ":arm_compute_validation",
+ ":validation_framework",
+ "//:arm_compute",
+ ],
+)
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
new file mode 100644
index 0000000000..163ab82e91
--- /dev/null
+++ b/tests/CMakeLists.txt
@@ -0,0 +1,130 @@
+# Copyright (c) 2023 Arm Limited.
+#
+# SPDX-License-Identifier: MIT
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to
+# deal in the Software without restriction, including without limitation the
+# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+# sell copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+target_sources(
+ arm_compute_validation_framework
+ PRIVATE validation/Validation.cpp
+ validation/Helpers.cpp
+ validation/reference/BoundingBoxTransform.cpp
+ validation/reference/GEMMReshapeRHSMatrix.cpp
+ validation/reference/ChannelShuffle.cpp
+ validation/reference/Logical.cpp
+ validation/reference/PoolingLayer.cpp
+ validation/reference/BitwiseNot.cpp
+ validation/reference/Conv3D.cpp
+ validation/reference/GEMMReshapeLHSMatrix.cpp
+ validation/reference/ComputeAllAnchors.cpp
+ validation/reference/DepthConcatenateLayer.cpp
+ validation/reference/TableLookup.cpp
+ validation/reference/ROIPoolingLayer.cpp
+ validation/reference/SliceOperations.cpp
+ validation/reference/GEMMLowp.cpp
+ validation/reference/Unstack.cpp
+ validation/reference/Pooling3dLayer.cpp
+ validation/reference/BitwiseOr.cpp
+ validation/reference/ReshapeLayer.cpp
+ validation/reference/SoftmaxLayer.cpp
+ validation/reference/Gather.cpp
+ validation/reference/Utils.cpp
+ validation/reference/Accumulate.cpp
+ validation/reference/CropResize.cpp
+ validation/reference/ReductionOperation.cpp
+ validation/reference/ConcatenateLayer.cpp
+ validation/reference/PixelWiseMultiplication.cpp
+ validation/reference/DepthConvertLayer.cpp
+ validation/reference/Erode.cpp
+ validation/reference/DepthToSpaceLayer.cpp
+ validation/reference/PadLayer.cpp
+ validation/reference/MeanStdDevNormalizationLayer.cpp
+ validation/reference/BitwiseXor.cpp
+ validation/reference/GEMM.cpp
+ validation/reference/NormalizePlanarYUVLayer.cpp
+ validation/reference/FuseBatchNormalization.cpp
+ validation/reference/BitwiseAnd.cpp
+ validation/reference/SpaceToDepth.cpp
+ validation/reference/NonMaximaSuppression.cpp
+ validation/reference/Reverse.cpp
+ validation/reference/DFT.cpp
+ validation/reference/L2NormalizeLayer.cpp
+ validation/reference/ActivationLayer.cpp
+ validation/reference/SpaceToBatch.cpp
+ validation/reference/PostOps.cpp
+ validation/reference/Im2Col.cpp
+ validation/reference/DequantizationLayer.cpp
+ validation/reference/DeconvolutionLayer.cpp
+ validation/reference/MinMaxLocation.cpp
+ validation/reference/Select.cpp
+ validation/reference/BatchNormalizationLayer.cpp
+ validation/reference/InstanceNormalizationLayer.cpp
+ validation/reference/ROIAlignLayer.cpp
+ validation/reference/ElementwiseUnary.cpp
+ validation/reference/MeanStdDev.cpp
+ validation/reference/QLSTMLayerNormalization.cpp
+ validation/reference/Col2Im.cpp
+ validation/reference/FlattenLayer.cpp
+ validation/reference/AbsoluteDifference.cpp
+ validation/reference/Transpose.cpp
+ validation/reference/StackLayer.cpp
+ validation/reference/NormalizationLayer.cpp
+ validation/reference/Copy.cpp
+ validation/reference/MaxUnpoolingLayer.cpp
+ validation/reference/Winograd.cpp
+ validation/reference/Permute.cpp
+ validation/reference/Comparisons.cpp
+ validation/reference/Tile.cpp
+ validation/reference/BatchToSpaceLayer.cpp
+ validation/reference/ElementwiseOperations.cpp
+ validation/reference/QuantizationLayer.cpp
+ validation/reference/NonMaxSuppression.cpp
+ validation/reference/WeightsReshape.cpp
+ validation/reference/ArithmeticOperations.cpp
+ validation/reference/ConvertFullyConnectedWeights.cpp
+ validation/reference/Floor.cpp
+ validation/reference/PriorBoxLayer.cpp
+ validation/reference/Scale.cpp
+ validation/reference/ReorgLayer.cpp
+ validation/reference/Range.cpp
+ validation/reference/ArithmeticDivision.cpp
+ validation/reference/DepthwiseConvolutionLayer.cpp
+ validation/reference/FullyConnectedLayer.cpp
+ validation/reference/ConvolutionLayer.cpp
+ framework/Framework.cpp
+ framework/Utils.cpp
+ framework/Exceptions.cpp
+ framework/DatasetModes.cpp
+ framework/TestFilter.cpp
+ framework/Profiler.cpp
+ framework/ParametersLibrary.cpp
+ framework/command_line/CommonOptions.cpp
+ framework/instruments/WallClockTimer.cpp
+ framework/instruments/InstrumentsStats.cpp
+ framework/instruments/Instruments.cpp
+ framework/instruments/SchedulerTimer.cpp
+ framework/instruments/hwc_names.hpp
+ framework/instruments/hwc.hpp
+ framework/printers/PrettyPrinter.cpp
+ framework/printers/Printer.cpp
+ framework/printers/JSONPrinter.cpp
+ framework/printers/Printers.cpp
+ AssetsLibrary.cpp
+ RawTensor.cpp
+ main.cpp)
diff --git a/tests/benchmark/CMakeLists.txt b/tests/benchmark/CMakeLists.txt
new file mode 100644
index 0000000000..a3a352681e
--- /dev/null
+++ b/tests/benchmark/CMakeLists.txt
@@ -0,0 +1,23 @@
+# Copyright (c) 2023 Arm Limited.
+#
+# SPDX-License-Identifier: MIT
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to
+# deal in the Software without restriction, including without limitation the
+# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+# sell copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+target_sources(arm_compute_benchmark PRIVATE NEON/Scale.cpp)
diff --git a/tests/framework/BUILD.bazel b/tests/framework/BUILD.bazel
new file mode 100644
index 0000000000..084d12c991
--- /dev/null
+++ b/tests/framework/BUILD.bazel
@@ -0,0 +1,60 @@
+# Copyright (c) 2023 Arm Limited.
+#
+# SPDX-License-Identifier: MIT
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to
+# deal in the Software without restriction, including without limitation the
+# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+# sell copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+cc_library(
+ name = "framework",
+ srcs = glob(
+ [
+ "*.cpp",
+ "command_line/*.cpp",
+ "printers/*.cpp",
+ "datasets/*.cpp",
+ "instruments/*.cpp",
+ "instruments/*.hpp",
+ ],
+ exclude = [
+ "**/*PMU*",
+ "**/*OpenCL*",
+ "**/*MaliCounter*",
+ ],
+ ),
+ hdrs = glob([
+ "*.h",
+ "command_line/*.h",
+ "printers/*.h",
+ "datasets/*.h",
+ "instruments/*.h",
+ ]),
+ copts = [
+ "-Wno-overloaded-virtual",
+ "-march=armv8.2-a+fp16",
+ ],
+ linkstatic = True,
+ visibility = ["//visibility:public"],
+ deps = [
+ "//arm_compute:core_headers",
+ "//arm_compute:graph_headers",
+ "//arm_compute:runtime_headers",
+ "//support",
+ "//utils",
+ ],
+)
diff --git a/tests/validation/CMakeLists.txt b/tests/validation/CMakeLists.txt
new file mode 100644
index 0000000000..eef062b5f9
--- /dev/null
+++ b/tests/validation/CMakeLists.txt
@@ -0,0 +1,145 @@
+# Copyright (c) 2023 Arm Limited.
+#
+# SPDX-License-Identifier: MIT
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to
+# deal in the Software without restriction, including without limitation the
+# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+# sell copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+target_sources(
+ arm_compute_validation
+ PRIVATE UNIT/SafeIntegerOps.cpp
+ UNIT/Version.cpp
+ UNIT/TensorInfo.cpp
+ UNIT/TensorShape.cpp
+ UNIT/Utils.cpp
+ UNIT/SubTensorInfo.cpp
+ UNIT/WindowIterator.cpp
+ UNIT/LifetimeManager.cpp
+ UNIT/GPUTarget.cpp
+ CPP/DetectionPostProcessLayer.cpp
+ CPP/TopKV.cpp
+ CPP/DFT.cpp
+ CPP/Permute.cpp
+ CPP/NonMaximumSuppression.cpp)
+
+if(ENABLE_NEON)
+ target_sources(
+ arm_compute_validation
+ PRIVATE NEON/ElementwiseNegation.cpp
+ NEON/BoundingBoxTransform.cpp
+ NEON/ChannelShuffle.cpp
+ NEON/Logical.cpp
+ NEON/DilatedConvolutionLayer.cpp
+ NEON/PoolingLayer.cpp
+ NEON/BitwiseNot.cpp
+ NEON/FillBorder.cpp
+ NEON/ElementwiseRsqrtLayer.cpp
+ NEON/DepthConcatenateLayer.cpp
+ NEON/ElementwisePower.cpp
+ NEON/Fill.cpp
+ NEON/ROIPoolingLayer.cpp
+ NEON/LSTMLayer.cpp
+ NEON/ArithmeticSubtraction.cpp
+ NEON/GEMMLowp.cpp
+ NEON/Unstack.cpp
+ NEON/Slice.cpp
+ NEON/Pooling3dLayer.cpp
+ NEON/BitwiseOr.cpp
+ NEON/HeightConcatenateLayer.cpp
+ NEON/ReshapeLayer.cpp
+ NEON/SoftmaxLayer.cpp
+ NEON/Gather.cpp
+ NEON/CropResize.cpp
+ NEON/ReductionOperation.cpp
+ NEON/PixelWiseMultiplication.cpp
+ NEON/LogSoftmaxLayer.cpp
+ NEON/DepthConvertLayer.cpp
+ NEON/Flatten.cpp
+ NEON/ElementwiseKernelSelection.cpp
+ NEON/DepthToSpaceLayer.cpp
+ NEON/ElementwiseAbsoluteValue.cpp
+ NEON/PadLayer.cpp
+ NEON/MeanStdDevNormalizationLayer.cpp
+ NEON/GlobalPoolingLayer.cpp
+ NEON/RNNLayer.cpp
+ NEON/DetectionPostProcessLayer.cpp
+ NEON/ElementwiseRound.cpp
+ NEON/BitwiseXor.cpp
+ NEON/GEMM.cpp
+ NEON/FuseBatchNormalization.cpp
+ NEON/BitwiseAnd.cpp
+ NEON/ElementwiseMax.cpp
+ NEON/ReduceMean.cpp
+ NEON/Reverse.cpp
+ NEON/L2NormalizeLayer.cpp
+ NEON/Convolution3D.cpp
+ NEON/ArithmeticAddition.cpp
+ NEON/ActivationLayer.cpp
+ NEON/SpaceToBatchLayer.cpp
+ NEON/ElementwiseLog.cpp
+ NEON/LSTMLayerQuantized.cpp
+ NEON/Im2Col.cpp
+ NEON/DequantizationLayer.cpp
+ NEON/DeconvolutionLayer.cpp
+ NEON/Select.cpp
+ NEON/ElementwiseSin.cpp
+ NEON/PReluLayer.cpp
+ NEON/BatchNormalizationLayer.cpp
+ NEON/ElementwiseMin.cpp
+ NEON/InstanceNormalizationLayer.cpp
+ NEON/ROIAlignLayer.cpp
+ NEON/ElementwiseDivision.cpp
+ NEON/ElementwiseExpLayer.cpp
+ NEON/ArgMinMax.cpp
+ NEON/QLSTMLayerNormalization.cpp
+ NEON/Col2Im.cpp
+ NEON/Split.cpp
+ NEON/Transpose.cpp
+ NEON/GenerateProposalsLayer.cpp
+ NEON/StackLayer.cpp
+ NEON/WidthConcatenateLayer.cpp
+ NEON/NormalizationLayer.cpp
+ NEON/Copy.cpp
+ NEON/ElementwiseSquareDiff.cpp
+ NEON/MaxUnpoolingLayer.cpp
+ NEON/Permute.cpp
+ NEON/Comparisons.cpp
+ NEON/BatchConcatenateLayer.cpp
+ NEON/Tile.cpp
+ NEON/BatchToSpaceLayer.cpp
+ NEON/SpaceToDepthLayer.cpp
+ NEON/DepthwiseConvolutionLayerNative.cpp
+ NEON/QuantizationLayer.cpp
+ NEON/ConvertFullyConnectedWeights.cpp
+ NEON/Floor.cpp
+ NEON/FFT.cpp
+ NEON/Cast.cpp
+ NEON/PriorBoxLayer.cpp
+ NEON/Scale.cpp
+ NEON/ReorgLayer.cpp
+ NEON/Range.cpp
+ NEON/DirectConvolutionLayer.cpp
+ NEON/DepthwiseConvolutionLayer.cpp
+ NEON/FullyConnectedLayer.cpp
+ NEON/ConvolutionLayer.cpp
+ NEON/StridedSlice.cpp
+ NEON/UNIT/DynamicTensor.cpp
+ NEON/UNIT/TensorAllocator.cpp
+ NEON/UNIT/MemoryManager.cpp
+ NEON/UNIT/RuntimeContext.cpp)
+endif()
diff --git a/utils/BUILD.bazel b/utils/BUILD.bazel
new file mode 100644
index 0000000000..32d6a61638
--- /dev/null
+++ b/utils/BUILD.bazel
@@ -0,0 +1,35 @@
+# Copyright (c) 2023 Arm Limited.
+#
+# SPDX-License-Identifier: MIT
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to
+# deal in the Software without restriction, including without limitation the
+# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+# sell copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+cc_library(
+ name = "utils",
+ srcs = glob(["**/*.cpp"]),
+ hdrs = glob(["**/*.h"]),
+ visibility = ["//visibility:public"],
+ deps = [
+ "//arm_compute:core_headers",
+ "//arm_compute:graph_headers",
+ "//arm_compute:runtime_headers",
+ "//include",
+ "//support",
+ ],
+)