Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add GPU support for PFT tracking #901

Open
CHrlS98 opened this issue Feb 15, 2024 · 4 comments
Open

Add GPU support for PFT tracking #901

CHrlS98 opened this issue Feb 15, 2024 · 4 comments

Comments

@CHrlS98
Copy link
Contributor

CHrlS98 commented Feb 15, 2024

Yesterday I closed without merging PR #720, where I added continuous maps criterion for GPU tracking. The modules and script have changed so much since I have made this PR that it will be easier to just start from scratch again.

However, I am wondering where CMC GPU should go. Now, scil_tracking_local supports both CPU and GPU so I guess the most natural place to put CMC would be in scil_tracking_pft with a --use_gpu flag. However, it is a bit weird that the option --use_gpu would actually disable particle filtering (as it is not implemented yet) for a script which has PFT in its name.

Here is the idea François and I came up with:

  • Maybe we could add an option to disable particle filtering in the pft script, to only use CMC without backtracking. This way it would be less strange that --use_gpu disables particle filtering.
  • And at some point, we could port PFT to the GPU. This is however a lot of work and I might want to have some help with this.

Maybe some help from le papa de PFT @gabknight ?

@frheault Disabling PF prior to adding the GPU stuff could be a good task for a new student 🤔

@arnaudbore @EmmaRenauld Any comments/ideas?

@gabknight
Copy link
Contributor

gabknight commented Feb 15, 2024

PFT Papa here, CMC (and ACT) can both be used without PFT, but both require the map_include map_exclude images, as for PFT. I like @frheault idea.

  • adding flags --use_gpu and --no_pft to scil_tracking_pft.py.
  • If --use_gpu is set without --no_pft a warning should be raised to inform the use that pft gpu tracking is not implemented (yet).
  • If --no_pft is set (and not --use_gpu), normal probabilistic dipy tracking should be used with CMC/ACT masking strategy.
  • Does ACT will be supported by GPU tracking? It should be straight forward to do if CMC is (threshold instead of probabilities).

@EmmaRenauld
Copy link
Contributor

Can we have a more representative name?
Scil_tracking_pft_act??

@gabknight
Copy link
Contributor

gabknight commented Feb 15, 2024

A fair name would be scil_tracking_act.py for the general term anatomical-constrained tractography. But this is confusing as we don't have a full implementation of mrtrix ACT method. Alternatively, it could be scil_tracking_anat_const.py but for now, I think this would be more confusing than keeping it scil_tracking_pft.py. Moreover, CMC, ACT and PFT are all discussed and described in the PFT paper.

A better solution would be to enable CMC and ACT in scilpy_tracking.py, than also enable PFT with a flag --use_pft. i.e. merging our 2 tracking scripts. This could be done in another PR.

@CHrlS98
Copy link
Contributor Author

CHrlS98 commented Feb 15, 2024

@gabknight

  • Does ACT will be supported by GPU tracking? It should be straight forward to do if CMC is (threshold instead of probabilities).

It could be supported, we just need to take the time to implement it.

I guess an easy first step could be to add the option to disable PFT for the PFT tracking (which is counterintuitive, but I agree changing it would also be confusing).

Then in a further PR we could add CMC gpu and build on top of it for future features such as ACT and PFT.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants