gnumpy
Note that Gnumpy is probably no longer relevant because it was last updated in 2013 and more advanced tools are available now.
(There are translations of Gnumpy into various other languages; if you're looking for a translation I suggest a web search)
Gnumpy is free software, but if you use it in scientific work that gets published, you should cite this tech report in your publication.
Download: gnumpy.py (also be sure to have the most recent version of Cudamat)
Documentation: here.
Do you want to have both the compute power of GPU's and the programming convenience of Python numpy? Gnumpy + Cudamat will bring you that.
Gnumpy is a simple Python module that interfaces in a way almost identical to numpy, but does its computations on your computer's
GPU. See this example, training an RBM using Gnumpy.
Gnumpy runs on top of, and therefore requires, the excellent cudamat library, written by
Vlad Mnih.
Gnumpy can run in simulation mode: everything happens on the CPU, but the interface is the same. This can be helpful if you like to write your
programs on your GPU-less laptop before running them on a GPU-equipped machine. It also allows you to easily test what performance gain you get from
using a GPU. The simulation mode requires npmat, written by
Ilya Sutskever.
Gnumpy is licensed with a BSD-style license (i.e. it's completely free to use for everyone, also as a component in commercial software), with one
added note: if you use it for scientific work that gets published, you must include reference to the Gnumpy tech report in your publication. For
details of the license, see the top of gnumpy.py.
See also this presentation by Xavier Arrufat, introducing numpy at the Python for Data Analysis meetup in Barcelona, 2013.
Recent changes:
- 2013-02-22: Bugfixes in max() and log_1_plus_exp() that only affected behavior when no GPU was used.
- 2012-07-25: Bugfix. gnumpy.dot(x, x), when x is a 1-dimensional array, didn't work but now works.
- 2011-06-06: gnumpy.dot() now takes arrays of ndim>2.
- 2011-04-19: Bugfix: several bugs involving zero size arrays were fixed.
- 2011-04-15: Bugfix. "x=gnumpy.zeros(10); x[array([])] = garray([])" didn't work as it should. Now it does.
- 2011-03-24: Added gnumpy.outer().
- 2011-03-15: The ability to check for infs and nans automatically has been added to Gnumpy.
- 2010-07-19: Cudamat now enables fast indexing with arrays of indices. Download the newest Cudamat to have fast indexing with arrays in Gnumpy.
- 2010-07-08: Renamed the project to Gnumpy. It used to be called Gpunnumpy.
Home page