Dual GPU, CUDA 6.5 vs. 7.0

Recently I became aware of a change in the runtime behavior of CUDA application if they run on systems with more than one GPU, which are all in “Exclusive Thread” mode. In CUDA 6.5 and earlier programs, which do not explicitly choose a GPU via cudaSetDevice or similar functions, where automatically scheduled to a free GPU such that I was able to run two GPU jobs in parallel on my dual GPU system (two Tesla M2090). Since CUDA 7.0, however, programs utilize always GPU 0 by default. This means CUDA programs have to find and to select a free GPU first (via cudaSetValidDevices or similar) before any GPU operation can be carried out.

I wonder is this new behavior a bug or a feature?



I believe this is considered a bug. The behavior in CUDA 6.5 is considered the correct behavior.
I believe this will be fixed in CUDA 7.5 production release (not CUDA 7.5RC)


we are facing the same problem with cuda 7.5. do you guys know the bug id? thanks