Hi Richard,

The first part was smooth. I got it done pretty quickly (installing CUDA and setting it up!). However for the freesurfer portion I have two questions,

1. Bruce mentioned in another email thread that v6 beta should be out in a week or so after testing is completed. Should I wait for that version, assuming I get the source code for v6 when I download it as per the instructions on the freesurfer page.

2. Also, would I have to compile and build all modules (mri_em_registe, mri_ca_register etc or can I limit to just these two when I build it again. 

I'm not very well versed with the second part and so if you could explain a little more it will be good.

Thanks,
Tyson

On Mon, Mar 7, 2016 at 6:38 PM, R Edgar <freesurfer.rge@gmail.com> wrote:
On 7 March 2016 at 11:25, Francis Tyson Thomas
<francistthomas@email.arizona.edu> wrote:

> That information was a lot helpful. At this point I'm currently trying to
> reduce the recon-all processing time as much as possible and for this reason
> I was looking to get the -use-gpu flag working. I'm currently running a
> freesurfer v6 beta version on Ubuntu 14.04.4. With regard to the graphic
> card it is a dual K2200 configuration (I guess they are running in sli
> configuration - although I'm not completely sure).
>
> When you mentioned you compiled everything, I believe you were referring to
> compiling CUDA 7.5 for Ubuntu 14.04. Because after seeing the link -
> https://developer.nvidia.com/cuda-gpus
> -  we settled for CUDA 5 since it was the compatible version mentioned for
> K2200. Does that mean CUDA 7.5 is backwards compatible with a slight
> tinkering and can be used with freesurfer 6.0 ?

I think that you might have misunderstood the NVIDIA page.

It lists the K2200 as a Compute Capability 5 GPU (just like my K1200).
The Compute Capability refers to the hardware:
http://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#compute-capabilities
Compute capability 5 is also called "Maxwell," while the work I did on
Freesurfer was around the time of Compute Capability 2, known as
Fermi. In CPU terms, GPU compute capabilities are a bit like Ivy
Bridge vs Sandy Bridge (although I think that GPU features vary more
than the CPU ones).

In order to program the GPU, you need the NVIDIA CUDA Toolkit, which
contains the required compiler (nvcc). The current version of this is
7.5. I installed it by following the instructions on NVIDIA's website:
http://docs.nvidia.com/cuda/index.html
This was quite straightforward (certainly moreso than it was five or
six years ago, when you could never be sure that your X11.conf would
survive).

Either with the toolkit, or as a separate install, you can get a lot
of examples from NVIDIA. I'd suggest grabbing those, and making sure
that you can compile them. The "DeviceQuery" one will probe your PCIe
bus, and report what GPUs it finds.

> I however tried to setup CUDA 5 following the instructions in the link -
> http://www.unixmen.com/how-to-install-cuda-5-0-toolkit-in-ubuntu/ - however,
> I'm not able to get it running. I keep getting the following error "Unable
> to acquire CUDA device". Does this sound familiar ?

I suspect (although I wasn't following things at the time) that the
Toolkit v5 was before Maxwell cards were released. If so, then it
wouldn't know what to do with the GPUs.

For the record, since I was writing the CUDA bits so long ago (for the
volume side of things - I didn't do the surface accelerations), they
only use Fermi features. For this reason, you'll want to make sure
that you have --enable-fermi-gpu when you run configure (and make sure
that it's picking out your CUDA installation - I had to tweak the
configure script for this).

> If you can share some more information in setting this up it will be great
> since the amount of time recon-all takes is quite too long for running
> multiple datasets. Most importantly we are concerned about the hippocampal
> segmentation in freesurfer 6 rather than recon-all and so speeding this up
> would be extremely helpful.

I don't know if those portions benefit from CUDA acceleration at this
time. I focused on mri_em_register and mri_ca_register. Even if other
programs (which ones are they?) can be linked against some of the
accelerated routines, there is no guarantee of speed up - the time to
shuffle data to and from the GPU is typically greater than the speedup
of any one routine.

Hope this helps,

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.