Programming Multiple GPUs

Hello Everyone,

I am doing some programming on the Tesla S1070 system, which you may or may not know operates on 4 separate Tesla C1060 cards. So far, the guys in IT have it only set up such that 2 of the 4 C1060 cards are up and running, but that is not the issue.

If I am going to make a program that can run on system with 1 GPU or 1,000 GPUs, how am I going to manage that? When I run the SDK example deviceQuery, it shows the 2 Tesla C1060s as well as the operating system the Tesla is operating on. I don’t want my program to include its work on the 16-core CPU system as well as the 240-core Tesla cards. Are there any good examples of automatically handling variable numbers of GPU devices? Should I, for now, program as if there is only 1 GPU device available, and then split it up? That doesn’t seem wise to me, initially.

Any thoughts?


I use pthreads to run my program on multiple gpus. You should look at the simpleMultiGPU example in NVIDIA’s sdk.

As Charley said, look at the SDK for samples. You can also Google those news groups for MisterAnderson42 GPUWorker class.

Further, I suggests that you try to write the code from scratch with multi-gpu design in mind, it will save you a lot of time