diff --git a/pyopencl/clrandom.py b/pyopencl/clrandom.py index 66d4ceb75b2296d8b67871fb8ed9a02bb0f4b1c0..194493bb19b28deb45d1c18e3a0dfc6c8bc179d7 100644 --- a/pyopencl/clrandom.py +++ b/pyopencl/clrandom.py @@ -49,12 +49,7 @@ class RanluxGenerator(object): # {{{ compute work group size - wg_size = prg.init_ranlux.get_work_group_info( - cl.kernel_work_group_info.WORK_GROUP_SIZE, - queue.device) - - while num_work_items % wg_size != 0: - wg_size //= 2 + wg_size = None import sys import platform @@ -62,7 +57,7 @@ class RanluxGenerator(object): and "Apple" in queue.device.platform.vendor and platform.mac_ver()[0].startswith("10.7") and queue.device.type == cl.device_type.CPU): - wg_size = 1 + wg_size = (1,) self.wg_size = wg_size @@ -71,7 +66,7 @@ class RanluxGenerator(object): self.state = cl_array.empty(queue, (num_work_items, 112), dtype=np.uint8) self.state.fill(17) - prg.init_ranlux(queue, (num_work_items,), None, np.uint32(seed), + prg.init_ranlux(queue, (num_work_items,), self.wg_size, np.uint32(seed), self.state.data) def generate_settings_defines(self, include_double_pragma=True): @@ -198,7 +193,7 @@ class RanluxGenerator(object): queue = ary.queue self.get_gen_kernel(ary.dtype, "norm")(queue, - (self.num_work_items,), None, + (self.num_work_items,), self.wg_size, self.state.data, ary.data, ary.size, sigma, mu) def normal(self, *args, **kwargs): @@ -232,7 +227,7 @@ class RanluxGenerator(object): return prg.sync def synchronize(self, queue): - self.get_sync_kernel()(queue, (self.num_work_items,), None, self.state.data) + self.get_sync_kernel()(queue, (self.num_work_items,), self.wg_size, self.state.data)