From 498f8eb0a5e682070cb5a6cb3a4847bbdedb593b Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner <inform@tiker.net> Date: Sun, 11 Feb 2018 18:10:39 -0600 Subject: [PATCH] Fix no_sync_with_docs --- loopy/kernel/instruction.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/loopy/kernel/instruction.py b/loopy/kernel/instruction.py index a2991c47b..6510da4da 100644 --- a/loopy/kernel/instruction.py +++ b/loopy/kernel/instruction.py @@ -91,7 +91,7 @@ class InstructionBase(ImmutableRecord): .. attribute:: no_sync_with - a :class:`frozenset` of tuples of the form `(insn_id, scope)`, where + a :class:`frozenset` of tuples of the form ``(insn_id, scope)``, where `insn_id` refers to :attr:`id` of :class:`Instruction` instances and `scope` is one of the following strings: @@ -99,11 +99,12 @@ class InstructionBase(ImmutableRecord): - `"global"` - `"any"`. - This indicates (symmetrically) that program semantics are not affected by - execution ordering of the involved instructions. In particular, - no barrier synchronization will be considered necessary with the given - instruction using barriers of type `scope`, even given the existence of - a dependency chain and apparently conflicting access. + An element ``(insn_id, scope)`` means "no conflicting variable access + for variables of ``scope`` between this instruction and ``insn_id``. + Specifically, loopy will not complain even if it detects that accesses + potentially requiring ordering (e.g. by dependencies) exist, and it + will not emit barriers to guard any dependencies from this + instruction on ``insn_id`` that may exist. Note, that :attr:`no_sync_with` allows instruction matching through wildcards and match expression, just like :attr:`depends_on`. -- GitLab