MRtrix3 / mrtrix3

MRtrix3 provides a set of tools to perform various advanced diffusion MRI analyses, including constrained spherical deconvolution (CSD), probabilistic tractography, track-density imaging, and apparent fibre density
http://www.mrtrix.org
Mozilla Public License 2.0
281 stars 176 forks source link

Visualizing tractography - Ubuntu system crash #436

Open roeysc opened 8 years ago

roeysc commented 8 years ago

Hi everyone,

I'm using Ubuntu 14.04 on a 64bit machine. I have a big tck file generated using MRtrix2 (its 2.1 GB), which I can display using the old MRview, but when I try to display it on the new version of MRview, the whole system gets stuck and I must reboot the machine (I'm aware of the orthonormality of the SH basis issues, but just moved to MRtrix3, so I was curious to see the changes made).

Do you think the tck file is just way too big for it to work properly? I am yet to test this with smaller files and with files generated using MRtrix3.

Many thanks, Roey

jdtournier commented 8 years ago

This is going to be a bug in the graphics driver. 2Gb is almost certainly going to be larger than can fit in your graphics card's onboard RAM, so at this point it's all down to how well the driver manages all this memory.

The reason it works in the previous version of MRtrix is that the old version relies on OpenGL 1.4 only, and consequently has to stream the track data through from the CPU for every render pass. This means the GPU RAM isn't being used heavily, it all remains on the system RAM. The new version however relies on OpenGL 3.3, which encourages data to reside on the GPU. This is fine when everything fits within the onboard RAM, but anything beyond that requires careful handling by the OpenGL driver...

So you can try using different drivers for your graphics card, see whether that makes a difference. I've been able to do this fine on my nvidia system using their proprietary drivers...

Lestropie commented 8 years ago

For the sake of visualising the tractogram, there's a couple of tricks you can use to decrease the required GPU memory. The obvious one is to display only a subset of tracks, using tckedit -number. Perhaps a better option, since the track files from MRtrix 0.2 are very large due to the relatively small step size, is to use tckedit -downsample to represent each streamline using less points, and therefore use less memory.

roeysc commented 8 years ago

Thank you both for your helpful replies!

jdtournier commented 8 years ago

@roeysc, I assume we can close this? Did you manage to get things working?