Jump to content

Question - GPU/CPU busy

Go to solution Solved by Eigenvektor,

It's the average amount of time, per frame, that the CPU (or GPU) was busy working on it. It basically let's you figure out if your CPU or GPU is the limiting component.

 

If you have a framerate of e.g. 60 fps, then each frame should take 16.66 ms to render. If your CPU is busy for about 1 ms per frame and your GPU is busy for 16.66 ms, then clearly your CPU is not the limiting factor. It was idle for most of the time, while the GPU was working the whole time. If the situation is reversed, then your CPU is the limiting factor instead.

 

~edit: In other words, it let's you judge which component you'd need to replace with a faster component to get more performance. E.g. if you want to reach 144 Hz, but your GPU is already busy 100% of the time at 60 fps, then it can't go faster. Either get a faster GPU or reduce its workload (less resolution and/or details)

 

On the other hand, if both CPU and GPU are only working for say 4 ms each frame, then you have resources to spare. You could for example increase the resolution without losing frame rate or increase the frame rate without having to reduce details.

 

~edit 2: note that capframex only measures the time the CPU spent working on the render path. If CPU busy is only 4 ms, but GPU utilization is low, you might still be CPU limited. The CPU might simply be so busy with other things (e.g. game logic, physics, etc.) that it can't contribute more time to working on the visual side of the next frame, and as such holds back the GPU

Was editing my capframex osd layout and noticed the cpubsyavg and gpubsyavg numbers. I remember GN talking about it with the ARC guy (Tom Peterson?) but i'm still quite fuzzy about it. What exactly are they and how should I interpret them? If you can just point me to some other literature / videos, that'd also be appreciated.

Link to comment
https://linustechtips.com/topic/1610213-question-gpucpu-busy/
Share on other sites

Link to post
Share on other sites

It's the average amount of time, per frame, that the CPU (or GPU) was busy working on it. It basically let's you figure out if your CPU or GPU is the limiting component.

 

If you have a framerate of e.g. 60 fps, then each frame should take 16.66 ms to render. If your CPU is busy for about 1 ms per frame and your GPU is busy for 16.66 ms, then clearly your CPU is not the limiting factor. It was idle for most of the time, while the GPU was working the whole time. If the situation is reversed, then your CPU is the limiting factor instead.

 

~edit: In other words, it let's you judge which component you'd need to replace with a faster component to get more performance. E.g. if you want to reach 144 Hz, but your GPU is already busy 100% of the time at 60 fps, then it can't go faster. Either get a faster GPU or reduce its workload (less resolution and/or details)

 

On the other hand, if both CPU and GPU are only working for say 4 ms each frame, then you have resources to spare. You could for example increase the resolution without losing frame rate or increase the frame rate without having to reduce details.

 

~edit 2: note that capframex only measures the time the CPU spent working on the render path. If CPU busy is only 4 ms, but GPU utilization is low, you might still be CPU limited. The CPU might simply be so busy with other things (e.g. game logic, physics, etc.) that it can't contribute more time to working on the visual side of the next frame, and as such holds back the GPU

Remember to either quote or @mention others, so they are notified of your reply

Link to comment
https://linustechtips.com/topic/1610213-question-gpucpu-busy/#findComment-16714771
Share on other sites

Link to post
Share on other sites

9 minutes ago, Eigenvektor said:

It's the average amount of time, per frame, that the CPU (or GPU) was busy working on it. It basically let's you figure out if your CPU or GPU is the limiting component.

 

If you have a framerate of e.g. 60 fps, then each frame should take 16.66 ms to render. If your CPU is busy for about 1 ms per frame and your GPU is busy for 16.66 ms, then clearly your CPU is not the limiting factor. It was idle for most of the time, while the GPU was working the whole time. If the situation is reverse, then your CPU is the limiting factor instead.

 

If both CPU and GPU are only working for say 4 ms each frame, then you have resources to spare. You could for example increase the resolution without losing frame rate or increase the frame rate without having to reduce details.

Thanks. If you don't mind, could you help me with this:
I was just messing around on GTAIV and noticed that the cpubsyavg was pretty much the framerate (vsync on so like 16.6ms) while the gpu was far below that, at around 9ms. So the conclusion here would be that, for my system, GTAIV uses the CPU for longer than the GPU?

Link to comment
https://linustechtips.com/topic/1610213-question-gpucpu-busy/#findComment-16714777
Share on other sites

Link to post
Share on other sites

9 minutes ago, okkee said:

Thanks. If you don't mind, could you help me with this:
I was just messing around on GTAIV and noticed that the cpubsyavg was pretty much the framerate (vsync on so like 16.6ms) while the gpu was far below that, at around 9ms. So the conclusion here would be that, for my system, GTAIV uses the CPU for longer than the GPU?

Correct. It basically means you could increase the GPU's workload (higher resolution or details) without losing frame rate.

 

The CPU is the limiting factor (aka "CPU bottleneck") so most likely you won't be able to achieve a higher frame rate without getting a faster CPU. Anything that increases CPU workload (better physics, higher crowd density) is likely to reduce your frame rate.

 

Also note the edits above. You could be CPU limited even if it doesn't spend 16.6 ms working on the render thread. It might be so busy working on other things, that it can't contribute more resources to rendering. That could also result in less than 100% GPU usage, specifically in scenarios where the frame rate isn't capped by e.g. VSync or the engine (since you're using VSync, likely not the case).

Remember to either quote or @mention others, so they are notified of your reply

Link to comment
https://linustechtips.com/topic/1610213-question-gpucpu-busy/#findComment-16714781
Share on other sites

Link to post
Share on other sites

13 minutes ago, Eigenvektor said:

Correct. It basically means you could increase the GPU's workload (higher resolution or details) without losing frame rate.

 

The CPU is the limiting factor (aka "CPU bottleneck") so most likely you won't be able to achieve a higher frame rate without getting a faster CPU. Anything that increases CPU workload (better physics, higher crowd density) is likely to reduce your frame rate.

 

Also note the edits above. You could be CPU limited even if it doesn't spend 16.6 ms working on the render thread. It might be so busy working on other things, that it can't contribute more resources to rendering. That could also result in less than 100% GPU usage, specifically in scenarios where the frame rate isn't capped by e.g. VSync or the engine (since you're using VSync, likely not the case).

tysm for helping me out with this

Link to comment
https://linustechtips.com/topic/1610213-question-gpucpu-busy/#findComment-16714791
Share on other sites

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×