Hi Richard,
Just to clarify one point: when you mentioned CUDA architecture 1.3 I think you did mean Cuda Computing Capability 1.3
Attached in this e-mail the CUDA Computing Capability for each NVidia GeForce series card so people can figure out weather their board is below the 1.3 threshold.
Also you can use the the freeware GPU Caps Viewer to be sure: http://www.ozone3d.net/gpu_caps_viewer/
* Multiprocessors* *CUDA cores* *Compute Capability* GeForce GTX 480 15 4802.0 GeForce GTX 470 14 448 2.0 GeForce GTX 465 11 352 2.0 GeForce GTX 295 2×30 2×240 1.3 GeForce GTX 280/GTX 285 30 240 1.3 GeForce GTX 260 24 192 1.3 GeForce 210 2 16 1.2 GeForce GT 240 12 96 1.2 GeForce GT 220 6 48 1.2 GeForce GT 130 12 96 1.1 GeForce GT 120 4 32 1.1 GeForce GTS 250 16 128 1.1 GeForce 9800 GX2 2×16 2×128 1.1 GeForce 9800 GTX 16 128 1.1 GeForce 9800 GT 14 112 1.1 GeForce 9600 GSO 12 96 1.1 GeForce 9600 GT 8 64 1.1 GeForce 8800 GTX/Ultra 16 128 1.0 GeForce 8800 GT 14 1121.1 GeForce 8800 GTS 12 96 1.0 GeForce 8600 GT/GTS 4 32 1.1 GeForce 8400 GS/GT 2 16 1.1
Cheers,
PPJ --------------------------------------------------------------------- Pedro Paulo de Magalhães Oliveira Junior Diretor de Operações Netfilter & SpeedComm Telecom -- www.netfilter.com.br -- For mobile: http://www.netfilter.com.br/mobile
On Tue, Aug 24, 2010 at 10:37, Richard G. Edgar rge21@nmr.mgh.harvard.eduwrote:
Greetings,
I've been asked to provide some extra information about GPU support in Freesurfer (being the one guilty of mri_em_register_cuda...).
Firstly, there are no immediate plans for OpenCL support. It would be very nice to have - with ATI, NVIDIA _and_ x86 multicore backends. However, it's far less mature than CUDA. The good news is that the really 'hard' bit is restructuring the algorithms to fit well on a GPU. The syntax of CUDA and OpenCL is very similar (strange that....), but OpenCL is more verbose.
As for cards..... for what is in the current release, any GeForce GTX-200 series or Tesla 10 series (i.e. C1060 and S1070) card should work (I don't know the Quadro model numbers - CUDA architecture 1.3 is the key feature). I think that everything should actually work on somewhat older cards, but the compile flags will have to be tweaked. So long as that threshold is reached, the only issue is the amount of RAM needed. Currently, I expect that any card with at least 1 GiB of RAM will have plenty, and the threshold for mri_em_register_cuda will be much lower than that.
Going forward, I would strongly recommend purchasing 'Fermi' class cards. These are the GTX 400 series, and Tesla 20 series. The new architecture lifts some hardware limits on GPU kernels which are crippling for portions of mri_ca_register. With a more accelerated mri_ca_register, RAM limits may also come into play, until I can come up with a suitably cunning GPU implementation of the Gaussian Classifier Array (right now, I'm going to burn around 2 GiB on a single GCA, to make implementation simple). However, I have bigger fish to fry first.
One final thing: Nick and I found last week that the accelerated mri_em_register_cuda doesn't seem to work prior to skull stripping. I'm going to work on this this week, but if you want to continue using the GPU accelerated binary, you'll have to turn off the FAST_TRANSLATION and FAST_TRANSFORM flags in mri_em_register.c, and recompile. This will increase the runtime to around 4 minutes on ernie, but will give results identical to the CPU code.
I hope this is helpful,
Richard
Freesurfer mailing list Freesurfer@nmr.mgh.harvard.edu https://mail.nmr.mgh.harvard.edu/mailman/listinfo/freesurfer
The information in this e-mail is intended only for the person to whom it is addressed. If you believe this e-mail was sent to you in error and the e-mail contains patient information, please contact the Partners Compliance HelpLine at http://www.partners.org/complianceline . If the e-mail was sent to you in error but does not contain patient information, please contact the sender and properly dispose of the e-mail.