Finding Processes that Use GPU

2

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.

ashes999

Posted 2012-01-19T03:08:11.797

Reputation: 565

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. – Amos M. Carpenter – 2012-01-19T03:47:44.797

Answers

11

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.

IUnknown

Posted 2012-01-19T03:08:11.797

Reputation: 2 018

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. – ashes999 – 2012-01-19T12:12:47.093

1This is weird, is it due to Windows XP? Haven't tried it on XP yet, will try and let you know. – IUnknown – 2012-01-19T12:20:46.027

Just confirmed, the GPU stats are only available for Windows Vista and above. – IUnknown – 2012-01-19T12:26:49.370

I really wish I had found a better answer than this. My GPU is now fried because I could not regulate the temperature :( – ashes999 – 2012-02-01T12:34:47.643

Ouch, that's sad. Now while you wait for the rma, can you consider an OS upgrade? – IUnknown – 2012-02-01T12:39:30.727

what's RMA? Nope, I don't have a license to Win7. Oh well. – ashes999 – 2012-02-01T14:22:46.337

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.) – r_alex_hall – 2013-08-27T16:56:25.877