diff options
Diffstat (limited to 'tests/SConscript')
-rw-r--r-- | tests/SConscript | 56 |
1 files changed, 36 insertions, 20 deletions
diff --git a/tests/SConscript b/tests/SConscript index fea68e0fe9..0907c5713b 100644 --- a/tests/SConscript +++ b/tests/SConscript @@ -1,4 +1,7 @@ -# Copyright (c) 2017-2019 Arm Limited. +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright (c) 2017-2023,2024 Arm Limited. # # SPDX-License-Identifier: MIT # @@ -19,7 +22,6 @@ # 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 SCons import os.path Import('env') @@ -28,12 +30,11 @@ Import('install_bin') # vars is imported from arm_compute: variables = [ - BoolVariable("benchmark_examples", "Build benchmark examples programs", True), - BoolVariable("validate_examples", "Build validate examples programs", True), + BoolVariable("benchmark_examples", "Build benchmark examples programs", False), + BoolVariable("validate_examples", "Build validate examples programs", False), BoolVariable("reference_openmp", "Build reference validation with openmp", True), - #FIXME Switch the following two options to False before releasing - BoolVariable("validation_tests", "Build validation test programs", True), - BoolVariable("benchmark_tests", "Build benchmark test programs", True), + BoolVariable("validation_tests", "Build validation test programs", False), + BoolVariable("benchmark_tests", "Build benchmark test programs", False), ("test_filter", "Pattern to specify the tests' filenames to be compiled", "*.cpp") ] @@ -67,7 +68,8 @@ Import("arm_compute_test_framework") test_env.Append(LIBS = arm_compute_test_framework) # Disable floating-point expression contraction (e.g. fused multiply-add operations) -test_env.Append(CXXFLAGS = ['-ffp-contract=off']) +if not 'windows' in env['os']: + test_env.Append(CXXFLAGS = ['-ffp-contract=off']) # Remove -Wnoexcept from tests if 'g++' in test_env['CXX'] and '-Wnoexcept' in test_env['CXXFLAGS']: @@ -77,18 +79,19 @@ load_whole_archive = '-Wl,--whole-archive' noload_whole_archive = '-Wl,--no-whole-archive' if 'macos' in test_env['os']: load_whole_archive = '-Wl,-force_load' - noload_whole_archive = '-Wl,-noall_load' + noload_whole_archive = '' + +if (env['multi_isa']): + test_env.Append(CPPDEFINES=['ARM_COMPUTE_ENABLE_BF16']) if env['os'] in ['android', 'macos', 'bare_metal'] or env['standalone']: Import("arm_compute_a") - Import("arm_compute_core_a") Import("arm_compute_graph_a") - test_env.Append(LIBS = [arm_compute_graph_a, arm_compute_a, arm_compute_core_a]) + test_env.Append(LIBS = [arm_compute_graph_a, arm_compute_a]) arm_compute_lib = arm_compute_graph_a else: Import("arm_compute_graph_so") - Import("arm_compute_core_a") - test_env.Append(LIBS = ["arm_compute_graph", "arm_compute", "arm_compute_core"]) + test_env.Append(LIBS = ["arm_compute_graph", "arm_compute"]) arm_compute_lib = arm_compute_graph_so if env['os'] in ['bare_metal']: @@ -114,6 +117,10 @@ filter_pattern = test_env['test_filter'] files_validation += Glob('validation/CPP/' + filter_pattern) if env['opencl']: + if env['experimental_dynamic_fusion']: + files_validation += Glob('validation/dynamic_fusion/gpu/' + filter_pattern) + files_validation += Glob('validation/dynamic_fusion/gpu/cl/' + filter_pattern) + filter_pattern = test_env['test_filter'] test_env.Append(CPPDEFINES=['ARM_COMPUTE_CL']) @@ -125,6 +132,7 @@ if env['opencl']: files_validation += Glob('validation/CL/*/' + filter_pattern) files_validation += Glob('validation/CL/' + filter_pattern) + if env['external_tests_dir']: files_validation += Glob(env['external_tests_dir'] + '/tests/validation/CL/' + filter_pattern) files_validation += Glob('validation/gpu/unit/*.cpp') @@ -133,6 +141,7 @@ if env['neon']: filter_pattern = test_env['test_filter'] files_benchmark += Glob('benchmark/NEON/*/' + filter_pattern) files_benchmark += Glob('benchmark/NEON/' + filter_pattern) + test_env.Append(CPPPATH = ["#/src/cpu/kernels/assembly/"]) if env['external_tests_dir']: files_benchmark += Glob(env['external_tests_dir'] + '/tests/benchmark/NEON/' + filter_pattern) @@ -150,7 +159,7 @@ if env['neon']: extra_link_flags = [] if env['os'] == 'android': test_env.Append(LIBS = ["log"]) -elif env['os'] not in ['bare_metal', 'macos']: +elif env['os'] not in ['windows','bare_metal', 'macos']: test_env.Append(LIBS = ["rt"]) extra_link_flags += ['-fstack-protector-strong'] @@ -166,14 +175,20 @@ bm_link_flags = [] if test_env['linker_script']: bm_link_flags += ['-Wl,--build-id=none', '-T', env['linker_script']] -if test_env['reference_openmp'] and env['os'] not in ['bare_metal', 'macos']: - test_env['CXXFLAGS'].append('-fopenmp') - test_env['LINKFLAGS'].append('-fopenmp') +if test_env['reference_openmp'] and env['os'] not in ['bare_metal', 'macos','windows']: + test_env['CXXFLAGS'].append('-fopenmp') + test_env['LINKFLAGS'].append('-fopenmp') + + if 'ndk_above_r21' in env: + test_env['LINKFLAGS'].append('-static-openmp') + +# Testing for fixed format GEMM kernels. +if env['fixed_format_kernels'] and test_env['validation_tests']: + test_env.Append(CPPDEFINES = ['ARM_COMPUTE_ENABLE_FIXED_FORMAT_KERNELS']) if test_env['validation_tests']: - arm_compute_validation_framework = env.StaticLibrary('arm_compute_validation_framework', Glob('validation/reference/*.cpp') + Glob('validation/*.cpp'), LINKFLAGS=test_env['LINKFLAGS'], CXXFLAGS=test_env['CXXFLAGS'], LIBS= [ arm_compute_test_framework, arm_compute_core_a]) + arm_compute_validation_framework = env.StaticLibrary('arm_compute_validation_framework', Glob('validation/reference/*.cpp') + Glob('validation/*.cpp'), LINKFLAGS=test_env['LINKFLAGS'], CXXFLAGS=test_env['CXXFLAGS'], LIBS= [ arm_compute_test_framework ]) Depends(arm_compute_validation_framework , arm_compute_test_framework) - Depends(arm_compute_validation_framework , arm_compute_core_a) program_objects = files_validation + common_objects if test_env['os'] == 'bare_metal': @@ -272,8 +287,9 @@ if test_env['benchmark_examples']: #-Wl,--allow-shlib-undefined: Ignore dependencies of dependencies prog = test_env.Program(example, [ test_env.Object(source=file, target=example), graph_utils, graph_params]+ files_benchmark_examples, LIBS = test_env["LIBS"] + ["arm_compute_graph"], LINKFLAGS=test_env["LINKFLAGS"]+['-Wl,--allow-shlib-undefined']) arm_compute_benchmark_examples += [ prog ] + arm_compute_benchmark_examples = install_bin(arm_compute_benchmark_examples) Depends(arm_compute_benchmark_examples, arm_compute_test_framework) Depends(arm_compute_benchmark_examples, arm_compute_lib) Default(arm_compute_benchmark_examples) - Export('arm_compute_benchmark_examples')
\ No newline at end of file + Export('arm_compute_benchmark_examples') |