Why does the performance differ so greatly with seemingly the same code?

Does disabling a graphical desktop significantly improve the performance of CUDA code?

  • Presumably some of the GPU's resources are occupied by the graphical display (if this device is being used for both a CUDA executable and for display).  Just wondering if dropping down to the basic terminal interface and disabling the graphical desktop environment provides any significant performance increase in CUDA code.  Assume there's nothing else computationally intensive running (no games or 3D renderings etc).

  • Answer:

    I believe it doesn't do any significant improvement if u disable desktop. Apart from doing 3D renderings and playing games if you are talking bare desktop usage of GPU it's negligible. Another interesting point would the number of GPUs you have on the machine. Many PCs have an onboard GPU apart from additional(nvidia) GPUs which can easily handle desktop rendering. So case in point it has no effect whatsoever on your CUDA code.

Shishir Horane at Quora Visit the source

Was this solution helpful to you?

Other answers

Sorry, not expert in CUDA ... but ... I'd assume so, but just how significant is another issue: just how much of the GPU is actually used by the desktop? I guess that depends on the desktop, some might not even use much GPU at all (possibly even nothing). From something similar: I always turn off the decorative desktop elements in Windows (especially since Vista and later) because I use 3dStudio / Revit / AutoCAD many times throughout my workday. These are highly graphics intensive programs and I've noticed significant slowdowns due to stuff like Glass effects in Vista.

Irné Barnard

This is very interesting question. The answer depends a lot on two factors. 1) GPU in use 2) The OS's desktop/window manager. If you're using a low end GPU, such  as a GT620, which has limited compute resources, then it could mean that  the GPU's resources might be strained. In which case, an increase in  performance may be possible. Nvidia's  drivers limit the amount of time a kernel can run uninterrupted on a  GPU. Priority is always given to incoming rendering requests from the  OS. Also, for kernels that deal with large amounts of memory, having an active GUI limits the amount of memory available for dedicated compute use. Finally, should you're application have a lot of i/o, such as cuda streams that constantly move data in and out of the device, then your GPUs DMA and the PCIe bus will also have to deal with the additional load from the GUI. I've found I/O to be major bottleneck at times. The fact that nvidia drivers throttle PCIe to run on v2.0, due to stability issues, doesn't help either :) So, to sum up my answer, disabling the GUI MIGHT be of use to you. You'd need to evaluate it on a case-by-case basis. However, if consistent performance and accurate run-times are a concern for you, then I'd recommend that you allow the integrated GPU on your processor handle your desktop, and dedicate your discrete GPU to CUDA workloads.

Ashutosh Dhar

Just Added Q & A:

Find solution

For every problem there is a solution! Proved by Solucija.

  • Got an issue and looking for advice?

  • Ask Solucija to search every corner of the Web for help.

  • Get workable solutions and helpful tips in a moment.

Just ask Solucija about an issue you face and immediately get a list of ready solutions, answers and tips from other Internet users. We always provide the most suitable and complete answer to your question at the top, along with a few good alternatives below.