CUDA extension for the SPORCO project
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
docs
examples
sporco_cuda
.gitignore
CHANGES.rst
CONTRIBUTORS.rst
LICENSE
MANIFEST.in
README.rst
pytest.ini
requirements.txt
setup.cfg
setup.py

README.rst

SPORCO-CUDA

Documentation Status PyPi Release Supported Python Versions Package License

SPORCO-CUDA provides GPU-accelerated versions of selected convolutional sparse coding algorithms in the SPORCO package. It is a component of SPORCO, and is subject to the same license, but is made available as an optional extension to avoid complicating the prerequisites and build/install procedure for the main part of SPORCO. If you use this software for published work, please cite it.

Documentation

Documentation is available online at Read the Docs, or can be built from the root directory of the source distribution by the command

python setup.py build_sphinx

in which case the HTML documentation can be found in the build/sphinx/html directory (the top-level document is index.html).

Usage

Scripts illustrating usage of the package can be found in the examples directory of the source distribution. These examples can be run from the root directory of the package by, for example

python examples/cmp_cbpdn.py

To run these scripts prior to installing the package, it is necessary to build it in place, which involves the following steps:

  • Install the requirements described below

  • If nvcc is not already in the executable search path, add it; e.g

    export PATH=$PATH:/usr/local/cuda-9.2/bin
    

    where /usr/local/cuda-9.2/bin is the path for CUDA compiler nvcc.

  • Build the sporco-cuda package in place:

    python setup.py build_ext --inplace
    
  • Set the PYTHONPATH environment variable to include the root directory of the package. For example, in a bash shell

    export PYTHONPATH=$PYTHONPATH:`pwd`
    

    from the root directory of the package.

  • If the sporco package is not installed, create a symlink from the SPORCO-CUDA package root directory to the sporco directory in the SPORCO package.

Requirements

The primary requirements are Python, sporco and its requirements, Cython, and the CUDA Toolkit.

Installation

See the installation instructions in the online documentation.

License

SPORCO-CUDA is part of the SPORCO package and is distributed with the same 3-Clause BSD license; see the LICENSE file for details.