/gpuNUFFT

gpuNUFFT - An Open-Source GPU Library for 3D Gridding with Direct Matlab and Python Interface

Primary LanguageC++OtherNOASSERTION

gpuNUFFT - GPU Regridding of arbitrary 3-D/2-D MRI data

  • Andreas Schwarzl - andy.schwarzl[at]gmail.com
  • Florian Knoll - florian.knoll[at]nyumc.org

INFO:

GPU 3D/2D regridding library with MATLAB(R) Mexfile output. Go to the subdirectory CUDA to compile the mexfiles.

REQUIREMENTS:

CMAKE Options:

  • GEN_MEX_FILES : DEFAULT ON, enables generation of Matlab MEX files
  • WITH_DEBUG : DEFAULT OFF, enables Command-Line DEBUG output
  • WITH_MATLAB_DEBUG : DEFAULT OFF, enables MATLAB Console DEBUG output
  • GEN_TESTS : DEFAULT OFF, generate Unit tests
  • FERMI_GPU : DEFAULT OFF, set ON to support cards with compute capability 2.0

Prior to compilation, the path where MATLAB is installed has to be defined in the top level CMakeLists.txt file, e.g.:

SET(MATLAB_ROOT_DIR "/home/florian/Programs/MATLAB/R2012b" CACHE STRING "MATLAB Installation Directory")

Alternatively, it can be passed as command line argument when calling cmake, e.g.:

cmake .. -DMATLAB_ROOT_DIR=/path/to/matlab

LINUX, using gcc:

build project via cmake, starting from project root directory:

> cd CUDA
> mkdir -p build
> cd build
> cmake ..
> make

Note: This version of gpuNUFFT was tested with CUDA 5.0. NVIDIAs nvcc compiler did not support gcc 4.7 or higher at this time. It is therefore suggested to compile gpuNUFFT with gcc 4.6. One comfortable way to toggle between gcc/g++ versions is to use the update-alternatives tool.

Screencast: Alternatively follow the installation and usage instructions for Linux:

Linux Installation


WINDOWS, with Visual Studio:

Setup a working version of Visual Studio Community 2013 or use the Visual Studio professional edition if available. Generate the project solution using the CMake-GUI or from command line by starting from the project root directory:

> cd CUDA
> mkdir build 
> cd build
> cmake .. -G "Visual Studio 12 2013 Win64"
> Build created Solution gpuNUFFT.sln using Visual Studio

For the Win64 platform check that all necessary Visual Studio Add-ons are installed correctly and a Win64 dummy project can be created using VS.

Screencast: Alternatively follow the installation and usage instructions for Windows:

Windows Installation


Run:

The compiled CUDA-mexfiles will appear in the bin directory and are also copied automatically into the gpuNUFFT/@gpuNUFFT/private directory . Include the gpuNUFFT directory into the matlab search path, in order to run the provided demo example.


Doc:

To generate the source code documentation run

> make doc

in the build directory.

Note: Requires doxygen to be installed.

Supporting material

Written documentation and presentations can be found here.

Python Bindings

Now we have support for python bindings. Bindings written by Chaithya G R and Carole Lazarus.

For using the python bindings, install from git repository:

pip install git+https://github.com/andyschwarzl/gpuNUFFT

To see the usage, please check gpuNUFFT/python or use the NonCartesianFFT class from pysap-mri