Hi Richard,

Thanks for the speedy response. I think we will go with GTX 660 Ti with 2GB GPU RAM. We don't have a lot of subjects (as we hope to have) to analyze, so maybe we will try splitting left and right hemispheres to two graphic cards if our CPU RAM doesn't deplete. How do you designate the cuda commands to a certain GPU? 

On Mon, Feb 4, 2013 at 5:04 PM, R Edgar <freesurfer.rge@gmail.com> wrote:
On Mon, Feb 4, 2013 at 5:50 PM, Zhongtian Dai <dai@uchicago.edu> wrote:

> I wonder how much graphic card memory is needed by the CUDA commands. We
> have two Quadro NVS 295's with 256MB memory and the CUDA commands all report
> "out of memory" errors. I know the cards are kind of outdated but I want to
> make sure a new card would meet the task before purchasing.

I never checked exactly how much GPU RAM was consumed (having 3 GiB
cards has that effect on you ;-) ), but.... 256^3 = 16 M. So each
volume takes 16 * sizeof(T) MiB of RAM. I don't recall offhand how
many volumes GCAMorphGPU had to allocate, but it was quite a few (at
least 6 float volumes for sure). I can easily see 256MiB being
insufficient (particularly when you remember that the CUDA context
itself consumes some - small - amount of RAM on the card).

> A separate question is whether the current CUDA implementation supports
> spreading the work to multiple GPU's if they are present?

No - at least not in the stuff I did. But you can run multiple
recon-alls, with each using a different GPU. And with enough GPU RAM,
you can probably run multiple recons on the same GPU with reasonable
speedups, since there are plenty of portions of the pipeline which are
still on the CPU.

HTH,

Richard



--
Zhongtian (Falcon) Dai
University of Chicago