From d8aaea796a69f24854e7bfe624f3fbd81a5d9392 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner <inform@tiker.net> Date: Sun, 30 May 2021 17:38:11 -0500 Subject: [PATCH] NumpyType: don't try to register bool when unpickling, already registered to 'char' --- loopy/types.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/loopy/types.py b/loopy/types.py index de6208476..97483ec0c 100644 --- a/loopy/types.py +++ b/loopy/types.py @@ -129,7 +129,14 @@ class NumpyType(LoopyType): def __setstate__(self, state): target, name, dtype = state self.target = target - self.dtype = self.target.get_or_register_dtype([name], NumpyType(dtype)) + + if dtype == np.bool8: + # Bools are mapped to chars because OpenCL doesn't have them, so + # get_or_register_dtype will complain about duplicate registration. + # FIXME Tehcnically, this is OpenCL-specific. + self.dtype = np.dtype(dtype) + else: + self.dtype = self.target.get_or_register_dtype([name], NumpyType(dtype)) def with_target(self, target): return type(self)(self.dtype, target) -- GitLab