diff --git a/loopy/kernel/instruction.py b/loopy/kernel/instruction.py index be9dd93fa69b323412def74852a705adf54570b4..cce65a52209de297152e4f0adafa63ca253004d7 100644 --- a/loopy/kernel/instruction.py +++ b/loopy/kernel/instruction.py @@ -623,13 +623,13 @@ class OrderedAtomic(VarAtomicity): :class:`pytools.persistent_dict.PersistentDict`. """ - super(AtomicUpdate, self).update_persistent_hash(key_hash, key_builder) + super(OrderedAtomic, self).update_persistent_hash(key_hash, key_builder) key_builder.rec(key_hash, str(self.__class__.__name__)) key_builder.rec(key_hash, self.ordering) key_builder.rec(key_hash, self.scope) def __eq__(self, other): - return (super(AtomicUpdate, self).__eq__(other) + return (super(OrderedAtomic, self).__eq__(other) and self.ordering == other.ordering and self.scope == other.scope) diff --git a/test/test_loopy.py b/test/test_loopy.py index 6fecef421ce47b9f8c5295be11488c2bcf49d80c..54a304d40f23aafc9c223fae39b3d608e9ae572d 100644 --- a/test/test_loopy.py +++ b/test/test_loopy.py @@ -1054,13 +1054,14 @@ def test_atomic_load(ctx_factory): lp.GlobalArg("a", dtype, shape=lp.auto), lp.GlobalArg("b", dtype, shape=lp.auto), lp.TemporaryVariable('temp', dtype, for_atomic=True, - scope=scopes.LOCAL, shape=(1,)), + scope=scopes.LOCAL, shape=(vec_width,)), "..." - ]) + ], + silenced_warnings=["write_race(init)", "write_race(temp_sum)"]) knl = lp.split_iname(knl, "j", vec_width, inner_tag="l.0") _, out = knl(queue, a=np.arange(n, dtype=dtype), b=np.arange(n, dtype=dtype)) - assert np.allclose(out, np.full_like(out, (-(2 * n - 1) / (3 * vec_width)))) + assert np.allclose(out, np.full_like(out, (-(2 * n - 1) / float(3 * vec_width)))) def test_within_inames_and_reduction():