diff options
author | Gian Marco Iodice <gianmarco.iodice@arm.com> | 2023-01-19 17:14:26 +0000 |
---|---|---|
committer | Gian Marco Iodice <gianmarco.iodice@arm.com> | 2023-05-24 08:30:23 +0000 |
commit | 6c113ed1a95a08d17c2d556bd7b03c901512a34f (patch) | |
tree | c616a085e1eb3b4b9ac01a1f261182d4d10c481a /compute_kernel_writer/validation/SConscript | |
parent | 1355ec4797cd77060af51c8b27d99ea1d25c08da (diff) | |
download | ComputeLibrary-6c113ed1a95a08d17c2d556bd7b03c901512a34f.tar.gz |
Prepare the basic types for the compute kernel writer (CKW)
- Add TensorInfo
- Add TileInfo
- Add CLTile
- Add basic utility methods to get tensor components
- Add unit tests
Resolves COMPMID-5782, COMPMID-5785
Signed-off-by: Gian Marco Iodice <gianmarco.iodice@arm.com>
Change-Id: I5e590bddd240d2f1fc876cac7129947558d7d53b
Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/c/VisualCompute/ComputeLibrary/+/486221
Tested-by: bsgcomp <bsgcomp@arm.com>
Reviewed-by: Jakub Sujak <jakub.sujak@arm.com>
Reviewed-by: Pablo Tello <pablo.tello@arm.com>
Comments-Addressed: bsgcomp <bsgcomp@arm.com>
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/9687
Reviewed-by: Viet-Hoa Do <viet-hoa.do@arm.com>
Reviewed-by: Pablo Marquez Tello <pablo.tello@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Benchmark: Arm Jenkins <bsgcomp@arm.com>
Diffstat (limited to 'compute_kernel_writer/validation/SConscript')
-rw-r--r-- | compute_kernel_writer/validation/SConscript | 100 |
1 files changed, 100 insertions, 0 deletions
diff --git a/compute_kernel_writer/validation/SConscript b/compute_kernel_writer/validation/SConscript new file mode 100644 index 0000000000..452cc0a9ea --- /dev/null +++ b/compute_kernel_writer/validation/SConscript @@ -0,0 +1,100 @@ +#!/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. +import os.path + +Import('env') +Import('vars') +Import('install_bin') + +# vars is imported from compute_kernel_writer: +variables = [ + BoolVariable("validation_tests", "Build validation test programs", False) +] + +# We need a separate set of Variables for the Help message (Otherwise the global variables will get displayed twice) +new_options = Variables('scons') + +for v in variables: + new_options.Add(v) + vars.Add(v) + +# Clone the environment to make sure we're not polluting the compute_kernel_writer one: +test_env = env.Clone() +vars.Update(test_env) + +Help(new_options.GenerateHelpText(test_env)) + +# Check if we need to build the test framework +build_test_framework = False +for opt in new_options.keys(): + option_value = test_env[opt] + if type(option_value) is bool and option_value: + build_test_framework = True + break + +if not build_test_framework: + Return() + +# Remove -Wnoexcept from tests +if 'g++' in test_env['CXX'] and '-Wnoexcept' in test_env['CXXFLAGS']: + test_env['CXXFLAGS'].remove("-Wnoexcept") + +load_whole_archive = '-Wl,--whole-archive' +noload_whole_archive = '-Wl,--no-whole-archive' + +if env['os'] in ['android']: + Import("ckw_a") + + test_env.Append(LIBS = [ckw_a]) + ckw_lib = ckw_a +else: + Import("ckw_so") + test_env.Append(LIBS = ["ckw"]) + ckw_lib = ckw_so + +# Add main file +files_validation = Glob('Validation.cpp') + +# Add unit tests +files_validation += Glob('tests/*.cpp') + +extra_link_flags = [] + +test_env.Append(LIBS = ["rt"]) +extra_link_flags += ['-fstack-protector-strong'] + +bm_link_flags = [] +if test_env['linker_script']: + bm_link_flags += ['-Wl,--build-id=none', '-T', env['linker_script']] + +if test_env['validation_tests']: + program_objects = files_validation + + ckw_validation = test_env.Program('ckw_validation', program_objects, LIBS=test_env['LIBS'], LINKFLAGS=test_env['LINKFLAGS'] + bm_link_flags) + ckw_validation = install_bin(ckw_validation) + Depends(ckw_validation, ckw_lib) + + Default(ckw_validation) + Export('ckw_validation') |