Code Monkey home page Code Monkey logo

gpunufft's Introduction

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

gpunufft's People

Contributors

andyschwarzl avatar chaithyagr avatar florianknoll avatar khammernik avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.