Skip to content

srossross/oclpb

Folders and files

NameName
Last commit message
Last commit date

Latest commit

904df09 · Jan 10, 2012
Jan 10, 2012
Dec 19, 2011
Jan 10, 2012
Jan 4, 2012
Dec 16, 2011
Jan 10, 2012
Jan 6, 2012
Dec 18, 2011
Jan 10, 2012

Repository files navigation

Welcome to OpenCL for Python's documentation!

This is yet another set of Python bindings for OpenCL.

Warning

This project currently is in a beta release state.

Features:

  • Python 2 and Python 3 compatibility.

  • Supports OpenCL 1.1

  • Discoverable properties and methods:

    No more ctx.get_info(pyopencl.context_info.DEVICES) just do ctx.devices

  • Tight integration with ctypes:

    import opencl as cl
    from ctypes import c_float
    ctx =  cl.Context()
    a = cl.empty(ctx, [2, 3], ctype=c_float)
    
  • Call kernels like a python function with defaults and keyword arguments:

    import opencl as cl
    from ctypes import c_float, c_int
    
    source = '__kernel void foo(__global float*a, int b, float c) ...'
    ...
    # Create a program and context
    
    foo = program.foo
    foo.argnames = 'a', 'b', 'c'
    foo.argtypes = cl.global_memory(c_float, ndim=2), c_int, c_float
    # Equivalent to def foo(a, b=1, c=2.0):
    foo.__defaults__ = 1, 2.0
    
    event = foo(queue, a)
    
  • Memory objects support indexing and slicing:

    mem2 = memobj[:, 1, :-1]
    

Links:

About

OpenCL Python Bindings

Resources

License

Stars

Watchers

Forks

Packages

No packages published