GPU scheduling

Hi all,

How the GPU is actually scheduled as a resource under the operating system?

While running kernels, how does that affect normal graphics operations (like x server operations for linux and GUI operations for windows)? also, to what extent it affect more graphic extensive operations (like running a game and a kernel at the same time)?



While a kernel is running, the graphics output is completely frozen in the last state. Graphics updates happen in between kernel calls. Normal graphics operations seem unaffected to me, even when running an app that makes full use of the GPU. However, my app uses 1000’s of small kernel calls per second. A different app that makes many 1s kernel calls will cause the user interface to become quite sluggish. Dragging windows around the desktop is enough to adversely slow the performance of my running kernels.

I’ve never tried running a game and my CUDA app at the same time. The closest I’ve gotten is running a VMD session that displays live output from my CUDA app. The display consisted of ~10,000 GLSL shader drawn spheres. I didn’t record framerates in VMD before and after launching my CUDA app, but the interface for VMD was still smooth and responsive.