Welcome to PyCULA’s documentation!

PyCULA provides an efficient and simple CUDA GPU environment for python. PyCULA accomplishes this feat by combining the power of driver based PyCUDA with nVidia’s runtime libraries and, most importantly, CULA GPU-LAPACK functionality in a single environment. We aim to hide complications without limiting the enduser.

PyCULA provides:
  • Complete python ctypes bindings for CULAtools Premium

  • Complete suite of sophisticated numpy based wrappers for CULA host_interface routines

  • Complete suite of sophisticated PyCUDA.gpuarray based wrappers for CULA device_interface routines

  • Functions to seamlessly combine the above in a single enviornment with:
    • PyCUDA and PyCUDA custom kernels

    • nVidia Runtime Libraries
      • cuBLAS (scikits.cuda)
      • cuFFT (scikits.cuda)
      • cuSPARSE (coming soon!)
    • and without:
      • Headaches
      • Memory Leaks
      • Mountains of C code
Other reasons to use Python and PyCULA for your GPGPU and scientific computing include:
  • Develop and Debug Interactively in the Command-Line-Interpreter
  • Open Source Code
  • Integrate with scientific libraries including database and web libraries
  • Prototype algorithms efficiently with SciPy
  • Integrated Help
  • GPU device arrays with Numpy like interface (via PyCUDA)

To see what PyCULA looks like, or to see more details, check out the following tutorials:

With Thanks To

Dr. Louis Theran for taking me under his wing.
Dr. Rivin and the NSF Zeolite Group for wisdom, funding, and good times.
nVidia and the CUDA developers (special thanks to Maxim!)
PyCUDA and the PyCUDA mailing list for the foundation of our device_interface
scikits.cuda for the CUDA runtime lib wrappers

Indices and tables

Table Of Contents

Next topic


This Page