diff --git a/sumpy/e2e.py b/sumpy/e2e.py index 9ecaa7af9566a9b95bff73f9627f236feaf1605f..724903fd587e45a03a65f5bbd750b85b20615bba 100644 --- a/sumpy/e2e.py +++ b/sumpy/e2e.py @@ -28,6 +28,8 @@ from six.moves import range import numpy as np import loopy as lp import sumpy.symbolic as sym + +from loopy.version import MOST_RECENT_LANGUAGE_VERSION from sumpy.tools import KernelCacheWrapper import logging @@ -194,7 +196,7 @@ class E2EFromCSR(E2EBase): """] + [""" tgt_expansions[tgt_ibox - tgt_base_ibox, {coeffidx}] = \ simul_reduce(sum, isrc_box, coeff{coeffidx}) \ - {{id_prefix=write_expn}} + {{id_prefix=write_expn,nosync=write_expn*}} """.format(coeffidx=i) for i in range(ncoeff_tgt)] + [""" end """], @@ -217,7 +219,8 @@ class E2EFromCSR(E2EBase): assumptions="ntgt_boxes>=1", silenced_warnings="write_race(write_expn*)", default_offset=lp.auto, - fixed_parameters=dict(dim=self.dim)) + fixed_parameters=dict(dim=self.dim), + lang_version=MOST_RECENT_LANGUAGE_VERSION) for expn in [self.src_expansion, self.tgt_expansion]: loopy_knl = expn.prepare_loopy_kernel(loopy_knl) @@ -311,7 +314,7 @@ class E2EFromChildren(E2EBase): tgt_expansions[tgt_ibox - tgt_base_ibox, {i}] \ + coeff{i} \ {{id_prefix=write_expn,dep=compute_coeff*, - nosync=read_coeff*}} + nosync=read_coeff*:write_expn*}} """.format(i=i) for i in range(ncoeffs)] + [""" end end @@ -336,7 +339,8 @@ class E2EFromChildren(E2EBase): name=self.name, assumptions="ntgt_boxes>=1", silenced_warnings="write_race(write_expn*)", - fixed_parameters=dict(dim=self.dim, nchildren=2**self.dim)) + fixed_parameters=dict(dim=self.dim, nchildren=2**self.dim), + lang_version=MOST_RECENT_LANGUAGE_VERSION) for expn in [self.src_expansion, self.tgt_expansion]: loopy_knl = expn.prepare_loopy_kernel(loopy_knl) @@ -418,7 +422,7 @@ class E2EFromParent(E2EBase): tgt_expansions[tgt_ibox - tgt_base_ibox, {i}] = \ tgt_expansions[tgt_ibox - tgt_base_ibox, {i}] + coeff{i} \ - {{id_prefix=write_expn,nosync=read_expn*}} + {{id_prefix=write_expn,nosync=read_expn*:write_expn*}} """.format(i=i) for i in range(ncoeffs)] + [""" end """], @@ -439,7 +443,8 @@ class E2EFromParent(E2EBase): ] + gather_loopy_arguments([self.src_expansion, self.tgt_expansion]), name=self.name, assumptions="ntgt_boxes>=1", silenced_warnings="write_race(write_expn*)", - fixed_parameters=dict(dim=self.dim, nchildren=2**self.dim)) + fixed_parameters=dict(dim=self.dim, nchildren=2**self.dim), + lang_version=MOST_RECENT_LANGUAGE_VERSION) for expn in [self.src_expansion, self.tgt_expansion]: loopy_knl = expn.prepare_loopy_kernel(loopy_knl) diff --git a/sumpy/e2p.py b/sumpy/e2p.py index cfa30952db7a86528043645694a8ba24f96c7b50..d0d05cbf8c45e8d9f1c4552f784950bdfcab4bfb 100644 --- a/sumpy/e2p.py +++ b/sumpy/e2p.py @@ -28,7 +28,9 @@ from six.moves import range import numpy as np import loopy as lp import sumpy.symbolic as sym + from sumpy.tools import KernelCacheWrapper +from loopy.version import MOST_RECENT_LANGUAGE_VERSION __doc__ = """ @@ -187,7 +189,8 @@ class E2PFromSingleBox(E2PBase): assumptions="ntgt_boxes>=1", silenced_warnings="write_race(write_result*)", default_offset=lp.auto, - fixed_parameters=dict(dim=self.dim, nresults=len(result_names))) + fixed_parameters=dict(dim=self.dim, nresults=len(result_names)), + lang_version=MOST_RECENT_LANGUAGE_VERSION) loopy_knl = lp.tag_inames(loopy_knl, "idim*:unr") loopy_knl = self.expansion.prepare_loopy_kernel(loopy_knl) @@ -294,7 +297,8 @@ class E2PFromCSR(E2PBase): default_offset=lp.auto, fixed_parameters=dict( dim=self.dim, - nresults=len(result_names))) + nresults=len(result_names)), + lang_version=MOST_RECENT_LANGUAGE_VERSION) loopy_knl = lp.tag_inames(loopy_knl, "idim*:unr") loopy_knl = lp.prioritize_loops(loopy_knl, "itgt_box,itgt,isrc_box") diff --git a/sumpy/p2e.py b/sumpy/p2e.py index 8fc3a7732684d4b1e1aa5c69b68cb021368d2b39..ba60c38cac3d20b9cb438c5c4272bfcef7e50358 100644 --- a/sumpy/p2e.py +++ b/sumpy/p2e.py @@ -27,6 +27,7 @@ from six.moves import range import numpy as np import loopy as lp + from sumpy.tools import KernelCacheWrapper import logging @@ -136,7 +137,7 @@ class P2EFromSingleBox(P2EBase): """] + [""" tgt_expansions[src_ibox-tgt_base_ibox, {coeffidx}] = \ simul_reduce(sum, isrc, strength*coeff{coeffidx}) \ - {{id_prefix=write_expn}} + {{id_prefix=write_expn,nosync=write_expn*}} """.format(coeffidx=i) for i in range(ncoeffs)] + [""" end """], @@ -254,7 +255,8 @@ class P2EFromCSR(P2EBase): """] + [""" tgt_expansions[tgt_ibox - tgt_base_ibox, {coeffidx}] = \ simul_reduce(sum, (isrc_box, isrc), - strength*coeff{coeffidx}) {{id_prefix=write_expn}} + strength*coeff{coeffidx}) \ + {{id_prefix=write_expn,nosync=write_expn*}} """.format(coeffidx=i) for i in range(ncoeffs)] + [""" end """], diff --git a/sumpy/qbx.py b/sumpy/qbx.py index e0a3ea8355866cdaa770ad7466abe17bb90e978a..cde20ef235ee2cd7f5b7dfdf57e30be2d4d8c20c 100644 --- a/sumpy/qbx.py +++ b/sumpy/qbx.py @@ -27,6 +27,7 @@ import six from six.moves import range, zip import numpy as np import loopy as lp +from loopy.version import MOST_RECENT_LANGUAGE_VERSION import sumpy.symbolic as sym from pytools import memoize_method from pymbolic import parse, var @@ -180,7 +181,8 @@ class LayerPotentialBase(KernelComputation, KernelCacheWrapper): assumptions="nsources>=1 and ntargets>=1", default_offset=lp.auto, silenced_warnings="write_race(write_lpot*)", - fixed_parameters=dict(dim=self.dim)) + fixed_parameters=dict(dim=self.dim), + lang_version=MOST_RECENT_LANGUAGE_VERSION) loopy_knl = lp.tag_inames(loopy_knl, "idim*:unr") diff --git a/sumpy/version.py b/sumpy/version.py index 24df01b4d7a67be94d7f0dd39abd6ae94467fac7..178a9771bc2f20ad06b4679f3076d5a03b3dd782 100644 --- a/sumpy/version.py +++ b/sumpy/version.py @@ -25,4 +25,4 @@ VERSION = (2016, 1) VERSION_STATUS = "beta1" VERSION_TEXT = ".".join(str(x) for x in VERSION) + VERSION_STATUS -KERNEL_VERSION = 25 +KERNEL_VERSION = 26