Does currecnt version of CUDA support SLI? I.e. can I use two my videocards as one CUDA device?

/I can remember that I’ve read something before, but failed to find it thruogh forum search. :"> /

No, SLI is not supported with CUDA.

OK, this question is quite actual for me too =)

Let’s assume I have two 8800 boards installed, SLIed together.

CUDA will see just one 8800, right? Or it won’t recognize card at all?

If SLI is enabled in the driver, CUDA will only report one device (card). If you disable SLI (no need to disconnect the SLI-connector) in the driver, then CUDA will report both cards. You can then run 2 or more CPU threads (say, OpenMP, pthreads, or anything you like), and explicitly set which card you want a CPU thread to interact with via cudaSetDevice. So, you can use multiple GPUs for computation, but your app must explicitly assign work to each one.


Thanks a lot for making things clear )

What’s the benefit of enabling SLI? Are is a Kernel running on both of the cards then? Also, can the global memory of both cards be seen as one big chunk of memory?

To be clear, SLI is for graphics only. It makes multiple GPUs appear as a single graphics device.

CUDA does support multiple GPUs, but they appear as independent devices - it is up to the application to distribute the workload.

Everybody, thanks for answers.

Alright so the summary so far is -
If you want to use CUDA, disable SLI and PhysX using the options in the nVidia control panel.

Is there a way to disable them programmatically? Or atleast detect that these options are ON and let the user know that he/she should disable them?

NVAPI is the way to disable SLI. Probably, you’ll need NDA with NVIDIA to get that part of NVAPI.