Ejemplo n.º 1
0
    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)
Ejemplo n.º 2
0
    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)