Do I need another card for video output? confused on my first cuda workstation build

Hi , I am building my first workstation for cuda computing.
I wonder if I can use one card for both video output and cuda computing or I need to get two cards one for each?

I am thinking either get asus p8p67+two video cards or gigbyte z68a+sandy bridge igpu for video output and have another card dedicated for cuda computing.

There seems to be some rumors saying that sandy bridge graphic does not play well with linux, so I am really confused, anybody could give some suggestions or share some experiences of building a cuda workstation?


You do not need two cards to use CUDA. However, if you have only one card, there are some restrictions if you also plan to run X:

  • You will have slightly less memory for CUDA because the GUI will use up some of the memory for the desktop.

  • Each CUDA kernel can only execute for up to ~5 seconds before being terminated by a watchdog timer so the display can update. (This is not a difficult restriction to live with. Most kernels are very short.)

  • If your X window manager does fancy 3D rendering, this can sometimes slow down a CUDA program by forcing the card to do more work between CUDA kernels.

  • You can’t use cuda-gdb, because it needs to hold onto the card indefinitely, which interferes with the watchdog.

The nice thing about Linux is that you can turn off X, and just run CUDA programs at the text console or over ssh. In these cases, the above restrictions do not apply. I don’t have any experience with the newer Sandy Bridge chips. Up to now, I’ve typically built single or dual GPU computers with AMD Phenom II or Core i7 CPUs.

Thanks a lot, seibert!!!

Yet, I heard some rumors saying that the result of the cuda computing may subjected to errors if you let the card does video output at the same time. Is it true about that if I only use web browser and watch some HD movie now and then?

There is no problem as long as each CUDA kernel call finishes in less than a few seconds. Be sure you check the return codes from CUDA function calls (always!) because they will tell you when a CUDA operation has been terminated due to taking too long. Be aware that interacting with the GUI will slow down your CUDA application, so don’t watch a movie while benchmarking your code. :)

I guess I will get another card based on your suggestions, since I can’t guarantee not to watch movie and my stupid simulation code may require the card to run 24/7.

Thanks a lot for your suggestions!!!