def test_enqueue_native_kernel(self): if not ctx.devices[0].has_native_kernel: self.skipTest("Device does not support native kernels") queue = Queue(ctx, ctx.devices[0]) global foo foo = 0 def incfoo(arg, op=lambda a, b: 0): global foo foo = op(foo, arg) queue.enqueue_native_kernel(incfoo, 4, op=lambda a, b: a + b) queue.enqueue_native_kernel(incfoo, 3, op=lambda a, b: a * b) queue.finish() self.assertEqual(foo, 12)
def test_enqueue_native_kernel_refcount(self): if not ctx.devices[0].has_native_kernel: self.skipTest("Device does not support native kernels") queue = Queue(ctx, ctx.devices[0]) def incfoo(): pass self.assertEqual(sys.getrefcount(incfoo), 2) e = cl.UserEvent(ctx) queue.enqueue_wait_for_events(e) queue.enqueue_native_kernel(incfoo) self.assertEqual(sys.getrefcount(incfoo), 3) e.complete() queue.finish() self.assertEqual(sys.getrefcount(incfoo), 2)