Yiming Peng <yp...@u.northwestern.edu> writes:

> Hi Andreas​,
>
> I am a former student of your CS 450 and now I am a incoming PhD student in
> operations research at Northwestern.
>
> Since I am interested in applying parallel computing, preferably using
> Python, to my future research, I have been looking for software which
> combines Python with CUDA. Then I found PyCUDA on your website. And I found
> NumbaPro. It seems that these two are the most popular choices for people
> with needs like mine.
>
> So my question is: which one do I begin to learn and use first? Could you
> give some comments on pros and cons about the two?

Cc'ing the PyCUDA list for archival/searchability.

- PyCUDA lets you/forces you to write CUDA C for your kernels.

- Numba lets you write (a narrow subset of) Python for your kernels,
  including arrays I believe.

- The code you write for both will be roughly equivalent modulo
  spelling, since you'll have to 

- PyCUDA exposes (nearly) the entire CUDA runtime, including streams,
  profiling, textures, ... Numba is more restricted.

- PyCUDA comes with an on-device array type. I'm not sure if Numba's
  arrays stay on-device after the computation finishes--i.e. you may
  have some implicit copying.

- PyCUDA comes with some pre-made parallel algorithms such as scans
  and reductions.

- You may also want to take a look at

  - https://documen.tician.de/pyopencl/
  - https://documen.tician.de/loopy/

Hope that helps,
Andreas

_______________________________________________
PyCUDA mailing list
PyCUDA@tiker.net
https://lists.tiker.net/listinfo/pycuda

Reply via email to