How To Identify A CPU Bottleneck - Is Your CPU Bottlenecking Your GPU?

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
would you believe me if I told you that in both of these two scenarios you can see on the screen here we are being bottlenecked by the CPU well at first glance it might not make a lot of sense because the overall CPU usage on the left is sitting at 94% and on the right it's sitting between 50 and 70% so how can both be CPU bound well that's what we're going to be talking about today and I'll also explain to you how to identify a potential CPU bottleneck all right so first let's have a look at the first scenario you can see our CPU usage is sitting at 100% usage and uh even though we do have a 14600 KF CPU I only enabled four P cores and I disabled all hyperthreads and also disabled all ecores so we are running the game on four performance cores at the moment right so the first scenario I just wanted to uh demonstrate is when your CPU is just completely underpowered for the game so in this case cyberp Punk can be pretty CPU intensive and four cores is just not enough even though they are very for very fast cores right so it's running at 5.3 GHz and it's the latest 14th gen CPU so the IPC and everything is quite high but 4 CS is just not enough or are just not enough so you can see we are running at 100% CP usage there our GP usage is sitting between 30 and 50% that is also very good indicator of a CPU bottleneck not always though as some games do do have a built in a frame rate limit for instance alen ring is kept at 60 frames per second by default and in that case your CPUs and gpage will be quite low it doesn't mean that you are CPU bound or GPU bound but at that time you are engine bound all right so the settings I'm using is 1440p but I'm using dlss performance here the reason for that is I just want the the GPU to not be the bottleneck in this situation cuz I want to show CPU performance now a lot of people misunder understand the the way people talk about shifting load from the GPU to the CPU it's not really physically Shifting the load from the CPU to the GPU in a sense I do think that there's quite a bit of a misunderstanding regarding that but what happens is for instance if you render the game internally at a lower resolution the the GPU has a much much easier time I mean it's easier to to render stuff at 1080p than it is at 4K for example so for instance this GPU would get 30 frames per second at 4K and 120 frames per second at 1080p in this game so what needs to happen is the CPU is responsible for preparing the frames and at 4K the CPU only needs to prepare 30 frames per second to fully saturate the gpu's capability of being able to do 30 frames per second now you drop the resolution to 1080p all of a sudden the GPU is capable of doing 120 frames per second but now the CPU also needs to be able to prepare 120 frames per second to keep the GPU fully saturated and that's basically what we mean when we say we shift the load from the GPU to the CPU because you'll get to a point where the CPU just can't prepare enough frames to keep the GPU saturated for instance at 720p this 14600 KF is not enough to fully saturate this uh 4070 sou right so that's basically all that means so this is just one example of a a CP bottleneck and it's very easy to spot so let me just show you the individual threads here quickly the usage on the threads all right so I'm using cap frame X for this that's why it looks a little bit different than MSI after bner but it's the the reason is I want to actually show something else uh we'll get to that just now but you can see all four of our CPU threads which are the four performance cores are running at 100% okay so in this case the CPU is just completely underpowered for what is required from the GPU in this game all right so that's scenario one and uh as I said it's very easy to spot you you'll have a very very low GPU usage you'll have very high CPU usage and a very low frame rate or a much lower frame rate than what your system is capable of all right so let's have a look at the second scenario all right now we get to our second scenario here I dropped this down to dlss ultra performance because even a DS's performance uh we weren't really CPU bound but now you can see that we are getting a much higher frame them previously all I did was I re-enabled all cores all hyper threads all EES Etc and we are getting around 110 120 frames per second yeah but our GP usage is still sitting in the 60s and 70s all right so and our uh GPU power usage is also very low this GPU can go up to around 220 watt so this is another indication of a CPU bottleneck even though our CPU is not running at 100% so how is it possible that this is a CPU bottleneck well there are just two indications here that I I want to point to one is the GPU usage although it's not always 100% accurate to say that we are being uh Bound by the CPU when our GP usage is not sitting at 100% it is in this case and it is in a lot of cases right but it's not it's not very definitive it's not 100% accurate it might be accurate in many many cases but not always and then also looking at the GPU power which uh I mean it's sitting at 130 140 Watt and we do know that this GPU can do 220 Watts Under full load right so that means that the the GPU is not being fully used and uh I can't drive so it means that something is holding it back now it might be Memory speed it might be dis speed it might be CPU speed we just refer to anything system related as a CPU bottle naked just makes it a little bit easier but something else might be holding back the CPU which then in turn holds back the GPU right so if we just have a closer look at the thread usages here I'm just going to go back into cap frame X here quickly all right so I've got all the the threads uh usages on the screen right now it's in white so or the names are in White and the values are in this orange color so you can see that all our threads are sitting between 60 and 70 % right now the reason why the CPU is showing as a 69% CPU usage it's because that load is the average of all the Cordes put together so if you have two threads that are used 100% and we've got a 20 thread CPU then your CPU usage overall will not show 100% CPU usage that's why we have to look at the separate thread usages if only two uh two threads are at 100% % and the rest are at 0% right that means 22th of our cores are running at 100% which means one10 of our cores are running at 100% which means our CP usage overall CP usage will be sitting at 10% I think I did the math right there but that's why overall CP usage in an overlay like this is not always handy but still we are CPU bound even though the CPU is not sitting at 100% on any thread right so how do we definitively say that we are CPU bound now there is a very very nice tool that built into c x as well called present Monon and I'll be I'll enable it right now all right so now on the screen in red we've got GPU busy frame time average and GP busy deviation okay so this is all pulled from Intel's present Monon which is implemented into capf frame X and that's the feature that I wanted to talk about today and now you can see that uh our GPU busy average is sitting at 4.9 milliseconds and our frame time average is sitting at 7 milliseconds GP busy deviation sitting at around 30% okay so what does that all mean well the frame takes 7 milliseconds on average to be presented to me right but the GPU is only responsible for 5 milliseconds of that 7 milliseconds okay so that means 2 milliseconds is used elsewhere give or take okay so the closer these two numbers are together the less CPU bound you are or the more GPU bound you are okay it's also not 100% but it gives you a very very clear indication right if we are fully GPU bound those numbers would be much closer together you want the frame time average to be about equal to the GPU busy average okay or the other way around you want the GPU busy average to be about the same time as the frame time average and that would mean that the CPU is not holding back back the the GPU from being fully utilized and it also shows you GPU busy deviation which also gives you an indication of exactly how much you are being bottlenecked now that one is also not 100% accurate but it does give you a pretty good idea and it more or less aligns with the GPU usage most of the time in my testing anyway so if our uh GPU usage is setting at 66% our GP bus deviation would be 34% right this is an average so it calculates it over time so the best is just to refresher every now and again and you'll get the the better picture of what's Happening actually at the time but you can see here with this setup here we are around 27% CPU found and add 27% to the GP usage of 70% then we get to 97% which more or less checks out right so what does it look like when we are actually fully GPU bound let me go ahead and do that right now so all I'm going to do is just uh an able daa so there's no upscaling whatsoever and if we then just open up our numbers and refresh them now you can see our GPU busy average is pretty close to our frame time average and that's what you want so for the the time the 10.6 milliseconds it takes to display a frame the GPU is responsible for around 10 milliseconds of that right so which means we are still slightly CPU bound but this game is very very CPU intensive especially after the Phantom Liberty update but now you can see we went from being 30% uh CPU bound to only being 7% CPU bound we are still getting around 80 90 frames per second here without any frame generation or upscaling this is without rate tracing as well now just the one other thing that I do want to show you that if you now enable frame generation it actually matches up perfectly fine your GPU busy average and your frame time average become one almost right so that means we are no longer CPU Bound in any capacity let me go ahead and do that right now so I'm going to use the exact same settings here just enable DSS frame generation still with the daa which means native resolution and if we open up this and reset the numbers now you can see our GP busy average is sitting at 7.1 MCS and our frame time average is well I mean it's 7.2 and 7.3 so the the deviation is a lot less it's sitting between 1 and 3% and our frame rate is much higher the motion fluidity is much higher but also our input latency is slightly higher as well which is which is a negative of DSis frame generation but I mean it's it's a brilliant technology in my mind so there you have it th those are the the typical scenarios that I wanted to talk about a CPU bottleneck the the whole aim of your GPU is to be used fully in most cases otherwise you just just wasting performance right you you're just wasting money obviously you can try and future proof a little bit by buying a 48 period with a 12400 F CPU for example the the GPU will perform about the same as a 4070 maybe right you'll be holding it back quite a lot by with that CPU but that means that in future you can upgrade your CPU or when games do become more graphically demanded the GP will be able to handle it right but it's a lot of money just to just to be able to try and Future prooof something so the the aim is to try and always be GPU bound have your GPU usage sitting at 99% and now you can see we are drawing 220 wat give or take as I as I alluded to earlier and uh now the GPU is being fully used and very very little of it is being wasted all right I try to explain it as best as I can I'm a little bit sick so I might have missed a few things or if something is unclear let me know in the comments but anyway that's the end of this video hope you guys enjoyed it if you did hit that like button hit that subscribe button and as always we hope to see you in the next one
Info
Channel: Mostly Positive Reviews
Views: 9,661
Rating: undefined out of 5
Keywords: cpu bottleneck, gpu bottleneck, capframex, intel presentmon, gpubusy, gpubusy deviation, gpu busy, cpu bottlenecking, gpu bottlenecking, is my cpu a bottleneck, gpu 100% usage, 100% gpu usage, 100% cpu usage, rtss, framerate capture, frametime capture, framerate vs frametime, how to check if my cpu is a bottleneck, how to check if my cpu is bottlenecking my gpu, intel 14600k benchmark, rtx 4070 benchmarks, nvidia, intel, geforce, rtx, gpu, cpu, gaming benchmarks
Id: 4QJglCSGEt4
Channel Id: undefined
Length: 13min 10sec (790 seconds)
Published: Tue Jun 25 2024
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.