Cuda GPU Selection

I am fairly new to GPU programming, I have a jetson tk1 board that I have been playing with and want to start building programs for a PC. The motherboard I am looking at will fit 2 double wide pce Express 3.0 cards. Can I buy one gpu card now and program to it while it is driving the display for the OS. Or do I need one gpu for the display and a different one for programming?

You can use CUDA with a single GPU that is also driving the display. However there are various limitations that will manifest themselves depending on OS specifics.

Basically, while the GPU is running CUDA code, it will not be updating your display. Your display will “freeze” during CUDA kernel execution.

If CUDA kernel execution is “short”, you won’t notice this. If it is longer than about 2 seconds in windows, then you will start to run into trouble, which can be worked around as described here for windows:

https://devtalk.nvidia.com/default/topic/459869/cuda-programming-and-performance/-quot-display-driver-stopped-responding-and-has-recovered-quot-wddm-timeout-detection-and-recovery-/

In linux, this will give you some info:

http://nvidia.custhelp.com/app/answers/detail/a_id/3029/~/using-cuda-and-x

Running a device debugger will also be less cumbersome if you can dedicate a GPU for CUDA tasks.

Since I can’t afford a 40 lane cpu it make sense to use a lower end gpu for the OS display driver that uses only 8 lanes and then use a higher powered gpu with 16 lanes for programming activities? Are there any other issues that I should pay attention to?