pyopencl-extension 0.2.9

Last updated:

0 purchases

pyopencl-extension 0.2.9 Image
pyopencl-extension 0.2.9 Images
Add to Cart

Description:

pyopenclextension 0.2.9

This package extends PyOpenCl by providing an object-oriented kernel programming framework and debugging capabilities.

What makes pyopencl-extension special?

Build on top of PyOpenCl which can increase performance significantly.
Usage of this framework forces consistent code when programming for GPU.
Allows debugging of OpenCl-Programs through kernel emulation in Python using a visual debugger (tested with Pycharm).
OpenCl emulation allows to find out-of-bounds array indexing more easily.
Integrated profiling features give quick overview over performance bottlenecks.



The project is in an early development stage and actively maintained.
For any feature requests/feedback/etc. you can get in touch via
Github or by E-Mail ([email protected]).

Installation
Install this library with pip install pyopencl-extension.
When automatic installation of PyOpenCl fails (happens when using Windows):


Download appropriate .whl binary from PyOpenCl binaries for Windows
Make sure to have proper OpenCl driver for your graphics card installed.
Run pip install "pyopencl-X-cpX-cpX-X.whl" in terminal, where X must be replaced with corresponding version.




Usage
One very simple example is given below.
from pyopencl_extension import Kernel, Global, Scalar, Types, zeros
import numpy as np

ary = zeros((10,), Types.short)

knl = Kernel('some_operation',
{'ary': Global(ary), # notice that ary is set as default argument
'number': Scalar(Types.short)},
"""
ary[get_global_id(0)] = get_global_id(0) + number;
""",
global_size=ary.shape).compile(emulate=True)
knl(number=3)
assert np.allclose(ary.get(), np.arange(10) + 3)
By setting the argument ‘emulate=True’ the kernel will be compiled in emulation mode. This mode creates a
file ‘some_operation.py’, which can be inspected using a visual debugger:

More advanced examples can by found in the tests hosted on Github.

License:

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.