PyOpenCL

PyOpenCL

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).

Documentation

See the PyOpenCL Documentation.

Support

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.

Download

Download PyOpenCL here.

Or get it directly from my source code repository by typing

git clone --recursive http://git.tiker.net/trees/pyopencl.git

You may also browse the source.

Prerequisites: All you need is an OpenCL implementation. And Python obviously.

GPUs and Python at PyData NYC 2012

This October I had the honor of presenting my work on using Python with GPUs at PyData NYC 2012. Here's a video of my talk:

There was also a panel discussion on Python+Parallel that I was a part of--here's the video of that:

Also be sure to check out all the videos of the other great talks to see what you've missed.

If this sounds interesting to you, also be sure to check out their next conference, PyData Silicon Valley 2013. And please (continue to!) support NumFocus and check out what Continuum are doing for big data in Python. They deserve a lot of credit for bringing the Python community together at events like PyData.

Pydgeon

Pydgeon

Pydgeon is a simple GPU-based discontinuous Galerkin code loosely based on the MATLAB codes from the DG textbook by Jan Hesthaven and Tim Warburton.

For more information see the wiki page.

PyCUDA and PyOpenCL at Nvidia GTC 2010

Like last year, I had the honor of being invited to present PyCUDA and PyOpenCL along with a few examples of their use to a great crowd at Nvidia's inaugural GPU Technology Conference 2010.

gtc-slide-1.png
gtc-slide-1.png

Please click the following link to view the slides: pycuda-pyopencl-gtc-2010.pdf.

Update: Nvidia has posted a recording of the session. There's also a full list of sessions, with many talks that are worth being watched. In particular, I'd like to recommend the ones by Bryan Catanzaro on Copperhead, which is built on top of PyCUDA, by Tim Warburton on all things GPU-based discontinuous Galerkin. Also check out the poster on Atomic Hedgehog by Cyrus Omar.

PyCUDA talk at Nvidia's GPU Technology Conference

This past week, I had the honor of presenting a talk on PyCUDA at Nvidia's inaugural GPU Technology Conference.

pycuda-nvidia.png
pycuda-nvidia.png

Please click the following link to view the slides: pycuda-nvidia.pdf.

Update: Nvidia has posted a recording of the session that you may watch or download.

Update 2: Giancarlo Colasante has transcoded the above video into just 16 MB. You may download the resulting video here.