Headless GeForce

I want to do some scientific computing but don’t want to dish out the $$ for a Tesla.
Can GeForce GPUs be used headlessly (i.e. without a display) in Windows or Linux?

Yes, with some caveats, depending on your intentions.
On the context of the windows side for headless debugging with Parallel NSight: http://http.developer.nvidia.com/ParallelNsight/2.1/Documentation/UserGuide/HTML/Content/Setup_Local_Headless_Debugging.htm
On the Windows side, you might or might not require a GPU to drive the graphics output, depending on what it is that you want to do.

On the Linux side, there are some settings that cannot be changed by default if running headless unless you do workarounds like this: https://sites.google.com/site/akohlmey/random-hacks/nvidia-gpu-coolness, this other thread is related to that: https://devtalk.nvidia.com/default/topic/542275/linux/geforce-titan-throttles-itself-at-80c/

Thanks for the reply! Another question: how about multiple GPUs? I know CUDA lets me list and choose which device I want to compute on, so that should also work with GeForce, right?

That’s also possible. There is an environment variable you can set on both Windows and Linux called “CUDA_VISIBLE_DEVICES”: http://www.resultsovercoffee.com/2011/02/cudavisibledevices.html. Under Windows you also have the option of selecting the devices within the NVIDIA Control Panel.

I work exclusively with GeForce cards for CUDA in Linux, frequently without an X server. There should be no major differences in Linux. On Windows, Tesla cards can use the “TCC driver”, which avoids the overhead of the Windows graphics driver model when issuing kernels. I have no direct experience with this, but I know people report differences between the two drivers.

Under Linux, I believe the Tesla cards will report information like power usage and GPU load with nvidia-smi, whereas GeForce cards do not.

Does that mean I’ll need a display for each GPU to use it? I used to have similar issues with OpenCL and AMD cards – I wouldn’t be able to even find the GPU unless I had an X server running.

No, you just need to use the recipe in the Linux CUDA Release notes to create the required /dev/nvidia* files. These files are created automatically by the NVIDIA X driver, so if you don’t use X, you have to modify your startup scripts.

What about for Windows? Can I still use it without a display?

At least when running CUDA code on a secondary GeForce card, with another primary card running a display, the answer is yes. I have no direct experience running CUDA code headless on Windows, perhaps someone else can comment.

Like I have said earlier, it’s possible to fake a display if you run into issues… look into this thread for more details: https://devtalk.nvidia.com/default/topic/568980/cuda-programming-and-performance/asus-gtx-titan-benchmarks-subpar-fp64-performance-/ The OP of that thread also is interested in running headless.