PyOpenCL lets you access the OpenCL parallel computation API from Python. Here’s what sets PyOpenCL apart:

  • Object cleanup tied to lifetime of objects. This idiom, often called RAII in C++, makes it much easier to write correct, leak- and crash-free code.
  • Completeness. PyOpenCL puts the full power of OpenCL’s API at your disposal, if you wish.
  • Convenience. While PyOpenCL’s primary focus is to make all of OpenCL accessible, it tries hard to make your life less complicated as it does so—without taking any shortcuts.
  • Automatic Error Checking. All OpenCL errors are automatically translated into Python exceptions.
  • Speed. PyOpenCL’s base layer is written in C++, so all the niceties above are virtually free.
  • Helpful, complete documentation and a wiki.
  • Liberal licensing (MIT).


See the PyOpenCL Documentation.


Having trouble with PyOpenCL? First, you may want to check the PyOpenCL Wiki. If that doesn’t help, maybe the nice people on the PyOpenCL mailing list can.


See the installation instructions.

Or get it directly from my source code repository by typing

git clone --recursive

You may also browse the source on Github.

Prerequisites: All you need is an OpenCL implementation. And Python obviously. (Disclaimer: Life is less ideal on Windows. See the installation instructions for details.)