From 22dd8b9014112fe446cb8cff6d52933d2603a97f Mon Sep 17 00:00:00 2001 From: Michalis Spyrou Date: Tue, 5 Jul 2022 14:07:23 +0100 Subject: Add missing flag when building cl graph examples and fix incorrect cl cache behaviour Resolves: COMPMID-5286 Signed-off-by: Michalis Spyrou Change-Id: I1aa82825ef7d31d7830a00282d1a3523ccf1d746 Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/7883 Benchmark: Arm Jenkins Tested-by: Arm Jenkins Reviewed-by: Pablo Marquez Tello Reviewed-by: SiCong Li Comments-Addressed: Arm Jenkins --- examples/SConscript | 13 +++++++------ src/runtime/CL/CLScheduler.cpp | 5 +++-- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/examples/SConscript b/examples/SConscript index c8596eb355..7d9324ca9a 100644 --- a/examples/SConscript +++ b/examples/SConscript @@ -68,7 +68,6 @@ examples_libs = examples_env.get("LIBS",[]) for file in Glob("./graph_*.cpp"): example = os.path.basename(os.path.splitext(str(file))[0]) prog = None - if env['os'] in ['android', 'macos', 'bare_metal'] or env['standalone']: prog = examples_env.Program(example, ["{}.cpp".format(example), utils, graph_utils], LIBS = examples_libs + arm_compute_graph_libs, LINKFLAGS=examples_env["LINKFLAGS"]+[load_whole_archive, graph_dependency, noload_whole_archive] + extra_link_flags) Depends(prog, graph_dependency) @@ -82,24 +81,26 @@ for file in Glob("./graph_*.cpp"): Default(alias) if env['opencl'] and env['neon']: + examples_env.Append(CPPDEFINES = ['ARM_COMPUTE_CL']) for file in Glob("./neoncl_*.cpp"): example = os.path.basename(os.path.splitext(str(file))[0]) - prog = examples_env.Program(example, ["{}.cpp".format(example), utils], CPPDEFINES=['ARM_COMPUTE_CL'], LIBS = examples_libs + arm_compute_libs) + prog = examples_env.Program(example, ["{}.cpp".format(example), utils], LIBS = examples_libs + arm_compute_libs) Depends(prog, arm_compute_dependency) prog = install_bin(prog) alias = examples_env.Alias(example, prog) Default(alias) if env['opencl']: + examples_env.Append(CPPDEFINES = ['ARM_COMPUTE_CL']) for file in Glob("./cl_*.cpp"): example = os.path.basename(os.path.splitext(str(file))[0]) - prog = examples_env.Program(example, ["{}.cpp".format(example), utils], CPPDEFINES=['ARM_COMPUTE_CL'], LIBS = examples_libs + arm_compute_libs) + prog = examples_env.Program(example, ["{}.cpp".format(example), utils], LIBS = examples_libs + arm_compute_libs) Depends(prog, arm_compute_dependency) prog = install_bin(prog) alias = examples_env.Alias(example, prog) Default(alias) if env['experimental_dynamic_fusion']: - examples_env.Append(CPPDEFINES = ['ARM_COMPUTE_CL', 'ENABLE_EXPERIMENTAL_DYNAMIC_FUSION']) + examples_env.Append(CPPDEFINES = ['ENABLE_EXPERIMENTAL_DYNAMIC_FUSION']) for file in Glob("./dynamic_fusion/*.cpp"): example = os.path.basename(os.path.splitext(str(file))[0]) prog = examples_env.Program(example, ["./dynamic_fusion/{}.cpp".format(example), utils], LIBS = examples_libs + arm_compute_libs) @@ -114,12 +115,12 @@ if env['gemm_tuner'] and env['opencl']: example = os.path.basename(os.path.splitext(str(file))[0]) example = os.path.join("gemm_tuner", example) if env['os'] in ['android', 'macos', 'bare_metal'] or env['standalone']: - prog = examples_env.Program(example, ["{}.cpp".format(example), utils, gemm_tuner_common_options], CPPDEFINES=['ARM_COMPUTE_CL'], LIBS = examples_libs + arm_compute_graph_libs, LINKFLAGS=examples_env["LINKFLAGS"]+[load_whole_archive, graph_dependency, noload_whole_archive, '-fstack-protector-strong'] ) + prog = examples_env.Program(example, ["{}.cpp".format(example), utils, gemm_tuner_common_options], LIBS = examples_libs + arm_compute_graph_libs, LINKFLAGS=examples_env["LINKFLAGS"]+[load_whole_archive, graph_dependency, noload_whole_archive, '-fstack-protector-strong'] ) Depends(prog, graph_dependency) prog = install_bin(prog) else: #-Wl,--allow-shlib-undefined: Ignore dependencies of dependencies - prog = examples_env.Program(example, ["{}.cpp".format(example), utils, gemm_tuner_common_options], CPPDEFINES=['ARM_COMPUTE_CL'], LIBS = examples_libs + arm_compute_graph_libs, LINKFLAGS=examples_env["LINKFLAGS"]+['-Wl,--allow-shlib-undefined'] ) + prog = examples_env.Program(example, ["{}.cpp".format(example), utils, gemm_tuner_common_options], 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) diff --git a/src/runtime/CL/CLScheduler.cpp b/src/runtime/CL/CLScheduler.cpp index 26124ed7e9..8d30c05361 100644 --- a/src/runtime/CL/CLScheduler.cpp +++ b/src/runtime/CL/CLScheduler.cpp @@ -137,8 +137,9 @@ void CLScheduler::default_init(ICLTuner *cl_tuner, CLGEMMHeuristicsHandle *gemm_ init(ctx, queue, dev, cl_tuner, gemm_h); } - // Set CL tuner - _cl_tuner = cl_tuner; + // Set CL tuner and GEMM heuristics + _cl_tuner = cl_tuner; + _gemm_heuristics = gemm_h; } void CLScheduler::default_reinit(ICLTuner *cl_tuner, CLGEMMHeuristicsHandle *gemm_h, CLBackendType cl_backend_type) -- cgit v1.2.1