diff --git a/sumpy/codegen.py b/sumpy/codegen.py index 5d27708f220fcf2b93b804da44ef6eeb1ef36565..948512dfe884c35e0f421c4a4314796e38b0ab7b 100644 --- a/sumpy/codegen.py +++ b/sumpy/codegen.py @@ -567,7 +567,7 @@ class BigIntegerKiller(CSECachingMapperMixin, IdentityMapper): expr_as_float = self.float_type(expr) if int(expr_as_float) != int(expr): from warnings import warn - warn("Converting to '%d' to '%s' loses digits" + warn("Converting '%d' to '%s' loses digits" % (expr, self.float_type.__name__)) # Suppress further warnings. diff --git a/sumpy/fmm.py b/sumpy/fmm.py index 48cb7e6d35ac11a06725414f0cfd80c922abee02..2fd90914169b2e27f0c2baa4c56225649a29d413 100644 --- a/sumpy/fmm.py +++ b/sumpy/fmm.py @@ -147,16 +147,6 @@ class SumpyExpansionWranglerCodeContainer(object): # {{{ expansion wrangler -def _enqueue_barrier(queue, wait_for): - if queue.device.platform.name == "Portable Computing Language": - # pocl 0.13 and below crash on clEnqueueBarrierWithWaitList - evt = cl.enqueue_marker(queue, wait_for=wait_for) - queue.finish() - return evt - else: - return cl.enqueue_barrier(queue, wait_for=wait_for) - - class SumpyExpansionWrangler(object): """Implements the :class:`boxtree.fmm.ExpansionWranglerInterface` by using :mod:`sumpy` expansions/translations. @@ -210,10 +200,6 @@ class SumpyExpansionWrangler(object): self.extra_kwargs = source_extra_kwargs.copy() self.extra_kwargs.update(self.kernel_extra_kwargs) - self.level_queues = [ - cl.CommandQueue(self.code.cl_context) - for i in range(self.tree.nlevels)] - # {{{ data vector utilities def _expansions_level_starts(self, order_to_size): @@ -320,7 +306,6 @@ class SumpyExpansionWrangler(object): kwargs = self.extra_kwargs.copy() kwargs.update(self.box_source_list_kwargs()) - events = [] for lev in range(self.tree.nlevels): p2m = self.code.p2m(self.level_orders[lev]) start, stop = level_start_source_box_nrs[lev:lev+2] @@ -331,25 +316,19 @@ class SumpyExpansionWrangler(object): mpoles, lev) evt, (mpoles_res,) = p2m( - self.level_queues[lev], + self.queue, source_boxes=source_boxes[start:stop], centers=self.tree.box_centers, strengths=src_weights, tgt_expansions=mpoles_view, tgt_base_ibox=level_start_ibox, - wait_for=src_weights.events, rscale=level_to_rscale(self.tree, lev), **kwargs) assert mpoles_res is mpoles_view - events.append(evt) - - evt = _enqueue_barrier(self.queue, wait_for=events) - mpoles.add_event(evt) - return mpoles def coarsen_multipoles(self, @@ -437,7 +416,6 @@ class SumpyExpansionWrangler(object): mpole_exps): local_exps = self.local_expansion_zeros() - events = [] for lev in range(self.tree.nlevels): start, stop = level_start_target_box_nrs[lev:lev+2] if start == stop: @@ -452,7 +430,7 @@ class SumpyExpansionWrangler(object): self.local_expansions_view(local_exps, lev) evt, (local_exps_res,) = m2l( - self.level_queues[lev], + self.queue, src_expansions=source_mpoles_view, src_base_ibox=source_level_start_ibox, @@ -467,16 +445,8 @@ class SumpyExpansionWrangler(object): src_rscale=level_to_rscale(self.tree, lev), tgt_rscale=level_to_rscale(self.tree, lev), - wait_for=mpole_exps.events, - **self.kernel_extra_kwargs) - assert local_exps_res is target_local_exps_view - events.append(evt) - - evt = _enqueue_barrier(self.queue, wait_for=events) - local_exps.add_event(evt) - return local_exps def eval_multipoles(self, @@ -535,7 +505,6 @@ class SumpyExpansionWrangler(object): kwargs = self.extra_kwargs.copy() kwargs.update(self.box_source_list_kwargs()) - events = [] for lev in range(self.tree.nlevels): start, stop = \ level_start_target_or_target_parent_box_nrs[lev:lev+2] @@ -548,7 +517,7 @@ class SumpyExpansionWrangler(object): self.local_expansions_view(local_exps, lev) evt, (result,) = p2l( - self.level_queues[lev], + self.queue, target_boxes=target_or_target_parent_boxes[start:stop], source_box_starts=starts[start:stop+1], source_box_lists=lists, @@ -560,15 +529,9 @@ class SumpyExpansionWrangler(object): rscale=level_to_rscale(self.tree, lev), - wait_for=src_weights.events, - **kwargs) assert result is target_local_exps_view - events.append(evt) - - evt = _enqueue_barrier(self.queue, wait_for=events) - result.add_event(evt) return local_exps @@ -619,7 +582,6 @@ class SumpyExpansionWrangler(object): kwargs = self.kernel_extra_kwargs.copy() kwargs.update(self.box_target_list_kwargs()) - events = [] for lev in range(self.tree.nlevels): start, stop = level_start_target_box_nrs[lev:lev+2] if start == stop: @@ -631,7 +593,7 @@ class SumpyExpansionWrangler(object): self.local_expansions_view(local_exps, lev) evt, pot_res = l2p( - self.level_queues[lev], + self.queue, src_expansions=source_local_exps_view, src_base_ibox=source_level_start_ibox, @@ -642,17 +604,10 @@ class SumpyExpansionWrangler(object): rscale=level_to_rscale(self.tree, lev), - wait_for=local_exps.events, - **kwargs) for pot_i, pot_res_i in zip(pot, pot_res): assert pot_i is pot_res_i - events.append(evt) - - evt = _enqueue_barrier(self.queue, wait_for=events) - for pot_i in pot: - pot_i.add_event(evt) return pot diff --git a/sumpy/kernel.py b/sumpy/kernel.py index 8614dd0430dbd29ee9bc3e879d0a0ffd37103ddf..cc4d1c0d281ee399685b1e30d1074f4e8aa3197f 100644 --- a/sumpy/kernel.py +++ b/sumpy/kernel.py @@ -373,7 +373,7 @@ class ExpressionKernel(Kernel): def update_persistent_hash(self, key_hash, key_builder): key_hash.update(type(self).__name__.encode("utf8")) for name, value in zip(self.init_arg_names, self.__getinitargs__()): - if name in ["expression", "scaling"]: + if name in ["expression", "global_scaling_const"]: from pymbolic.mapper.persistent_hash import ( PersistentHashWalkMapper as PersistentHashWalkMapper) PersistentHashWalkMapper(key_hash)(value) diff --git a/sumpy/toys.py b/sumpy/toys.py index 9b2c2464da7d522a985201494aed429182537a4f..0cd414302a029db32b796a2b7fbda7d90d145964 100644 --- a/sumpy/toys.py +++ b/sumpy/toys.py @@ -707,7 +707,9 @@ class SchematicVisitor(object): verticalalignment="center", horizontalalignment="center") - label = type(psource).__name__[0] + label = "$%s_{%s}$" % ( + type(psource).__name__[0].lower().replace("l", "\\ell"), + psource.order) if psource.text_kwargs is not None: psource_text_kwargs_copy = psource.text_kwargs.copy() @@ -720,7 +722,7 @@ class SchematicVisitor(object): # are present at the tail. import matplotlib as mpl font_size = mpl.rcParams['font.size'] - shrinkB = 2/3 * font_size # noqa + shrinkB = 7/8 * font_size # noqa arrowprops = dict(shrinkB=shrinkB, arrowstyle="<|-")