From 9e1757be48d408800361f90e8480e593d5674a6b Mon Sep 17 00:00:00 2001 From: Alex Fikl <alexfikl@gmail.com> Date: Wed, 7 Mar 2018 17:20:28 -0600 Subject: [PATCH] p2p: silence WriteRaceCondition warnings --- sumpy/p2p.py | 5 +++-- sumpy/qbx.py | 53 ++++++++++++++++++++++++++-------------------------- 2 files changed, 30 insertions(+), 28 deletions(-) diff --git a/sumpy/p2p.py b/sumpy/p2p.py index 9e26e8e6..2c5d9189 100644 --- a/sumpy/p2p.py +++ b/sumpy/p2p.py @@ -58,7 +58,7 @@ Particle-to-particle class P2PBase(KernelComputation, KernelCacheWrapper): def __init__(self, ctx, kernels, exclude_self, strength_usage=None, value_dtypes=None, - options=[], name="p2p", device=None): + options=[], name=None, device=None): """ :arg kernels: list of :class:`sumpy.kernel.Kernel` instances :arg strength_usage: A list of integers indicating which expression @@ -343,7 +343,7 @@ class P2PMatrixBlockGenerator(P2PBase): + [""" result_{i}[tgtstart + itgt, srcstart + isrc] = \ knl_{i}_scaling * pair_result_{i} \ - {{inames=irange}} + {{id_prefix=write_p2p,inames=irange}} """.format(i=iknl) for iknl in range(len(self.kernels))] + [""" @@ -352,6 +352,7 @@ class P2PMatrixBlockGenerator(P2PBase): """], arguments, assumptions="nranges>=1", + silenced_warnings="write_race(write_p2p*)", name=self.name, fixed_parameters=dict(dim=self.dim), lang_version=MOST_RECENT_LANGUAGE_VERSION) diff --git a/sumpy/qbx.py b/sumpy/qbx.py index d91d3a11..f0c35174 100644 --- a/sumpy/qbx.py +++ b/sumpy/qbx.py @@ -88,7 +88,7 @@ def expand(expansion_nr, sac, expansion, avec, bvec): class LayerPotentialBase(KernelComputation, KernelCacheWrapper): def __init__(self, ctx, expansions, strength_usage=None, value_dtypes=None, - options=[], name="layerpot", device=None): + options=[], name=None, device=None): KernelComputation.__init__(self, ctx, expansions, strength_usage, value_dtypes, name, options, device) @@ -206,30 +206,30 @@ class LayerPotential(LayerPotentialBase): for i, dtype in enumerate(self.value_dtypes)]) loopy_knl = lp.make_kernel([ - "{[itgt]: 0 <= itgt < ntargets}", - "{[isrc]: 0 <= isrc < nsources}", - "{[idim]: 0 <= idim < dim}" - ], - self.get_kernel_scaling_assignments() - + ["for itgt, isrc"] - + ["<> a[idim] = center[idim, itgt] - src[idim, isrc] {dup=idim}"] - + ["<> b[idim] = tgt[idim, itgt] - center[idim, itgt] {dup=idim}"] - + ["<> rscale = expansion_radii[itgt]"] - + loopy_insns + kernel_exprs - + [""" - result_{i}[itgt] = knl_{i}_scaling * \ - simul_reduce(sum, isrc, pair_result_{i}) \ - {{id_prefix=write_lpot,inames=itgt}} - """.format(i=iknl) - for iknl in range(len(self.expansions))] - + ["end"], - arguments, - name=self.name, - assumptions="ntargets>=1 and nsources>=1", - default_offset=lp.auto, - silenced_warnings="write_race(write_lpot*)", - fixed_parameters=dict(dim=self.dim), - lang_version=MOST_RECENT_LANGUAGE_VERSION) + "{[itgt]: 0 <= itgt < ntargets}", + "{[isrc]: 0 <= isrc < nsources}", + "{[idim]: 0 <= idim < dim}" + ], + self.get_kernel_scaling_assignments() + + ["for itgt, isrc"] + + ["<> a[idim] = center[idim, itgt] - src[idim, isrc] {dup=idim}"] + + ["<> b[idim] = tgt[idim, itgt] - center[idim, itgt] {dup=idim}"] + + ["<> rscale = expansion_radii[itgt]"] + + loopy_insns + kernel_exprs + + [""" + result_{i}[itgt] = knl_{i}_scaling * \ + simul_reduce(sum, isrc, pair_result_{i}) \ + {{id_prefix=write_lpot,inames=itgt}} + """.format(i=iknl) + for iknl in range(len(self.expansions))] + + ["end"], + arguments, + name=self.name, + assumptions="ntargets>=1 and nsources>=1", + default_offset=lp.auto, + silenced_warnings="write_race(write_lpot*)", + fixed_parameters=dict(dim=self.dim), + lang_version=MOST_RECENT_LANGUAGE_VERSION) loopy_knl = lp.tag_inames(loopy_knl, "idim*:unr") for expn in self.expansions: @@ -370,7 +370,7 @@ class LayerPotentialMatrixBlockGenerator(LayerPotentialBase): + [""" result_{i}[tgtstart + itgt, srcstart + isrc] = \ knl_{i}_scaling * pair_result_{i} \ - {{inames=irange}} + {{id_prefix=write_lpot,inames=irange}} """.format(i=iknl) for iknl in range(len(self.expansions))] + [""" @@ -381,6 +381,7 @@ class LayerPotentialMatrixBlockGenerator(LayerPotentialBase): name=self.name, assumptions="nranges>=1", default_offset=lp.auto, + silenced_warnings="write_race(write_lpot*)", fixed_parameters=dict(dim=self.dim), lang_version=MOST_RECENT_LANGUAGE_VERSION) -- GitLab