Skip to content

A sequentiel and parallel implementation of the Dividing Cubes algorithm using C++ and CUDA.

Notifications You must be signed in to change notification settings

AnixPasBesoin/DividingCubes

 
 

Repository files navigation


Dividing Cubes with CUDA

A sequentiel and parallel implementation of the Dividing Cubes algorithm using C++ and CUDA.

Abstract

3D image reconstruction has the potential to bring major advancements in science and medicine by allowing the visualization of inner living organs in their real states and forms. Using modern modalities such as Computed Tomography (CT) and Magnetic Resonance Imaging (MRI), serial 2D images are produced and used in 3D reconstruction. However, the reconstruction process is very slow and very expensive in terms of compute resources due to the massive quantity of data to process resulted from the acquisition task. Meanwhile, Graphic Processing Unit (GPU), with its tremendous capability of parallel computing, becomes more and more popular in High Performance Computing. In addition, CUDA, a parallel computing platform and programming model that was invented by NVIDIA, makes GPU programming much easier and faster. In our research, we focused on the use of this power of parallel computing in order to accelerate the reconstruction process while trying to have the most accurate representation of the reconstructed object.

Keyword

3D Medical Imaging, Image Reconstruction, Dividing Cubes, GPU, CUDA.

Outputs



Modules

Data Reader Module

Reads raw dataset files. A raw file contains the collection of slices obtained from the aquisition step.


Squential (Non-Parallel) Module

Runs DC sequentially using one CPU core.


CUDA (Parallel) Module

Runs DC in parallel on the GPU.


Visualization Module

Allows you to visualize the 3D reconstructed results.


Notes

  • Running this code requires a CUDA capable GPU (compute capability 2.2)
  • The datasets (in : Datasets) used in this project have all been obtained from here

Authors

About

A sequentiel and parallel implementation of the Dividing Cubes algorithm using C++ and CUDA.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 75.4%
  • Cuda 24.6%