aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichele Di Giorgio <michele.digiorgio@arm.com>2020-11-18 15:29:08 +0000
committerMichele Di Giorgio <michele.digiorgio@arm.com>2020-12-17 08:40:07 +0000
commit72610dcf2d634c9c2919ad55245c5c91609e87eb (patch)
treec008e47e360f8e903aa26642c5ab0685d69bb1b5
parent462e75e217a11b92b8df8c3434f2491ef70487e3 (diff)
downloadComputeLibrary-72610dcf2d634c9c2919ad55245c5c91609e87eb.tar.gz
Remove 3rdparty submodule and internal_only build option
Remove 3rdparty submodule and allow to build external tests, examples and benchmarks using the Compute Library test framework. In order to use this option, the external tests directory must have the following structure: EXTERNAL_TESTS_DIR: └── tests ├── benchmark │   ├── CL │   ├── datasets │   ├── fixtures │   └── NEON └── validation    ├── CL     ├── datasets     ├── fixtures     └── NEON Then, the user can build the library with `external_tests_dir=<PATH_TO_EXTERNAL_TESTS_DIR>`. Also, remove internal_only build option". Without the 3rdparty submodule, this build option is no longer needed. Resolves: COMPMID-3417, COMPMID-3419 Change-Id: Ib7bf8ec7b9b9317fd82012a96bf4a7b0be846c1b Signed-off-by: Michele Di Giorgio <michele.digiorgio@arm.com> Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/4704 Reviewed-by: Georgios Pinitas <georgios.pinitas@arm.com> Tested-by: Arm Jenkins <bsgcomp@arm.com> Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
-rw-r--r--.gitmodules4
m---------3rdparty0
-rw-r--r--SConstruct3
-rw-r--r--docs/00_introduction.dox23
-rw-r--r--examples/SConscript30
-rwxr-xr-xscripts/clang_tidy_rules.py7
-rw-r--r--tests/SConscript36
7 files changed, 58 insertions, 45 deletions
diff --git a/.gitmodules b/.gitmodules
deleted file mode 100644
index da9bc32fee..0000000000
--- a/.gitmodules
+++ /dev/null
@@ -1,4 +0,0 @@
-[submodule "3rdparty"]
- path = 3rdparty
- url = https://eu-gerrit-1.euhpc.arm.com/VisualCompute/3rdparty
- branch = master
diff --git a/3rdparty b/3rdparty
deleted file mode 160000
-Subproject 679eadd4df491b26b8b824690348e334ad588c7
diff --git a/SConstruct b/SConstruct
index 15197a632f..b543bc0ebb 100644
--- a/SConstruct
+++ b/SConstruct
@@ -64,8 +64,7 @@ vars.AddVariables(
PathVariable("install_dir", "Specify sub-folder for the install", "", PathVariable.PathAccept),
BoolVariable("exceptions", "Enable/disable C++ exception support", True),
PathVariable("linker_script", "Use an external linker script", "", PathVariable.PathAccept),
- #FIXME Remove before release (And remove all references to INTERNAL_ONLY)
- BoolVariable("internal_only", "Enable ARM internal only tests", False),
+ PathVariable("external_tests_dir", "Add examples, benchmarks and tests to the tests suite", "", PathVariable.PathAccept),
ListVariable("custom_options", "Custom options that can be used to turn on/off features", "none", ["disable_mmla_fp"]),
ListVariable("data_type_support", "Enable a list of data types to support", "all", ["qasymm8", "qasymm8_signed", "qsymm16", "fp16", "fp32"]),
("toolchain_prefix", "Override the toolchain prefix", ""),
diff --git a/docs/00_introduction.dox b/docs/00_introduction.dox
index 448025846b..189067c81f 100644
--- a/docs/00_introduction.dox
+++ b/docs/00_introduction.dox
@@ -1481,6 +1481,10 @@ To see the build options available simply run ```scons -h```:
default: False
actual: False
+ external_tests_dir: Add examples, benchmarks and tests to the tests suite from an external path ( /path/to/external_tests_dir )
+ default:
+ actual:
+
@b debug / @b asserts:
- With debug=1 asserts are enabled, and the library is built with symbols and no optimisations enabled.
- With debug=0 and asserts=1: Optimisations are enabled and symbols are removed, however all the asserts are still present (This is about 20% slower than the release build)
@@ -1535,6 +1539,25 @@ Example:
@sa Scheduler::set
+@b external_tests_dir Add examples, benchmarks and tests to the tests suite from an external path ( /path/to/external_tests_dir )
+
+In order to use this option, the external tests directory must have the following structure:
+
+ EXTERNAL_TESTS_DIR:
+ └── tests
+ ├── benchmark
+ │   ├── CL
+ │   ├── datasets
+ │   ├── fixtures
+ │   └── NEON
+ └── validation
+    ├── CL
+     ├── datasets
+     ├── fixtures
+     └── NEON
+
+Then, build the library with `external_tests_dir=<PATH_TO_EXTERNAL_TESTS_DIR>`.
+
@subsection S3_2_linux Building for Linux
@subsubsection S3_2_1_library How to build the library ?
diff --git a/examples/SConscript b/examples/SConscript
index cd07c6a15a..ff457faf38 100644
--- a/examples/SConscript
+++ b/examples/SConscript
@@ -131,19 +131,19 @@ if env['gles_compute']:
alias = examples_env.Alias(example, prog)
Default(alias)
-#FIXME Delete 3rdparty builds before release
-for file in Glob("#3rdparty/examples/graph_*.cpp"):
- example = os.path.basename(os.path.splitext(str(file))[0])
- prog = None
+if env['external_tests_dir']:
+ for file in Glob(env['external_tests_dir'] + "/examples/graph_*.cpp"):
+ example = os.path.basename(os.path.splitext(str(file))[0])
+ prog = None
- if env['os'] in ['android', 'bare_metal'] or env['standalone']:
- prog = examples_env.Program(example, [examples_env.Object(source=file, target=example), utils, graph_utils], LIBS = examples_libs + arm_compute_graph_libs, LINKFLAGS=examples_env["LINKFLAGS"]+['-Wl,--whole-archive',graph_dependency,'-Wl,--no-whole-archive'] + extra_link_flags)
- Depends(prog, graph_dependency)
- prog = install_bin(prog)
- else:
- #-Wl,--allow-shlib-undefined: Ignore dependencies of dependencies
- prog = examples_env.Program(example, [examples_env.Object(source=file, target=example), utils, graph_utils], LIBS = examples_libs + arm_compute_graph_libs, LINKFLAGS=examples_env["LINKFLAGS"]+['-Wl,--allow-shlib-undefined'] )
- Depends(prog, graph_dependency)
- prog = install_bin(prog)
- alias = examples_env.Alias(example, prog)
- Default(alias)
+ if env['os'] in ['android', 'bare_metal'] or env['standalone']:
+ prog = examples_env.Program(example, [examples_env.Object(source=file, target=example), utils, graph_utils], LIBS = examples_libs + arm_compute_graph_libs, LINKFLAGS=examples_env["LINKFLAGS"]+['-Wl,--whole-archive',graph_dependency,'-Wl,--no-whole-archive'] + extra_link_flags)
+ Depends(prog, graph_dependency)
+ prog = install_bin(prog)
+ else:
+ #-Wl,--allow-shlib-undefined: Ignore dependencies of dependencies
+ prog = examples_env.Program(example, [examples_env.Object(source=file, target=example), utils, graph_utils], LIBS = examples_libs + arm_compute_graph_libs, LINKFLAGS=examples_env["LINKFLAGS"]+['-Wl,--allow-shlib-undefined'] )
+ Depends(prog, graph_dependency)
+ prog = install_bin(prog)
+ alias = examples_env.Alias(example, prog)
+ Default(alias)
diff --git a/scripts/clang_tidy_rules.py b/scripts/clang_tidy_rules.py
index 1e24b042de..ddf25384f2 100755
--- a/scripts/clang_tidy_rules.py
+++ b/scripts/clang_tidy_rules.py
@@ -11,8 +11,7 @@ def get_list_includes():
"src/core/NEON/kernels/assembly " \
"src/core/NEON/kernels/convolution/winograd " \
"include/linux include " \
- ". " \
- "3rdparty/include kernels".split()
+ ". ".split()
def get_list_flags( filename, arch):
assert arch in ["armv7", "aarch64"]
@@ -64,7 +63,6 @@ def filter_clang_tidy_lines( lines ):
("Utils.h" in line and "no member named 'unmap' in 'arm_compute::Tensor'" in line) or
("Utils.h" in line and "no member named 'map' in 'arm_compute::Tensor'" in line) or
("CPUUtils.cpp" in line and "'asm/hwcap.h' file not found" in line) or
- "3rdparty" in line or
("'arm_compute_version.embed' file not found" in line) ):
print_context=False
continue
@@ -119,8 +117,7 @@ def filter_clang_tidy_lines( lines ):
("GCKernelLibrary.cpp" in line and "warning: do not declare C-style arrays" in line) or
("Utils.h" in line and "warning: Use of zero-allocated memory" in line) or
("NEDepthwiseConvolutionLayerNativeKernel.cpp" in line and "misc-non-private-member-variables-in-classes" in line) or # This is to prevent false positive, should be reassessed with the newer clang-tidy
- ("NEDepthwiseConvolutionLayerNativeKernel.cpp" in line and "cppcoreguidelines-pro-type-member-init" in line) or # This is to prevent false positive, should be reassessed with the newer clang-tidy
- "3rdparty" in line):
+ ("NEDepthwiseConvolutionLayerNativeKernel.cpp" in line and "cppcoreguidelines-pro-type-member-init" in line)): # This is to prevent false positive, should be reassessed with the newer clang-tidy
print_context=False
continue
diff --git a/tests/SConscript b/tests/SConscript
index 6fc67af747..565aeac4a1 100644
--- a/tests/SConscript
+++ b/tests/SConscript
@@ -88,20 +88,16 @@ else:
if env['os'] in ['bare_metal']:
Import("bootcode_o")
-#FIXME Delete before release
-if env['internal_only']:
- test_env.Append(CPPDEFINES=['INTERNAL_ONLY'])
-
-test_env.Append(CPPPATH = ["#3rdparty/include"])
-test_env.Append(LIBPATH = ["#3rdparty/%s/%s" % (env['os'], env['arch'])])
+if env['external_tests_dir']:
+ test_env.Append(CPPPATH = [env['external_tests_dir'] + "/include"])
+ test_env.Append(LIBPATH = [env['external_tests_dir'] + "/%s/%s" % (env['os'], env['arch'])])
common_files = Glob('*.cpp')
common_objects = [test_env.StaticObject(f) for f in common_files]
files_benchmark = Glob('benchmark/*.cpp')
-#FIXME Delete before release
-if env['internal_only']:
- files_benchmark += Glob('../3rdparty/tests/benchmark/*.cpp')
+if env['external_tests_dir']:
+ files_benchmark += Glob(env['external_tests_dir'] + '/tests/benchmark/*.cpp')
# Add unit tests
files_validation = Glob('validation/UNIT/*/*.cpp')
@@ -118,23 +114,20 @@ if env['opencl']:
files_benchmark += Glob('benchmark/CL/*/' + filter_pattern)
files_benchmark += Glob('benchmark/CL/' + filter_pattern)
- #FIXME Delete before release
- if env['internal_only']:
- files_benchmark += Glob('../3rdparty/tests/benchmark/CL/' + filter_pattern)
+ if env['external_tests_dir']:
+ files_benchmark += Glob(env['external_tests_dir'] + '/tests/benchmark/CL/' + filter_pattern)
files_validation += Glob('validation/CL/*/' + filter_pattern)
files_validation += Glob('validation/CL/' + filter_pattern)
- #FIXME Delete before release
- if env['internal_only']:
- files_validation += Glob('../3rdparty/tests/validation/CL/' + filter_pattern)
+ if env['external_tests_dir']:
+ files_validation += Glob(env['external_tests_dir'] + '/tests/validation/CL/' + filter_pattern)
if env['neon']:
filter_pattern = test_env['test_filter']
files_benchmark += Glob('benchmark/NEON/*/' + filter_pattern)
files_benchmark += Glob('benchmark/NEON/' + filter_pattern)
- #FIXME Delete before release
- if env['internal_only']:
- files_benchmark += Glob('../3rdparty/tests/benchmark/NEON/' + filter_pattern)
+ if env['external_tests_dir']:
+ files_benchmark += Glob(env['external_tests_dir'] + '/tests/benchmark/NEON/' + filter_pattern)
files_validation += Glob('validation/NEON/' + filter_pattern)
if env['os'] == 'bare_metal':
@@ -143,6 +136,8 @@ if env['neon']:
files_validation += Glob('validation/NEON/UNIT/TensorAllocator.cpp' + filter_pattern)
else:
files_validation += Glob('validation/NEON/*/' + filter_pattern)
+ if env['external_tests_dir']:
+ files_validation += Glob(env['external_tests_dir'] + '/tests/validation/NEON/' + filter_pattern)
if env['gles_compute']:
@@ -241,7 +236,10 @@ if test_env['benchmark_examples']:
graph_utils = test_env.Object(source="../utils/GraphUtils.cpp", target="GraphUtils")
graph_params = test_env.Object(source="../utils/CommonGraphOptions.cpp", target="CommonGraphOptions")
arm_compute_benchmark_examples = []
- for examples_folder in [ "../examples", "../3rdparty/examples"]:
+ all_examples_folders = ["../examples"]
+ if env['external_tests_dir']:
+ all_examples_folders.append(env['external_tests_dir'] + "/examples")
+ for examples_folder in all_examples_folders:
if test_env['neon']:
for file in Glob("%s/neon_*.cpp" % examples_folder):
example = "benchmark_" + os.path.basename(os.path.splitext(str(file))[0])