Skip to content

inducer/pyopencl

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

00d2987 · Sep 8, 2022
May 17, 2022
Dec 20, 2020
Sep 8, 2022
Sep 8, 2022
Feb 18, 2021
Sep 8, 2022
May 17, 2022
Sep 8, 2022
Aug 23, 2022
Apr 3, 2020
Jun 23, 2020
May 17, 2022
May 1, 2022
Aug 12, 2018
Mar 18, 2019
Feb 14, 2022
Jun 27, 2022
Jul 2, 2016
Mar 11, 2021
Aug 17, 2009
May 20, 2022
Mar 11, 2009
Oct 3, 2014
May 17, 2022
Sep 28, 2020
May 17, 2022
Sep 9, 2020
May 30, 2021
Jun 7, 2022

Repository files navigation

PyOpenCL: Pythonic Access to OpenCL, with Arrays and Algorithms

Gitlab Build Status Github Build Status Python Package Index Release Page Zenodo DOI for latest release

PyOpenCL lets you access GPUs and other massively parallel compute devices from Python. It tries to offer computing goodness in the spirit of its sister project PyCUDA:

  • 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. Every obscure get_info() query and all CL calls are accessible.
  • Automatic Error Checking. All CL 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 and complete Documentation as well as a Wiki.
  • Liberal license. PyOpenCL is open-source under the MIT license and free for commercial, academic, and private use.
  • Broad support. PyOpenCL was tested and works with Apple's, AMD's, and Nvidia's CL implementations.

Simple 4-step install instructions using Conda on Linux and macOS (that also install a working OpenCL implementation!) can be found in the documentation.

What you'll need if you do not want to use the convenient instructions above and instead build from source:

  • gcc/g++ new enough to be compatible with pybind11 (see their FAQ)
  • numpy, and
  • an OpenCL implementation. (See this howto for how to get one.)

Links