aboutsummaryrefslogtreecommitdiff
path: root/SConscript
diff options
context:
space:
mode:
authorPablo Marquez Tello <pablo.tello@arm.com>2023-08-24 11:48:21 +0100
committerPablo Marquez Tello <pablo.tello@arm.com>2023-08-24 11:51:48 +0000
commit8490dc7d2a372af9e6d7aae95e904773ac0d144c (patch)
treee4af46663a6e51fbd0619dbdc66aee8639ff801f /SConscript
parent34b6c3a08c3fd3f99cf675921a319b8678a98273 (diff)
downloadComputeLibrary-8490dc7d2a372af9e6d7aae95e904773ac0d144c.tar.gz
Revert "Changes to enable FP16 in armv8a multi_isa"
This reverts commit a8b74963b88ac8628fdcff48c25d2d07906ba36f. Signed-off-by: Pablo Marquez Tello <pablo.tello@arm.com> Change-Id: I95712c5a822b9a0741d469b5815f5dcb512ebeb8 Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/10196 Benchmark: Arm Jenkins <bsgcomp@arm.com> Reviewed-by: Viet-Hoa Do <viet-hoa.do@arm.com> Comments-Addressed: Arm Jenkins <bsgcomp@arm.com> Tested-by: Arm Jenkins <bsgcomp@arm.com>
Diffstat (limited to 'SConscript')
-rw-r--r--SConscript97
1 files changed, 26 insertions, 71 deletions
diff --git a/SConscript b/SConscript
index d163a3c1ca..4eb3c25142 100644
--- a/SConscript
+++ b/SConscript
@@ -100,30 +100,20 @@ def build_lib_objects():
# Build all the common files for the base architecture
if env['arch'] == 'armv8a':
- lib_static_objs += build_obj_list(filedefs["armv8-a"], misa_lib_files, static=True)
- lib_shared_objs += build_obj_list(filedefs["armv8-a"], misa_lib_files, static=False)
+ lib_static_objs += build_obj_list(filedefs["armv8-a"], lib_files, static=True)
+ lib_shared_objs += build_obj_list(filedefs["armv8-a"], lib_files, static=False)
else:
- lib_static_objs += build_obj_list(filedefs["armv8.2-a"], misa_lib_files, static=True)
- lib_shared_objs += build_obj_list(filedefs["armv8.2-a"], misa_lib_files, static=False)
-
- # Build the FP16 specific files
- lib_static_objs += build_obj_list(filedefs["armv8.2-a"], misa_lib_files_neon_fp16, static=True)
- lib_shared_objs += build_obj_list(filedefs["armv8.2-a"], misa_lib_files_neon_fp16, static=False)
+ lib_static_objs += build_obj_list(filedefs["armv8.2-a"], lib_files, static=True)
+ lib_shared_objs += build_obj_list(filedefs["armv8.2-a"], lib_files, static=False)
# Build the SVE specific files
- lib_static_objs += build_obj_list(filedefs["armv8.2-a-sve"], misa_lib_files_sve, static=True)
- lib_shared_objs += build_obj_list(filedefs["armv8.2-a-sve"], misa_lib_files_sve, static=False)
- lib_static_objs += build_obj_list(filedefs["armv8.2-a-sve"], misa_lib_files_sve_fp16, static=True)
- lib_shared_objs += build_obj_list(filedefs["armv8.2-a-sve"], misa_lib_files_sve_fp16, static=False)
-
+ lib_static_objs += build_obj_list(filedefs["armv8.2-a-sve"], lib_files_sve, static=True)
+ lib_shared_objs += build_obj_list(filedefs["armv8.2-a-sve"], lib_files_sve, static=False)
# Build the SVE2 specific files
arm_compute_env.Append(CPPDEFINES = ['ARM_COMPUTE_ENABLE_SVE2'])
- lib_static_objs += build_obj_list(filedefs["armv8.6-a-sve2"], misa_lib_files_sve2, static=True)
- lib_shared_objs += build_obj_list(filedefs["armv8.6-a-sve2"], misa_lib_files_sve2, static=False)
- lib_static_objs += build_obj_list(filedefs["armv8.6-a-sve2"], misa_lib_files_sve2_fp16, static=True)
- lib_shared_objs += build_obj_list(filedefs["armv8.6-a-sve2"], misa_lib_files_sve2_fp16, static=False)
-
+ lib_static_objs += build_obj_list(filedefs["armv8.6-a-sve2"], lib_files_sve2, static=True)
+ lib_shared_objs += build_obj_list(filedefs["armv8.6-a-sve2"], lib_files_sve2, static=False)
return lib_static_objs, lib_shared_objs
@@ -301,29 +291,29 @@ def get_attrs_list(env, data_types, data_layouts):
return attrs
-def get_operator_backend_files(filelist, operators, backend='', techs=[], attrs=[], include_common=True):
+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']:
- if include_common :
- files['common'] += filelist[backend]['operators'][operator]["files"]["common"]
+ 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]
- if include_common:
- files[tech] += tech_files.get('common', [])
+ 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()}
@@ -631,17 +621,6 @@ if env['opencl']:
lib_files_sve = []
lib_files_sve2 = []
-# the variables below are used for the multi_isa builds
-# please note that the variables names without the _fp16 suffix
-# do not hold any fp16 files.
-
-misa_lib_files = lib_files
-misa_lib_files_sve = []
-misa_lib_files_sve2 = []
-misa_lib_files_neon_fp16 = []
-misa_lib_files_sve_fp16 = []
-misa_lib_files_sve2_fp16 = []
-
if env['neon']:
# build winograd/depthwise sources for either v7a / v8a
arm_compute_env.Append(CPPPATH = ["src/core/NEON/kernels/arm_gemm",
@@ -654,6 +633,8 @@ if env['neon']:
"arm_compute/core/NEON/kernels/assembly/",
"src/cpu/kernels/assembly/"])
+ lib_files += filelist['cpu']['common']
+
# Setup SIMD file list to include
simd = ['neon']
if env['multi_isa']:
@@ -668,6 +649,7 @@ if env['neon']:
else:
attrs = get_attrs_list(env, env['data_type_support'], env['data_layout_support'])
+
if env['fixed_format_kernels']:
attrs.append("fixed_format_kernels")
@@ -675,46 +657,19 @@ if env['neon']:
cpu_operators = custom_operators if use_custom_ops else filelist['cpu']['operators'].keys()
cpu_ops_to_build = resolve_operator_dependencies(filelist, cpu_operators, 'cpu')
- if env['multi_isa']:
- misa_lib_files += filelist['cpu']['common']
-
- # For multi_isa builds we need to build fp16 files for armv8.2-a+fp16 so we filter them out of cpu_files removing the attribute fp16
- attrs.remove('fp16')
- cpu_files = get_operator_backend_files(filelist, cpu_ops_to_build, 'cpu', simd, attrs)
-
- # Shared among ALL CPU files
- misa_lib_files += cpu_files.get('common', [])
-
- # Arm® Neon™ specific files
- misa_lib_files += cpu_files.get('neon', [])
-
- # Get all the fp16 files
- fp16_cpu_files = get_operator_backend_files(filelist, cpu_ops_to_build, 'cpu', simd, ['fp16'],False)
-
- misa_lib_files_neon_fp16 = fp16_cpu_files.get('neon',[])
- misa_lib_files_sve_fp16 = fp16_cpu_files.get('sve',[])
- misa_lib_files_sve2_fp16 = fp16_cpu_files.get('sve2',[])
-
- # SVE files only minus FP16
- misa_lib_files_sve = cpu_files.get('sve', [])
-
- # SVE2 files only minus FP16
- misa_lib_files_sve2 = cpu_files.get('sve2', [])
- else:
- lib_files += filelist['cpu']['common']
-
- # Non multi_isa build
- cpu_files = get_operator_backend_files(filelist, cpu_ops_to_build, 'cpu', simd, attrs)
+ 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', [])
+ # Shared among ALL CPU files
+ lib_files += cpu_files.get('common', [])
- # Arm® Neon™ specific files
- lib_files += cpu_files.get('neon', [])
+ # Arm® Neon™ specific files
+ lib_files += cpu_files.get('neon', [])
- lib_files_sve = cpu_files.get('sve', [])
+ # SVE files only
+ lib_files_sve = cpu_files.get('sve', [])
- lib_files_sve2 = cpu_files.get('sve2', [])
+ # SVE2 files only
+ lib_files_sve2 = cpu_files.get('sve2', [])
graph_files += Glob('src/graph/backends/NEON/*.cpp')