[SciPy-User] ANN: gpustats 0.0.1
Wes McKinney
wesmckinn at gmail.com
Thu Feb 24 21:36:26 EST 2011
I'm happy to announce an early version of a new library for doing
calculations related to statistical problems on the GPU. Currently it
implements the univariate and multivariate normal probability density
functions as a proof of concept, but will over time expand to include
many other probability distributions and relevant functions.
Why do this at all? Well, the speedups, even on a modest laptop GPU
(e.g. my GeForce 320M) can be quite significant:
With 1e6 data points:
In [6]: timeit gpustats.normpdf(data, mean, std, logged=False)
100 loops, best of 3: 13 ms per loop
In [7]: timeit scipy.stats.norm.pdf(data, loc=mean, scale=std)
1 loops, best of 3: 191 ms per loop
In higher dimensional problems where GPU shared memory can be highly
utilized, speedups can be even larger, depending of course on your
GPU. An immediate application of interest is in accelerating
likelihood-based Bayesian inference (MCMC).
GitHub repo: https://github.com/dukestats/gpustats
Also on PyPI: http://pypi.python.org/pypi/gpustats
What is it
----------
gpustats is a PyCUDA-based library implementing functionality similar to that
present in scipy.stats.distributions. It implements a simple framework for
specifying new CUDA kernels and extending existing ones. Here is a (partial)
list of target functionality:
* Probability density functions (pdfs). These are intended to speed up
likelihood calculations in particular in Bayesian inference applications, such
as in PyMC
* Random variable generation using CURAND
Notes
-----
Requires working PyCUDA installation
Best,
Wes
More information about the SciPy-User
mailing list