diff --git a/loopy/kernel/array.py b/loopy/kernel/array.py index 186597c64734b54b8d08f0db43b57826d79f9567..6bf733a84f9df48fbb8433015e1e137f6dc0392c 100644 --- a/loopy/kernel/array.py +++ b/loopy/kernel/array.py @@ -833,6 +833,7 @@ class ArrayBase(ImmutableRecord): dim_names=dim_names, order=order, alignment=alignment, + for_atomic=for_atomic, **kwargs) def __eq__(self, other): diff --git a/loopy/preprocess.py b/loopy/preprocess.py index fc950c78e465a1d9051ee8c3cc6cb9650a6865ea..2afcd3db4331d57e1e61c48ba521ebaa296ddbb2 100644 --- a/loopy/preprocess.py +++ b/loopy/preprocess.py @@ -53,7 +53,7 @@ def prepare_for_caching(kernel): for arg in kernel.args: dtype = arg.dtype if dtype is not None and dtype is not lp.auto and dtype.target is not tgt: - arg = arg.copy(dtype=dtype.with_target(kernel.target)) + arg = arg.copy(dtype=dtype.with_target(tgt), target=tgt) new_args.append(arg) @@ -61,7 +61,7 @@ def prepare_for_caching(kernel): for name, temp in six.iteritems(kernel.temporary_variables): dtype = temp.dtype if dtype is not None and dtype is not lp.auto and dtype.target is not tgt: - temp = temp.copy(dtype=dtype.with_target(tgt)) + temp = temp.copy(dtype=dtype.with_target(tgt), target=tgt) new_temporary_variables[name] = temp