diff --git a/loopy/kernel/array.py b/loopy/kernel/array.py index 1f10e01a726d5d7e4e0171cb439cb53ab1163e05..5d4240b9ab3e1ce2ad356a93b5e21b3bbf4d499e 100644 --- a/loopy/kernel/array.py +++ b/loopy/kernel/array.py @@ -887,6 +887,7 @@ class ArrayBase(ImmutableRecord): :class:`pytools.persistent_dict.PersistentDict`. """ + key_builder.rec(key_hash, type(self).__name__.encode("utf-8")) key_builder.rec(key_hash, self.name) key_builder.rec(key_hash, self.dtype) self.update_persistent_hash_for_shape(key_hash, key_builder, self.shape) diff --git a/loopy/tools.py b/loopy/tools.py index 69a25b375cac5ac519182c71160d4d9b476c4c65..4acea7cff1cc66e1e3860b43895761c67b684e11 100644 --- a/loopy/tools.py +++ b/loopy/tools.py @@ -51,7 +51,12 @@ class PersistentHashWalkMapper(LoopyWalkMapper, PersistentHashWalkMapperBase): See also :meth:`LoopyKeyBuilder.update_for_pymbolic_expression`. """ - # + def map_reduction(self, expr, *args): + if not self.visit(expr): + return + + self.key_hash.update(type(expr.operation).__name__.encode("utf-8")) + self.rec(expr.expr, *args) class LoopyKeyBuilder(KeyBuilderBase):