Giter Site home page Giter Site logo

davidssmith / tron Goto Github PK

View Code? Open in Web Editor NEW
30.0 4.0 10.0 3.25 MB

Trajectory Optimized Nufft

License: MIT License

C 3.69% C++ 1.48% Cuda 25.59% M 0.56% MATLAB 67.19% Makefile 0.81% Shell 0.68%
mri mri-reconstruction nfft fft signal-processing sampling gpu-acceleration parallel-computing parallel-algorithm radial-projection

tron's Introduction

TRON: TRajectory Optimized Nufft

TRON recon

Introduction

This is the repository for the paper, "Trajectory Optimized Nufft: Faster Non-Cartesian MRI Reconstruction through Prior Knowledge and Parallel Architectures".

Fast non-Cartesian MRI reconstruction ("gridding") requires interpolation of non-uniformly sampled Fourier data onto a Cartesian grid. This interpolation is slow due to complicated, non-local data access patterns that are hard to optimize for modern, parallel CPU architectures.

TRON is a gridding code customized for a standard radial (both linear and golden angle) trajectory and Nvidia's CUDA architecture to eliminate the bottlenecks that gridding algorithms encounter when written for arbitrary trajectories and hardware.

TRON is 30x faster than gpuNUFFT (a fast GPU code) and 75x faster than the image reconstruction toolbox (IRT) of Fessler (a ubiquitous CPU-based Matlab code). TRON eliminates the need to presort data or perform a separate sample density compensation, while comprising 50% less code than the minimal subset of IRT tested.

Reproducing the Paper Results

To get generate the paper figures and data, follow these steps:

Requirements: Newish version of MATLAB and CUDA.

  1. Make sure you have a working CUDA installation with cuFFT and the compiler nvcc in your path.

  2. Clone and compile TRON into your folder of choice.

  3. Pull the TRON example data from the LFS server using git-lfs pull in the folder where you cloned TRON.

  4. Clone and compile gpuNUFFT into your folder of choice.

  5. Clone and compile BART into your folder of choice.

  6. Correct the path to gpuNUFFT and BART in the RUNME2 script.

  7. Run src/RUNME1_tron_degrid_phantom.sh on the command line.

  8. Change to the src/ subdirectory and run src/RUNME2_others_degrid_phantom.m in MATLAB. This should not take long to finish.

  9. Go back to the command line and run src/RUNME3_tron_grid_all.sh. This will also not take long.

  10. Go back to MATLAB and run ./RUNME4_others_grid_all.m. This is slow. An hour is normal. Put your feet up and read our paper while you wait.

  11. If all steps run without errors, you're done. Congratulations! The paper figures should be in src/figs and the reconstructions will be in src/output.

tron's People

Contributors

davidssmith avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

tron's Issues

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.