aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Svantesson <david.svantesson@arm.com>2023-06-08 10:05:59 +0000
committerDavid Svantesson <david.svantesson@arm.com>2023-06-22 14:35:20 +0000
commit90d15b985dbefd730941cbc79997baa0089dc4f3 (patch)
tree0c06e95c2e626c751d6222118dd5fcd630d2e65f
parentda9cb7087ced66323d840332878e9ef9c833e862 (diff)
downloadComputeLibrary-90d15b985dbefd730941cbc79997baa0089dc4f3.tar.gz
Bazel and CMake optional fp16 support
Resolves ONCPUML-1274 Signed-off-by: David Svantesson <david.svantesson@arm.com> Change-Id: I1d189596cfce5be87a18c8065d683700b3c9960f Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/9745 Tested-by: Arm Jenkins <bsgcomp@arm.com> Reviewed-by: SiCong Li <sicong.li@arm.com> Comments-Addressed: Arm Jenkins <bsgcomp@arm.com> Benchmark: Arm Jenkins <bsgcomp@arm.com>
-rw-r--r--.bazelrc1
-rw-r--r--BUILD.bazel58
-rw-r--r--CMakeLists.txt40
-rw-r--r--cmake/Options.cmake6
-rw-r--r--examples/BUILD.bazel240
-rw-r--r--scripts/generate_build_files.py4
-rw-r--r--scripts/print_version_file.py23
-rw-r--r--src/BUILD.bazel2
-rw-r--r--src/CMakeLists.txt4
-rw-r--r--tests/BUILD.bazel32
-rw-r--r--tests/framework/BUILD.bazel7
11 files changed, 299 insertions, 118 deletions
diff --git a/.bazelrc b/.bazelrc
index d6a5e62871..1dbbedc8bd 100644
--- a/.bazelrc
+++ b/.bazelrc
@@ -38,3 +38,4 @@ build --flag_alias=openmp=//:openmp
build --flag_alias=cppthreads=//:cppthreads
build --flag_alias=enable_bf16_validation=//:enable_bf16_validation
build --flag_alias=enable_sve_validation=//:enable_sve_validation
+build --flag_alias=arch=//:arch
diff --git a/BUILD.bazel b/BUILD.bazel
index 582a979044..3a7d941a0e 100644
--- a/BUILD.bazel
+++ b/BUILD.bazel
@@ -78,6 +78,15 @@ bool_flag(
visibility = ["//visibility:public"],
)
+string_flag(
+ name = "arch",
+ build_setting_default = "armv8-a",
+ values = [
+ "armv8-a",
+ "armv8.2-a+fp16"
+ ]
+)
+
#---------------------------------------------------------------------
# Flag variables
config_setting(
@@ -129,6 +138,20 @@ config_setting(
},
)
+config_setting(
+ name = "arch_armv8-a",
+ flag_values = {
+ "arch": "armv8-a"
+ }
+)
+
+config_setting(
+ name = "arch_armv8.2-a+fp16",
+ flag_values = {
+ "arch": "armv8.2-a+fp16"
+ }
+)
+
#---------------------------------------------------------------------
# Common defines used for all targets
@@ -138,9 +161,7 @@ cc_library(
"ENABLE_NEON",
"ARM_COMPUTE_CPU_ENABLED",
"ARM_COMPUTE_ENABLE_NEON",
- "ARM_COMPUTE_ENABLE_FP16",
"ARM_COMPUTE_ENABLE_I8MM",
- "ENABLE_FP16_KERNELS",
"ENABLE_FP32_KERNELS",
"ENABLE_QASYMM8_KERNELS",
"ENABLE_QASYMM8_SIGNED_KERNELS",
@@ -148,7 +169,7 @@ cc_library(
"ENABLE_INTEGER_KERNELS",
"ENABLE_NHWC_KERNELS",
"ENABLE_NCHW_KERNELS",
- "DARM_COMPUTE_GRAPH_ENABLED",
+ "ARM_COMPUTE_GRAPH_ENABLED",
"ARM_COMPUTE_ENABLE_SVEF32MM",
"ARM_COMPUTE_ENABLE_FIXED_FORMAT_KERNELS",
"_GLIBCXX_USE_NANOSLEEP"
@@ -170,6 +191,11 @@ cc_library(
select({
"//:openmp_flag": ["ARM_COMPUTE_OPENMP_SCHEDULER"],
"//conditions:default": [],
+ }) +
+ select({
+ "//:arch_armv8-a": [],
+ "//:arch_armv8.2-a+fp16": ["ENABLE_FP16_KERNELS", "ARM_COMPUTE_ENABLE_FP16"],
+ "//conditions:default": [],
}),
visibility = ["//visibility:public"],
)
@@ -178,9 +204,9 @@ cc_library(
# Rule for creating file "arm_compute_version.embed"
genrule(
name = "create_version_file",
- srcs = [".git/HEAD"],
+ srcs = ["SConscript"],
outs = ["arm_compute_version.embed"],
- cmd = "$(location //scripts:print_version_file) bazel-build-options `cat $(location :.git/HEAD)` > $@",
+ cmd = "$(location //scripts:print_version_file) 'n/a' 'n/a' 'true' > $@",
tools = ["//scripts:print_version_file"],
visibility = ["//visibility:public"],
)
@@ -191,9 +217,11 @@ genrule(
cc_library(
name = "arm_compute_graph",
srcs = ["//src:arm_compute_graph_srcs"],
- copts = [
- "-march=armv8.2-a+fp16",
- ] + select({
+ copts = [] + select({
+ "//:arch_armv8-a": ["-march=armv8-a"],
+ "//:arch_armv8.2-a+fp16": ["-march=armv8.2-a+fp16"],
+ "//conditions:default": ["-march=armv8-a"],
+ }) + select({
"//:debug_flag": [
"-O0",
"-g",
@@ -211,7 +239,7 @@ cc_library(
}),
visibility = ["//visibility:public"],
deps = [
- "arm_compute_core",
+ "arm_compute",
"//:common_defines",
"//arm_compute:graph_headers",
],
@@ -323,8 +351,8 @@ cc_library(
# Core and Runtime library
cc_library(
- name = "arm_compute_core",
- srcs = ["//src:arm_compute_core_srcs"],
+ name = "arm_compute",
+ srcs = ["//src:arm_compute_srcs"],
hdrs = glob([
"core/NEON/kernels/**/*.h",
"core/NEON/kernels/**/*.hpp",
@@ -332,9 +360,11 @@ cc_library(
]) + [
"//:create_version_file",
],
- copts = [
- "-march=armv8.2-a+fp16",
- ] + select({
+ copts = [] + select({
+ "//:arch_armv8-a": ["-march=armv8-a"],
+ "//:arch_armv8.2-a+fp16": ["-march=armv8.2-a+fp16"],
+ "//conditions:default": ["-march=armv8-a"],
+ }) + select({
"//:debug_flag": [
"-O0",
"-g",
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 94ae15fea5..4f8fc4afc1 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -185,13 +185,13 @@ target_include_directories(
# ---------------------------------------------------------------------
# Core Library
-add_library(arm_compute_core "")
-target_compile_options(arm_compute_core PRIVATE "-march=armv8.2-a+fp16")
-target_compile_definitions(arm_compute_core PRIVATE ARM_COMPUTE_ENABLE_BF16)
-target_compile_definitions(arm_compute_core PRIVATE ENABLE_SVE)
-target_compile_definitions(arm_compute_core PRIVATE ARM_COMPUTE_ENABLE_SVE)
+add_library(arm_compute "")
+target_compile_options(arm_compute PRIVATE "-march=${ARM_COMPUTE_ARCH}")
+target_compile_definitions(arm_compute PRIVATE ARM_COMPUTE_ENABLE_BF16)
+target_compile_definitions(arm_compute PRIVATE ENABLE_SVE)
+target_compile_definitions(arm_compute PRIVATE ARM_COMPUTE_ENABLE_SVE)
target_include_directories(
- arm_compute_core
+ arm_compute
PUBLIC $<INSTALL_INTERFACE:include>
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
${CMAKE_CURRENT_SOURCE_DIR}
@@ -202,17 +202,17 @@ target_include_directories(
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})
+target_compile_options(arm_compute PUBLIC ${COMMON_CXX_FLAGS})
-add_library(ArmCompute::Core ALIAS arm_compute_core)
+add_library(ArmCompute::Core ALIAS arm_compute)
target_link_libraries(
- arm_compute_core PUBLIC arm_compute_sve arm_compute_sve2)
+ arm_compute PUBLIC arm_compute_sve arm_compute_sve2)
# ---------------------------------------------------------------------
# Graph Library
add_library(arm_compute_graph "")
-target_compile_options(arm_compute_graph PRIVATE "-march=armv8.2-a+fp16")
+target_compile_options(arm_compute_graph PRIVATE "-march=${ARM_COMPUTE_ARCH}")
target_compile_definitions(arm_compute_graph PRIVATE ENABLE_SVE)
target_compile_definitions(arm_compute_graph PRIVATE ARM_COMPUTE_ENABLE_SVE)
# add_subdirectory(src/graph)
@@ -244,7 +244,7 @@ if(ARM_COMPUTE_BUILD_TESTING)
# 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")
+ PRIVATE "-march=${ARM_COMPUTE_ARCH}")
add_subdirectory(tests)
target_include_directories(
@@ -256,13 +256,13 @@ if(ARM_COMPUTE_BUILD_TESTING)
PUBLIC ${COMMON_CXX_FLAGS})
target_link_libraries(
arm_compute_validation_framework
- PUBLIC arm_compute_core arm_compute_graph)
+ PUBLIC arm_compute arm_compute_graph)
# ---------------------------------------------------------------------
# Validation Binary
add_executable(arm_compute_validation "")
- target_compile_options(arm_compute_validation PRIVATE "-march=armv8.2-a+fp16")
+ target_compile_options(arm_compute_validation PRIVATE "-march=${ARM_COMPUTE_ARCH}")
if(ARM_COMPUTE_ENABLE_BF16_VALIDATION)
target_compile_definitions(arm_compute_validation PRIVATE ARM_COMPUTE_ENABLE_BF16)
endif()
@@ -277,7 +277,7 @@ if(ARM_COMPUTE_BUILD_TESTING)
"${CMAKE_BINARY_DIR}/validation")
target_link_libraries(
arm_compute_validation
- PUBLIC arm_compute_core arm_compute_graph arm_compute_validation_framework
+ PUBLIC arm_compute arm_compute_graph arm_compute_validation_framework
arm_compute_sve)
target_link_directories(arm_compute_validation PUBLIC tests)
@@ -285,7 +285,7 @@ if(ARM_COMPUTE_BUILD_TESTING)
# Benchmark Binary
add_executable(arm_compute_benchmark)
- target_compile_options(arm_compute_benchmark PRIVATE "-march=armv8.2-a+fp16")
+ target_compile_options(arm_compute_benchmark PRIVATE "-march=${ARM_COMPUTE_ARCH}")
add_subdirectory(tests/benchmark)
target_compile_options(arm_compute_benchmark PUBLIC ${COMMON_CXX_FLAGS})
@@ -293,7 +293,7 @@ if(ARM_COMPUTE_BUILD_TESTING)
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_benchmark PUBLIC arm_compute arm_compute_graph
arm_compute_validation_framework)
endif() # ARM_COMPUTE_BUILD_TESTING
@@ -309,22 +309,22 @@ if(ARM_COMPUTE_BUILD_EXAMPLES)
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")
+ target_compile_options(${test_name} PRIVATE "-march=${ARM_COMPUTE_ARCH}")
set_target_properties(
${test_name} PROPERTIES RUNTIME_OUTPUT_DIRECTORY
"${CMAKE_BINARY_DIR}/examples")
- target_link_libraries(${test_name} PUBLIC arm_compute_core
+ target_link_libraries(${test_name} PUBLIC arm_compute
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")
+ target_compile_options(${test_name} PRIVATE "-march=${ARM_COMPUTE_ARCH}")
set_target_properties(
${test_name} PROPERTIES RUNTIME_OUTPUT_DIRECTORY
"${CMAKE_BINARY_DIR}/examples")
- target_link_libraries(${test_name} PUBLIC arm_compute_core)
+ target_link_libraries(${test_name} PUBLIC arm_compute)
endforeach()
endif() # ARM_COMPUTE_BUILD_EXAMPLES
diff --git a/cmake/Options.cmake b/cmake/Options.cmake
index a4ef135bdf..bc51cbbc0d 100644
--- a/cmake/Options.cmake
+++ b/cmake/Options.cmake
@@ -43,6 +43,8 @@ if(ARM_COMPUTE_LOGGING)
add_definitions(-DARM_COMPUTE_LOGGING_ENABLED)
endif()
+set(ARM_COMPUTE_ARCH armv8-a CACHE STRING "Architecture to use")
+
# ---------------------------------------------------------------------
# Backends
@@ -52,9 +54,7 @@ option(ARM_COMPUTE_ENABLE_SVE_VALIDATION "" OFF)
option(ENABLE_NEON "Enable Arm® Neon™ support" ON)
option(ARM_COMPUTE_CPU_ENABLED "" ON)
option(ARM_COMPUTE_ENABLE_NEON "" ON)
-option(ARM_COMPUTE_ENABLE_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)
@@ -65,6 +65,8 @@ option(ENABLE_NCHW_KERNELS "" ON)
option(ARM_COMPUTE_GRAPH_ENABLED "" ON)
option(ARM_COMPUTE_ENABLE_SVEF32MM "" ON)
option(ARM_COMPUTE_ENABLE_FIXED_FORMAT_KERNELS "" ON)
+option(ENABLE_FP16_KERNELS "" OFF)
+option(ARM_COMPUTE_ENABLE_FP16 "" OFF)
if(ENABLE_NEON)
add_definitions(-DENABLE_NEON)
diff --git a/examples/BUILD.bazel b/examples/BUILD.bazel
index f2a22dba54..ad9abf50a2 100644
--- a/examples/BUILD.bazel
+++ b/examples/BUILD.bazel
@@ -26,10 +26,14 @@
cc_binary(
name = "neon_cnn",
srcs = ["neon_cnn.cpp"],
- copts = ["-march=armv8.2-a+fp16"],
+ copts = select({
+ "//:arch_armv8-a": ["-march=armv8-a"],
+ "//:arch_armv8.2-a+fp16": ["-march=armv8.2-a+fp16"],
+ "//conditions:default": ["-march=armv8-a"],
+ }),
linkstatic = False,
deps = [
- "//:arm_compute_core",
+ "//:arm_compute",
"//:arm_compute_graph",
"//include",
"//utils",
@@ -39,10 +43,14 @@ cc_binary(
cc_binary(
name = "neon_copy_objects",
srcs = ["neon_copy_objects.cpp"],
- copts = ["-march=armv8.2-a+fp16"],
+ copts = select({
+ "//:arch_armv8-a": ["-march=armv8-a"],
+ "//:arch_armv8.2-a+fp16": ["-march=armv8.2-a+fp16"],
+ "//conditions:default": ["-march=armv8-a"],
+ }),
linkstatic = False,
deps = [
- "//:arm_compute_core",
+ "//:arm_compute",
"//:arm_compute_graph",
"//include",
"//utils",
@@ -52,10 +60,14 @@ cc_binary(
cc_binary(
name = "neon_gemm_qasymm8",
srcs = ["neon_gemm_qasymm8.cpp"],
- copts = ["-march=armv8.2-a+fp16"],
+ copts = select({
+ "//:arch_armv8-a": ["-march=armv8-a"],
+ "//:arch_armv8.2-a+fp16": ["-march=armv8.2-a+fp16"],
+ "//conditions:default": ["-march=armv8-a"],
+ }),
linkstatic = False,
deps = [
- "//:arm_compute_core",
+ "//:arm_compute",
"//:arm_compute_graph",
"//include",
"//utils",
@@ -65,10 +77,14 @@ cc_binary(
cc_binary(
name = "neon_permute",
srcs = ["neon_permute.cpp"],
- copts = ["-march=armv8.2-a+fp16"],
+ copts = select({
+ "//:arch_armv8-a": ["-march=armv8-a"],
+ "//:arch_armv8.2-a+fp16": ["-march=armv8.2-a+fp16"],
+ "//conditions:default": ["-march=armv8-a"],
+ }),
linkstatic = False,
deps = [
- "//:arm_compute_core",
+ "//:arm_compute",
"//:arm_compute_graph",
"//include",
"//utils",
@@ -78,10 +94,14 @@ cc_binary(
cc_binary(
name = "neon_scale",
srcs = ["neon_scale.cpp"],
- copts = ["-march=armv8.2-a+fp16"],
+ copts = select({
+ "//:arch_armv8-a": ["-march=armv8-a"],
+ "//:arch_armv8.2-a+fp16": ["-march=armv8.2-a+fp16"],
+ "//conditions:default": ["-march=armv8-a"],
+ }),
linkstatic = False,
deps = [
- "//:arm_compute_core",
+ "//:arm_compute",
"//:arm_compute_graph",
"//include",
"//utils",
@@ -91,10 +111,14 @@ cc_binary(
cc_binary(
name = "neon_sgemm",
srcs = ["neon_sgemm.cpp"],
- copts = ["-march=armv8.2-a+fp16"],
+ copts = select({
+ "//:arch_armv8-a": ["-march=armv8-a"],
+ "//:arch_armv8.2-a+fp16": ["-march=armv8.2-a+fp16"],
+ "//conditions:default": ["-march=armv8-a"],
+ }),
linkstatic = False,
deps = [
- "//:arm_compute_core",
+ "//:arm_compute",
"//:arm_compute_graph",
"//include",
"//utils",
@@ -107,10 +131,14 @@ cc_binary(
cc_binary(
name = "graph_alexnet",
srcs = ["graph_alexnet.cpp"],
- copts = ["-march=armv8.2-a+fp16"],
+ copts = select({
+ "//:arch_armv8-a": ["-march=armv8-a"],
+ "//:arch_armv8.2-a+fp16": ["-march=armv8.2-a+fp16"],
+ "//conditions:default": ["-march=armv8-a"],
+ }),
linkstatic = False,
deps = [
- "//:arm_compute_core",
+ "//:arm_compute",
"//:arm_compute_graph",
"//include",
"//utils",
@@ -120,10 +148,14 @@ cc_binary(
cc_binary(
name = "graph_deepspeech_v0_4_1",
srcs = ["graph_deepspeech_v0_4_1.cpp"],
- copts = ["-march=armv8.2-a+fp16"],
+ copts = select({
+ "//:arch_armv8-a": ["-march=armv8-a"],
+ "//:arch_armv8.2-a+fp16": ["-march=armv8.2-a+fp16"],
+ "//conditions:default": ["-march=armv8-a"],
+ }),
linkstatic = False,
deps = [
- "//:arm_compute_core",
+ "//:arm_compute",
"//:arm_compute_graph",
"//include",
"//utils",
@@ -136,10 +168,14 @@ cc_binary(
"graph_edsr.cpp",
"graph_edsr.h",
],
- copts = ["-march=armv8.2-a+fp16"],
+ copts = select({
+ "//:arch_armv8-a": ["-march=armv8-a"],
+ "//:arch_armv8.2-a+fp16": ["-march=armv8.2-a+fp16"],
+ "//conditions:default": ["-march=armv8-a"],
+ }),
linkstatic = False,
deps = [
- "//:arm_compute_core",
+ "//:arm_compute",
"//:arm_compute_graph",
"//include",
"//utils",
@@ -149,10 +185,14 @@ cc_binary(
cc_binary(
name = "graph_googlenet",
srcs = ["graph_googlenet.cpp"],
- copts = ["-march=armv8.2-a+fp16"],
+ copts = select({
+ "//:arch_armv8-a": ["-march=armv8-a"],
+ "//:arch_armv8.2-a+fp16": ["-march=armv8.2-a+fp16"],
+ "//conditions:default": ["-march=armv8-a"],
+ }),
linkstatic = False,
deps = [
- "//:arm_compute_core",
+ "//:arm_compute",
"//:arm_compute_graph",
"//include",
"//utils",
@@ -162,10 +202,14 @@ cc_binary(
cc_binary(
name = "graph_inception_resnet_v1",
srcs = ["graph_inception_resnet_v1.cpp"],
- copts = ["-march=armv8.2-a+fp16"],
+ copts = select({
+ "//:arch_armv8-a": ["-march=armv8-a"],
+ "//:arch_armv8.2-a+fp16": ["-march=armv8.2-a+fp16"],
+ "//conditions:default": ["-march=armv8-a"],
+ }),
linkstatic = False,
deps = [
- "//:arm_compute_core",
+ "//:arm_compute",
"//:arm_compute_graph",
"//include",
"//utils",
@@ -175,10 +219,14 @@ cc_binary(
cc_binary(
name = "graph_inception_resnet_v2",
srcs = ["graph_inception_resnet_v2.cpp"],
- copts = ["-march=armv8.2-a+fp16"],
+ copts = select({
+ "//:arch_armv8-a": ["-march=armv8-a"],
+ "//:arch_armv8.2-a+fp16": ["-march=armv8.2-a+fp16"],
+ "//conditions:default": ["-march=armv8-a"],
+ }),
linkstatic = False,
deps = [
- "//:arm_compute_core",
+ "//:arm_compute",
"//:arm_compute_graph",
"//include",
"//utils",
@@ -188,10 +236,14 @@ cc_binary(
cc_binary(
name = "graph_inception_v3",
srcs = ["graph_inception_v3.cpp"],
- copts = ["-march=armv8.2-a+fp16"],
+ copts = select({
+ "//:arch_armv8-a": ["-march=armv8-a"],
+ "//:arch_armv8.2-a+fp16": ["-march=armv8.2-a+fp16"],
+ "//conditions:default": ["-march=armv8-a"],
+ }),
linkstatic = False,
deps = [
- "//:arm_compute_core",
+ "//:arm_compute",
"//:arm_compute_graph",
"//include",
"//utils",
@@ -201,10 +253,14 @@ cc_binary(
cc_binary(
name = "graph_inception_v4",
srcs = ["graph_inception_v4.cpp"],
- copts = ["-march=armv8.2-a+fp16"],
+ copts = select({
+ "//:arch_armv8-a": ["-march=armv8-a"],
+ "//:arch_armv8.2-a+fp16": ["-march=armv8.2-a+fp16"],
+ "//conditions:default": ["-march=armv8-a"],
+ }),
linkstatic = False,
deps = [
- "//:arm_compute_core",
+ "//:arm_compute",
"//:arm_compute_graph",
"//include",
"//utils",
@@ -214,10 +270,14 @@ cc_binary(
cc_binary(
name = "graph_lenet",
srcs = ["graph_lenet.cpp"],
- copts = ["-march=armv8.2-a+fp16"],
+ copts = select({
+ "//:arch_armv8-a": ["-march=armv8-a"],
+ "//:arch_armv8.2-a+fp16": ["-march=armv8.2-a+fp16"],
+ "//conditions:default": ["-march=armv8-a"],
+ }),
linkstatic = False,
deps = [
- "//:arm_compute_core",
+ "//:arm_compute",
"//:arm_compute_graph",
"//include",
"//utils",
@@ -227,10 +287,14 @@ cc_binary(
cc_binary(
name = "graph_mobilenet",
srcs = ["graph_mobilenet.cpp"],
- copts = ["-march=armv8.2-a+fp16"],
+ copts = select({
+ "//:arch_armv8-a": ["-march=armv8-a"],
+ "//:arch_armv8.2-a+fp16": ["-march=armv8.2-a+fp16"],
+ "//conditions:default": ["-march=armv8-a"],
+ }),
linkstatic = False,
deps = [
- "//:arm_compute_core",
+ "//:arm_compute",
"//:arm_compute_graph",
"//include",
"//utils",
@@ -240,10 +304,14 @@ cc_binary(
cc_binary(
name = "graph_mobilenet_v2",
srcs = ["graph_mobilenet_v2.cpp"],
- copts = ["-march=armv8.2-a+fp16"],
+ copts = select({
+ "//:arch_armv8-a": ["-march=armv8-a"],
+ "//:arch_armv8.2-a+fp16": ["-march=armv8.2-a+fp16"],
+ "//conditions:default": ["-march=armv8-a"],
+ }),
linkstatic = False,
deps = [
- "//:arm_compute_core",
+ "//:arm_compute",
"//:arm_compute_graph",
"//include",
"//utils",
@@ -253,10 +321,14 @@ cc_binary(
cc_binary(
name = "graph_resnet12",
srcs = ["graph_resnet12.cpp"],
- copts = ["-march=armv8.2-a+fp16"],
+ copts = select({
+ "//:arch_armv8-a": ["-march=armv8-a"],
+ "//:arch_armv8.2-a+fp16": ["-march=armv8.2-a+fp16"],
+ "//conditions:default": ["-march=armv8-a"],
+ }),
linkstatic = False,
deps = [
- "//:arm_compute_core",
+ "//:arm_compute",
"//:arm_compute_graph",
"//include",
"//utils",
@@ -266,10 +338,14 @@ cc_binary(
cc_binary(
name = "graph_resnet50",
srcs = ["graph_resnet50.cpp"],
- copts = ["-march=armv8.2-a+fp16"],
+ copts = select({
+ "//:arch_armv8-a": ["-march=armv8-a"],
+ "//:arch_armv8.2-a+fp16": ["-march=armv8.2-a+fp16"],
+ "//conditions:default": ["-march=armv8-a"],
+ }),
linkstatic = False,
deps = [
- "//:arm_compute_core",
+ "//:arm_compute",
"//:arm_compute_graph",
"//include",
"//utils",
@@ -279,10 +355,14 @@ cc_binary(
cc_binary(
name = "graph_resnet_v2_50",
srcs = ["graph_resnet_v2_50.cpp"],
- copts = ["-march=armv8.2-a+fp16"],
+ copts = select({
+ "//:arch_armv8-a": ["-march=armv8-a"],
+ "//:arch_armv8.2-a+fp16": ["-march=armv8.2-a+fp16"],
+ "//conditions:default": ["-march=armv8-a"],
+ }),
linkstatic = False,
deps = [
- "//:arm_compute_core",
+ "//:arm_compute",
"//:arm_compute_graph",
"//include",
"//utils",
@@ -292,10 +372,14 @@ cc_binary(
cc_binary(
name = "graph_resnext50",
srcs = ["graph_resnext50.cpp"],
- copts = ["-march=armv8.2-a+fp16"],
+ copts = select({
+ "//:arch_armv8-a": ["-march=armv8-a"],
+ "//:arch_armv8.2-a+fp16": ["-march=armv8.2-a+fp16"],
+ "//conditions:default": ["-march=armv8-a"],
+ }),
linkstatic = False,
deps = [
- "//:arm_compute_core",
+ "//:arm_compute",
"//:arm_compute_graph",
"//include",
"//utils",
@@ -305,10 +389,14 @@ cc_binary(
cc_binary(
name = "graph_shufflenet",
srcs = ["graph_shufflenet.cpp"],
- copts = ["-march=armv8.2-a+fp16"],
+ copts = select({
+ "//:arch_armv8-a": ["-march=armv8-a"],
+ "//:arch_armv8.2-a+fp16": ["-march=armv8.2-a+fp16"],
+ "//conditions:default": ["-march=armv8-a"],
+ }),
linkstatic = False,
deps = [
- "//:arm_compute_core",
+ "//:arm_compute",
"//:arm_compute_graph",
"//include",
"//utils",
@@ -318,10 +406,14 @@ cc_binary(
cc_binary(
name = "graph_squeezenet",
srcs = ["graph_squeezenet.cpp"],
- copts = ["-march=armv8.2-a+fp16"],
+ copts = select({
+ "//:arch_armv8-a": ["-march=armv8-a"],
+ "//:arch_armv8.2-a+fp16": ["-march=armv8.2-a+fp16"],
+ "//conditions:default": ["-march=armv8-a"],
+ }),
linkstatic = False,
deps = [
- "//:arm_compute_core",
+ "//:arm_compute",
"//:arm_compute_graph",
"//include",
"//utils",
@@ -331,10 +423,14 @@ cc_binary(
cc_binary(
name = "graph_squeezenet_v1_1",
srcs = ["graph_squeezenet_v1_1.cpp"],
- copts = ["-march=armv8.2-a+fp16"],
+ copts = select({
+ "//:arch_armv8-a": ["-march=armv8-a"],
+ "//:arch_armv8.2-a+fp16": ["-march=armv8.2-a+fp16"],
+ "//conditions:default": ["-march=armv8-a"],
+ }),
linkstatic = False,
deps = [
- "//:arm_compute_core",
+ "//:arm_compute",
"//:arm_compute_graph",
"//include",
"//utils",
@@ -344,10 +440,14 @@ cc_binary(
cc_binary(
name = "graph_srcnn955",
srcs = ["graph_srcnn955.cpp"],
- copts = ["-march=armv8.2-a+fp16"],
+ copts = select({
+ "//:arch_armv8-a": ["-march=armv8-a"],
+ "//:arch_armv8.2-a+fp16": ["-march=armv8.2-a+fp16"],
+ "//conditions:default": ["-march=armv8-a"],
+ }),
linkstatic = False,
deps = [
- "//:arm_compute_core",
+ "//:arm_compute",
"//:arm_compute_graph",
"//include",
"//utils",
@@ -357,10 +457,14 @@ cc_binary(
cc_binary(
name = "graph_ssd_mobilenet",
srcs = ["graph_ssd_mobilenet.cpp"],
- copts = ["-march=armv8.2-a+fp16"],
+ copts = select({
+ "//:arch_armv8-a": ["-march=armv8-a"],
+ "//:arch_armv8.2-a+fp16": ["-march=armv8.2-a+fp16"],
+ "//conditions:default": ["-march=armv8-a"],
+ }),
linkstatic = False,
deps = [
- "//:arm_compute_core",
+ "//:arm_compute",
"//:arm_compute_graph",
"//include",
"//utils",
@@ -370,10 +474,14 @@ cc_binary(
cc_binary(
name = "graph_vgg16",
srcs = ["graph_vgg16.cpp"],
- copts = ["-march=armv8.2-a+fp16"],
+ copts = select({
+ "//:arch_armv8-a": ["-march=armv8-a"],
+ "//:arch_armv8.2-a+fp16": ["-march=armv8.2-a+fp16"],
+ "//conditions:default": ["-march=armv8-a"],
+ }),
linkstatic = False,
deps = [
- "//:arm_compute_core",
+ "//:arm_compute",
"//:arm_compute_graph",
"//include",
"//utils",
@@ -383,10 +491,14 @@ cc_binary(
cc_binary(
name = "graph_vgg19",
srcs = ["graph_vgg19.cpp"],
- copts = ["-march=armv8.2-a+fp16"],
+ copts = select({
+ "//:arch_armv8-a": ["-march=armv8-a"],
+ "//:arch_armv8.2-a+fp16": ["-march=armv8.2-a+fp16"],
+ "//conditions:default": ["-march=armv8-a"],
+ }),
linkstatic = False,
deps = [
- "//:arm_compute_core",
+ "//:arm_compute",
"//:arm_compute_graph",
"//include",
"//utils",
@@ -396,10 +508,14 @@ cc_binary(
cc_binary(
name = "graph_vgg_vdsr",
srcs = ["graph_vgg_vdsr.cpp"],
- copts = ["-march=armv8.2-a+fp16"],
+ copts = select({
+ "//:arch_armv8-a": ["-march=armv8-a"],
+ "//:arch_armv8.2-a+fp16": ["-march=armv8.2-a+fp16"],
+ "//conditions:default": ["-march=armv8-a"],
+ }),
linkstatic = False,
deps = [
- "//:arm_compute_core",
+ "//:arm_compute",
"//:arm_compute_graph",
"//include",
"//utils",
@@ -409,10 +525,14 @@ cc_binary(
cc_binary(
name = "graph_yolov3",
srcs = ["graph_yolov3.cpp"],
- copts = ["-march=armv8.2-a+fp16"],
+ copts = select({
+ "//:arch_armv8-a": ["-march=armv8-a"],
+ "//:arch_armv8.2-a+fp16": ["-march=armv8.2-a+fp16"],
+ "//conditions:default": ["-march=armv8-a"],
+ }),
linkstatic = False,
deps = [
- "//:arm_compute_core",
+ "//:arm_compute",
"//:arm_compute_graph",
"//include",
"//utils",
diff --git a/scripts/generate_build_files.py b/scripts/generate_build_files.py
index beb32d06b8..0ca27179eb 100644
--- a/scripts/generate_build_files.py
+++ b/scripts/generate_build_files.py
@@ -149,7 +149,7 @@ filegroup(
)
filegroup(
- name = "arm_compute_core_srcs",
+ name = "arm_compute_srcs",
srcs = ["{line_separator.join(srcs_core)}"] +
glob(["**/*.h",
"**/*.hpp",
@@ -186,7 +186,7 @@ target_sources(
)
target_sources(
- arm_compute_core
+ arm_compute
PRIVATE
{line_separator.join(srcs_core)}
)"""
diff --git a/scripts/print_version_file.py b/scripts/print_version_file.py
index 6c50216f8b..a7654ff997 100644
--- a/scripts/print_version_file.py
+++ b/scripts/print_version_file.py
@@ -31,6 +31,25 @@ def make_version_file(build_args, git_hash):
VERSION, build_args, git_hash.strip())
return build_info
+def make_version_file_from_sconscript(build_args, git_hash):
+ VERSION = "v0.0-unreleased"
+ fp = None
+ if os.path.exists("external/compute_library/SConscript"):
+ fp = "external/compute_library/SConscript"
+ elif os.path.exists("SConscript"):
+ fp = "SConscript"
+ if fp:
+ with open(fp) as scons_file:
+ for line in scons_file:
+ if "VERSION = " in line:
+ VERSION = line.split("=")[-1].strip().replace("\"", "")
+ break
+ return "\"arm_compute_version=%s Build options: %s Git hash=%s\"" % (
+ VERSION, build_args, git_hash.strip())
-if __name__ == "__main__":
- print(make_version_file(sys.argv[1], sys.argv[2]))
+if __name__ == "__main__":
+ if len(sys.argv) == 4 and sys.argv[3].lower() == "true":
+ print(make_version_file_from_sconscript(sys.argv[1], sys.argv[2]))
+ else:
+ print(make_version_file(sys.argv[1], sys.argv[2]))
+
diff --git a/src/BUILD.bazel b/src/BUILD.bazel
index a675394de6..85e5650cdd 100644
--- a/src/BUILD.bazel
+++ b/src/BUILD.bazel
@@ -354,7 +354,7 @@ filegroup(
)
filegroup(
- name = "arm_compute_core_srcs",
+ name = "arm_compute_srcs",
srcs = ["c/AclContext.cpp",
"c/AclOperator.cpp",
"c/AclQueue.cpp",
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 0b7a0108fd..c847a62e2a 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -105,7 +105,7 @@ target_sources(
target_sources(
arm_compute_sve
PRIVATE
- core/NEON/kernels/arm_conv/depthwise/interleaves/sve_s8q_3x3_dot.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_fp16_nhwc_3x3_s1_output2x2_mla_depthfirst/generic_direct.cpp
core/NEON/kernels/arm_conv/depthwise/kernels/sme2_fp16_nhwc_3x3_s1_output2x2_mla_depthfirst/generic_indirect.cpp
@@ -345,7 +345,7 @@ target_sources(
)
target_sources(
- arm_compute_core
+ arm_compute
PRIVATE
c/AclContext.cpp
c/AclOperator.cpp
diff --git a/tests/BUILD.bazel b/tests/BUILD.bazel
index 13d78958e5..5763938d3c 100644
--- a/tests/BUILD.bazel
+++ b/tests/BUILD.bazel
@@ -34,9 +34,11 @@ cc_library(
"validation/reference/*.h",
"validation/**/*.h",
]),
- copts = [
- "-march=armv8.2-a+fp16",
- ] + select({
+ copts = [] + select({
+ "//:arch_armv8-a": ["-march=armv8-a"],
+ "//:arch_armv8.2-a+fp16": ["-march=armv8.2-a+fp16"],
+ "//conditions:default": ["-march=armv8-a"],
+ }) + select({
"//:debug_flag": [
"-O0",
"-g",
@@ -54,7 +56,7 @@ cc_library(
}),
linkstatic = True,
deps = [
- "//:arm_compute_core",
+ "//:arm_compute",
"//:common_defines",
"//tests/framework",
],
@@ -74,9 +76,11 @@ cc_binary(
"datasets/*.h",
"instruments/*.h",
]),
- copts = [
- "-march=armv8.2-a+fp16",
- ] + select({
+ copts = [] + select({
+ "//:arch_armv8-a": ["-march=armv8-a"],
+ "//:arch_armv8.2-a+fp16": ["-march=armv8.2-a+fp16"],
+ "//conditions:default": ["-march=armv8-a"],
+ }) + select({
"//:debug_flag": [
"-O0",
"-g",
@@ -95,12 +99,12 @@ cc_binary(
linkstatic = True,
deps = [
":validation_framework",
- "//:arm_compute_core",
+ "//:arm_compute",
"//:arm_compute_graph",
"//:common_defines",
"//tests/framework",
],
- local_defines = [] +
+ local_defines = [] +
select({
"//:bf16_validation_flag": [
"ARM_COMPUTE_ENABLE_BF16",
@@ -125,9 +129,11 @@ cc_binary(
"benchmark/NEON/*.cpp",
"*.cpp",
]),
- copts = [
- "-march=armv8.2-a+fp16",
- ] + select({
+ copts = [] + select({
+ "//:arch_armv8-a": ["-march=armv8-a"],
+ "//:arch_armv8.2-a+fp16": ["-march=armv8.2-a+fp16"],
+ "//conditions:default": ["-march=armv8-a"],
+ }) + select({
"//:debug_flag": [
"-O0",
"-g",
@@ -147,6 +153,6 @@ cc_binary(
deps = [
":arm_compute_validation",
":validation_framework",
- "//:arm_compute_core",
+ "//:arm_compute",
],
)
diff --git a/tests/framework/BUILD.bazel b/tests/framework/BUILD.bazel
index 084d12c991..17d5a15a11 100644
--- a/tests/framework/BUILD.bazel
+++ b/tests/framework/BUILD.bazel
@@ -46,8 +46,11 @@ cc_library(
]),
copts = [
"-Wno-overloaded-virtual",
- "-march=armv8.2-a+fp16",
- ],
+ ] + select({
+ "//:arch_armv8-a": ["-march=armv8-a"],
+ "//:arch_armv8.2-a+fp16": ["-march=armv8.2-a+fp16"],
+ "//conditions:default": ["-march=armv8-a"],
+ }),
linkstatic = True,
visibility = ["//visibility:public"],
deps = [