Skip to content

inducer/pycuda

Folders and files

NameName
Last commit message
Last commit date

Latest commit

f208f45 · Feb 7, 2025
Jun 7, 2024
Feb 7, 2025
Oct 11, 2024
May 27, 2023
Feb 7, 2025
Oct 11, 2024
Jul 23, 2024
Jun 23, 2020
Jun 25, 2021
Mar 8, 2021
Jul 23, 2024
Feb 16, 2024
Nov 21, 2022
Jun 24, 2022
Aug 21, 2008
Jun 24, 2022
Mar 11, 2009
May 6, 2024
Sep 28, 2020
Jul 30, 2024
Oct 11, 2020
Apr 3, 2024

Repository files navigation

PyCUDA: Pythonic Access to CUDA, with Arrays and Algorithms

Gitlab Build Status https://badge.fury.io/py/pycuda.png Zenodo DOI for latest release

PyCUDA lets you access Nvidia's CUDA parallel computation API from Python. Several wrappers of the CUDA API already exist-so what's so special about 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. PyCUDA knows about dependencies, too, so (for example) it won't detach from a context before all memory allocated in it is also freed.
  • Convenience. Abstractions like pycuda.driver.SourceModule and pycuda.gpuarray.GPUArray make CUDA programming even more convenient than with Nvidia's C-based runtime.
  • Completeness. PyCUDA puts the full power of CUDA's driver API at your disposal, if you wish. It also includes code for interoperability with OpenGL.
  • Automatic Error Checking. All CUDA errors are automatically translated into Python exceptions.
  • Speed. PyCUDA's base layer is written in C++, so all the niceties above are virtually free.
  • Helpful Documentation.

Relatedly, like-minded computing goodness for OpenCL is provided by PyCUDA's sister project PyOpenCL.