Finding Processes that Use GPU

5,214

With the advent of GPGPU and its ease of use many modern programs would want to use it, including most browsers.

Process Explorer from SysInternals is a handy tool to track down GPU utilization statistics by various processes. It shows

GPU Usage
GPU Committed Bytes
GPU System Byes
GPU Dedicated Bytes

This should be a good place to start hunting the rogue(not really) processes eating up your GPU.

The GPU stats need to be enabled in Process Explorer -> Select Columns.

Process Explorer GPU Settings

Note: This will only work with Windows Vista and above due to following

Microsoft redesigned its graphics driver model with Windows Vista and beyond to better support multiple graphics applications running simultaneously. Understanding this model is critical for understanding graphics performance on Windows. First, the OS associates each D3D device in each process with its own graphics context. Each API call sent to the context is batched in a list of commands for that context. When enough commands are built up, or for whatever reason the API feels it needs to flush the current command buffer, the D3D API dispatches a command buffer to the graphics kernel. These command buffers are not processed immediately but are instead stored in a queue for each context. The graphics card has a queue of tasks it is working on. Periodically, when there is room the graphics scheduler will wake up and add a task from one of the contexts with work in its context-specific command queue onto the graphics card work queue. It tries to do this in as fair a manner as possible while avoiding excessive resource thrashing, similar to a CPU scheduler. GPUView will allow us to see, as a function of time, the state of all the context-specific GPU queues as well as the queue for the graphics card. The graphics card is always working on the object at the front of its queue (or is idle if its queue is empty.) Note that GPUView is designed explicitly for this driver model and will not run on Windows XP.

Share:
5,214

Related videos on Youtube

ashes999
Author by

ashes999

A long-time game developer and professional software developer.

Updated on September 18, 2022

Comments

  • ashes999
    ashes999 almost 2 years

    I use my GPU mostly for scientific computing. I've noticed that the usage/temperature recently is still high, even when the science is suspended. I strongly suspect something is using my GPU (other than my OS, obviously).

    But how can I find out which apps are using my CPU?

    I have an NVidia GT240, if it matters, on Windows XP.

    • Amos M. Carpenter
      Amos M. Carpenter over 12 years
      For a question like this, it would help if you included your OS (I'm assuming Windows?) both in your question text and in the tags so that answers can take this into account.
  • ashes999
    ashes999 over 12 years
    For some reason, I don't have a "Process GPU" tab like you do. I tried downloading the latest Process Explorer, and it still didn't appear.
  • IUnknown
    IUnknown over 12 years
    This is weird, is it due to Windows XP? Haven't tried it on XP yet, will try and let you know.
  • IUnknown
    IUnknown over 12 years
    Just confirmed, the GPU stats are only available for Windows Vista and above.
  • ashes999
    ashes999 over 12 years
    I really wish I had found a better answer than this. My GPU is now fried because I could not regulate the temperature :(
  • IUnknown
    IUnknown over 12 years
    Ouch, that's sad. Now while you wait for the rma, can you consider an OS upgrade?
  • ashes999
    ashes999 over 12 years
    what's RMA? Nope, I don't have a license to Win7. Oh well.
  • r_alex_hall
    r_alex_hall almost 11 years
    It seems that Process Explorer won't do this from the command line. Anyone who knows of any tool(s) which do, please post another answer. I have looked for this and found nothing. (I am even considering adapting some of the source code of Open Hardware Monitor for the very purpose.)