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?
\begin{itemize}
\begin{itemize}
\item PyCUDA can access Nvidia's CUDA parallel computation API from Python
\item Object cleanup tied to lifetime of objects (RAII, Resource Acquisition Is Initialization).
\item Object cleanup tied to lifetime of objects (RAII, Resource Acquisition Is Initialization).
\begin{itemize}
\begin{itemize}
\item Makes it much easier to write correct, leak- and crash-free code
\item Makes it much easier to write correct, leak- and crash-free code
\item PyCUDA knows about dependencies, too, so (for example) it won't detach from a context before all memory allocated in it is also freed
\item PyCUDA knows about dependencies(for e.g.. it won't detach from a context before all memory allocated in it is also freed)