Tckgen gpu acceleration


#1

Dear MRtrix3 developers,

Do you know if there are any plans to modify tckgen for GPU acceleration?

Best,
J


#2

Hi @Jiook_Cha,

I’m not aware of any such plans at the moment… it would require quite some dedicated development I assume. If you’d like to encourage it, you can always suggest it as a wish list feature on our GitHub issue tracker!

Cheers,
Thijs


#3

If I could just add a bit to that:

I don’t foresee us investing in GPU acceleration for tckgen any time soon. It’s a relatively poor candidate for implementation on the GPU, given how complex it is, with its many options and algorithms, the number of decision points, and how unpredictable memory accesses are due to its stochastic nature. There was an implementation of the MRtrix 0.2 streamtrack command a few years ago (here’s the PDF if you have access to the ISMRM 2012 proceedings), which achieved a ~3-fold performance increase over the multi-threaded CPU implementation (if running with 8 threads) - this is too modest an improvement for us to dedicate resources to. I’m sure this could be made faster, but not without very significant efforts, and furthermore tckgen is vastly more complex than streamtrack ever was…

There are however other commands that would be good candidates for GPU acceleration, for example mrregister - but again, this would require a lot of effort, either for us to familiarise ourselves with GPU technology, or to team up with others who already have this expertise. And then that would have massive implications in terms of maintenance of the code going into the future - we need to make sure the team as a whole always has enough expertise in GPU coding to support it. I’m not sure we’re in a position to even consider this at the moment…