[Numpy-discussion] ANN: PyViennaCL 1.0.3 -- very easy GPGPU linear algebra

Toby St Clere Smithe pyviennacl at tsmithe.net
Sun May 18 07:56:22 EDT 2014

Hello everybody,

I am pleased to announce the 1.0.3 release of PyViennaCL! This release
fixes a number of important bugs, and improves performance on nVidia
Kepler GPUs. The ChangeLog is below, and the associated ViennaCL version
is 1.5.2.

About PyViennaCL

*PyViennaCL* aims to make fast, powerful GPGPU and heterogeneous
scientific computing really transparently easy, especially for users
already using NumPy for representing matrices.

PyViennaCL does this by harnessing the `ViennaCL
<http://viennacl.sourceforge.net/>`_ linear algebra and numerical computation
library for GPGPU and heterogeneous systems, thereby making available to Python
programmers ViennaCL’s fast *OpenCL* and *CUDA* algorithms. PyViennaCL does
this in a way that is idiomatic and compatible with the Python community’s most
popular scientific packages, *NumPy* and *SciPy*.

PyViennaCL exposes the following functionality:

* sparse (compressed, co-ordinate, ELL, and hybrid) and dense
  (row-major and column-major) matrices, vectors and scalars on your
  compute device using OpenCL;
* standard arithmetic operations and mathematical functions;
* fast matrix products for sparse and dense matrices, and inner and
  outer products for vectors;
* direct solvers for dense triangular systems;
* iterative solvers for sparse and dense systems, using the BiCGStab,
  CG, and GMRES algorithms;
* iterative algorithms for eigenvalue estimation problems.

PyViennaCL has also been designed for straightforward use in the context
of NumPy and SciPy: PyViennaCL objects can be constructed using NumPy
arrays, and arithmetic operations and comparisons in PyViennaCL are

See the following link for documentation and example code:

Get PyViennaCL

PyViennaCL is easily installed from PyPI.

If you are on Windows, there are binaries for Python versions 2.7, 3.2,
3.3, and 3.4.

If you are on Mac OS X and want to provide binaries, then please get in
touch! Otherwise, the installation process will build PyViennaCL from
source, which can take a while.

If you are on Debian or Ubuntu, binaries are available in Debian testing
and unstable, and Ubuntu utopic. Just run::

    apt-get install python-pyviennacl python3-pyviennacl

To install PyViennaCL from PyPI, make sure you've got a recent version
of the *pip* package manager, and run::

    pip install pyviennacl

Bugs and support

If you find a problem in PyViennaCL, then please report it at


2014-05-15  Toby St Clere Smithe  <pyviennacl at tsmithe.net>

	* Release 1.0.3.

	* Update external/viennacl-dev to version 1.5.2.

	  This contains two important fixes: one for a build failure on
	  Windows (PyViennaCL issue #17) relating to the re-enabling of the
	  Lanczos algorithm in 1.0.2, and one for an issue relating to
	  missing support for matrix transposition in the ViennaCL scheduler
	  (PyViennaCL issue #19, ViennaCL issue #73).

	  This release is also benefitial for performance on nVidia Kepler
	  GPUs, increasing the performance of matrix-matrix multiplications
	  to 600 GFLOPs in single precision on a GeForce GTX 680.

	* Fix bug when using integers in matrix and vector index key

	* Fix slicing of dense matrices (issue #18).

	* Enable test for matrix transposition

	* Add non-square matrix-vector product test

2014-05-06  Toby St Clere Smithe  <pyviennacl at tsmithe.net>

	* Release 1.0.2.

	* Re-enable Lanczos algorithm for eigenvalues (issue #11).

	* Enable eigenvalue computations for compressed and coordinate

	* Fix matrix-vector product for non-square matrices (issue #13).

	* Link against rt on Linux (issue #12).

Best regards,

Toby St Clere Smithe

More information about the NumPy-Discussion mailing list