From f7df3d163133d24e459deec13ef4f56861a626e2 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner <inform@tiker.net> Date: Thu, 28 Apr 2016 23:59:20 -0500 Subject: [PATCH] Only insert barriers for parallel code --- loopy/schedule.py | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/loopy/schedule.py b/loopy/schedule.py index 4ffc68e83..c19a3e2c8 100644 --- a/loopy/schedule.py +++ b/loopy/schedule.py @@ -1440,24 +1440,27 @@ def generate_loop_schedules(kernel, debug_args={}): for gen_sched in gen: debug.stop() - logger.info("%s: barrier insertion: global" % kernel.name) + gsize, lsize = kernel.get_grid_sizes_as_exprs() - gen_sched = insert_barriers(kernel, gen_sched, - reverse=False, kind="global") + if gsize or lsize: + logger.info("%s: barrier insertion: global" % kernel.name) - for sched_item in gen_sched: - if ( - isinstance(sched_item, Barrier) - and sched_item.kind == "global"): - raise LoopyError("kernel requires a global barrier %s" - % sched_item.comment) + gen_sched = insert_barriers(kernel, gen_sched, + reverse=False, kind="global") - logger.info("%s: barrier insertion: local" % kernel.name) + for sched_item in gen_sched: + if ( + isinstance(sched_item, Barrier) + and sched_item.kind == "global"): + raise LoopyError("kernel requires a global barrier %s" + % sched_item.comment) - gen_sched = insert_barriers(kernel, gen_sched, - reverse=False, kind="local") + logger.info("%s: barrier insertion: local" % kernel.name) - logger.info("%s: barrier insertion: done" % kernel.name) + gen_sched = insert_barriers(kernel, gen_sched, + reverse=False, kind="local") + + logger.info("%s: barrier insertion: done" % kernel.name) yield kernel.copy( schedule=gen_sched, -- GitLab