daducci / COMMIT

Linear framework to combine tractography and tissue micro-structure estimation with diffusion MRI
Other
43 stars 33 forks source link

GPU Version #83

Open ErickHernandezGutierrez opened 3 years ago

ErickHernandezGutierrez commented 3 years ago

GPU version ready to merge with the latest version of COMMIT.

ErickHernandezGutierrez commented 2 years ago

I merged my branch with the actual master. I disabled the use of textures to try first without textures.

ErickHernandezGutierrez commented 2 years ago

The CUDA implementation works only for CylinderZeppelinBall model. I did not try with VolumeFraction. I tried with StickZeppelinBall but there was not improvement compared with CPU. In the meanwhile, I could add a flag to check the selected model and show a an error message when a model different than CylinderZeppelinBall is selected with CUDA. Then, we can add an efficient implementation for VolumeFraction.

daducci commented 2 years ago

How difficult would it be to enable CUDA parallelization also for other models? Als, and most importantly, how fast do you think it will be according to the current implementation?

ErickHernandezGutierrez commented 2 years ago

It would not be so difficult to add support for VolumeFraction as it is simpler than CylinderZeppelinBall model. However, these weeks I'm a very busy with school and work until the first week of December. In the meanwhile, I could add a flag to check the selected model and make sure that CUDA is enabled only when CylinderZeppelinBall model is selected. Therefore, we would be able to submit something to ISMRM (without VolumeFraction experiments). I would prefer to wait until December to add the support for VolumeFraction properly. I think, for large datasets, we would be able to have similar speedups compared with the CylinderZeppelinBall model. But, for small datasets, the parallel CPU version is much faster because the transference of data between CPU and GPU is a bottleneck.