I have a question on GPU performance

PaiSand

Active Member
But I'm still really curious on why the GTX1650 super would be running at 60% and the RTX 3060 XC would be running at 75%?

Answer
GPU% is meaningless without also showing the GPU clocks. 70% of 100 MHz is less then 60% of 1000 MHz.

Because your new GPU can run at a lower clock speed to save power.

You seem to be ignoring everything I've written. Let's try an analogy (ignore the actual numbers as I know nothing about cars). Your GPU has multiple power levels, much like a car has multiple gears. A car engine runs at a certain RPM, like your GPU runs at a certain percentage usage.

If you are in 1st gear (power level) and 3000 RPM (usage), you may be moving at 20 MPH. If you are in 6th gear and 2000 RPM you're probably moving much faster, let's say at 70 MPH. Even though 3000 RPM is higher than 2000 RPM, you wouldn't say that 1st gear is faster, would you?

The same concept applies to your GPU, except it's smart: it knows how complex the work you're asking it to do is, so it decides it can easily be done in 1st gear at 7000 RPM, so it doesn't bother going up to 6th gear at 1000 RPM and wasting energy. If you make your scenes more complex, then at some point before 100% GPU usage, the GPU will decide it needs to increase the clock speeds and then you'll see the percentage use drop accordingly.
 

John Zapf

Member
Already running (3) & you want (5) more encodes? 8 concurrent encodes?

The RTX4070TI & up have (2) encoders but Nvidia currently limits all consumer GPU's to (5) concurrent encodes.

Professional Nvidia GPU's don't have this limitation. The RTX3500 Ada & up have (2) encoders & the RTX6000 Ada has (3) encoders.
And with all of that said I wonder what video cards YouTube is using. They're streaming millions of streams a day? I have access to all this same equipment that's not available to the public just testing 64 core processors 4 years ago. I have access to all the latest and greatest equipment. So again i'm just wondering what YouTube would use to stream millions of streams. I get to have racks of computers. I've only worked on individual computers from Google and Microsoft etc, I had a little tiny blade computer on my bench last week that was worth $200,000 that kind of stuff is nuts. That was basically just because of the amount of cores the processors had and the amount of ram add in it. But again what kind of video cards do they use I don't get it? And the one computer I had from him had a Bank of a video cards in it but still they streamed millions of streams...
 
Last edited:

John Zapf

Member
So what can I do to resolve this. Get a different card how do I turn the power up. Saving power is the last thing on my mind the server has two 1600 Watt power supplies in it. I'm not trying to save power at all I'm trying to stream, streams. My solar panels on the roof more than cover everything I use in a year.
 

PaiSand

Active Member
You already have the answer R1ch was kind enough to give.
Please read it.

On my part, this is an issue resolved. You can continue with this on the appropiate place: nvidia support / forums.
 

John Zapf

Member
You already have the answer R1ch was kind enough to give.
Please read it.

On my part, this is an issue resolved. You can continue with this on the appropiate place: nvidia support / forums.
No nothing has been resolved. I get everything everybody said. I realize all of that. I've read all your replies 10 times. I'm simply trying to get my GPu usage too 40%. I guess you're missing what i'm asking. I just upgraded the server and I went from 8 cores to 40 cores in my CPU usage went from 26% down to 4% I doubled the video card and it went up in percentage. That's fine you've explained all of that. I'm simply trying to get my GPU usage down to 40%. And at this point that has not been resolved.
 

John Zapf

Member
Again I have done everything on my end I can do as far as a, great switch, great wiring, great cameras, and an awesome server. The server has more than enough power to do everything I need to do I could even add another video card or two if needed. CPUs resources are never gonna be a problem. I just want to get the GPU resources down. It runs 75 to 85%. I would like to see that at a Max of 40% to give myself some headroom to do more things. This should be an issue as other people stream a lot of live streams at the same time.
 

Phandasm

Member
No nothing has been resolved. I get everything everybody said. I realize all of that. I've read all your replies 10 times. I'm simply trying to get my GPu usage too 40%. I guess you're missing what i'm asking. I just upgraded the server and I went from 8 cores to 40 cores in my CPU usage went from 26% down to 4% I doubled the video card and it went up in percentage. That's fine you've explained all of that. I'm simply trying to get my GPU usage down to 40%. And at this point that has not been resolved.
There is no point in doing that, the card will boost to a higher clock speed automatically if the workload demands it.
If you really must see a smaller number, then you can raise the minimum clock speed with MSI afterburner or any similar utility.
But that generally counts as "overclocking" and so the usual disclaimers apply.

% utilization (by itself) is not a terribly useful metric.
For example you mention switching from an 8 core CPU to a 40 core CPU and dropping to 4% utilization, but the problem is that few workloads can be gainfully parallelized to 40 cores.
Due to the heat and power demands of high core count CPUs, they usually run at low clock speeds which makes them prone to single-threaded bottlenecks and then you get poor performance despite low usage % because what you actually needed was more clock speed.
At 100% usage adding more cores is helpful, but at 25% adding more cores likely *degrades* performance due to the reduction in clock speed.

The GPU case is similarly deceptive. If it's not at max clock speed and not thermal/power throttling then that 70% is meaningless.
You're far more likely to max out NVEnc than the main GPU just running OBS.
 

John Zapf

Member
Also what do you think about adding another GPU? In settings under output down at the bottom it has GPU 0, is that for adding other GPU cards and designating them?
 

koala

Active Member
I just upgraded the server and I went from 8 cores to 40 cores in my CPU usage went from 26% down to 4%
Why did you do that? This doesn't improve production in any way. Your're wasting your money. A CPU with a usage lower than 100% isn't fully loaded, so it is able to do more. But you don't give it more. If your CPU usage is 4%, it's idling 86% of the time. Why do you buy CPUs that just idle, doing nothing?

In a server environment with many processes running in parallel you're able to distribute and define loads very good, and so you try to put as much load on a machine to get it to about 80-90% CPU load average on peak usage times. This leaves you 10-20% for spikes, which is usually enough, if you're supporting interactive load. If you just have automated machine load, you can even put more usage onto it. You identify peak usage times and aim to get 100% load in the peak usage time. Then measure behavior and response time to see the impact between 100% load and lower load. Then reduce slightly from 100% to get the response time down to acceptable values. Between 0% and 80% load, you will usually not see any difference in response time. Above it depends on your demand. Realtime and interactive load is more sensitive.

Usage below 80% is simply wasted hardware, wasted power, wasted investment.
 
Last edited:

John Zapf

Member
Why did you do that? This doesn't improve production in any way. Your're wasting your money. A CPU with a usage lower than 100% isn't fully loaded, so it is able to do more. But you don't give it more. If your CPU usage is 4%, it's idling 86% of the time. Why do you buy CPUs that just idle, doing nothing?

In a server environment with many processes running in parallel you're able to distribute and define loads very good, and so you try to put as much load on a machine to get it to about 80-90% CPU load average on peak usage times. This leaves you 10-20% for spikes, which is usually enough, if you're supporting interactive load. If you just have automated machine load, you can even put more usage onto it. You identify peak usage times and aim to get 100% load in the peak usage time. Then measure behavior and response time to see the impact between 100% load and lower load. Then reduce slightly from 100% to get the response time down to acceptable values. Between 0% and 80% load, you will usually not see any difference in response time. Above it depends on your demand. Realtime and interactive load is more sensitive.

Usage below 80% is simply wasted hardware, wasted power, wasted investment.
Not sure what you are saying I was talking about the GPU and you're talking about the CPUs. So are you saying turn off that use GPU and let it use the CPU? And there is no peak usage times it's the same amount of usage 24/7. All three cameras are on 24/7 365.
 

John Zapf

Member
Also all three streams went down again yesterday at 5:15 PM. I gotta call my service provider to see if there was anything going on, any packet loss or whatever at that time. I just really need to get this stable I shouldn't have to babysit this and I just need it to stay going. Here is the log file. If somebody could look this over and let me know if i need to change settings on anything to help things or if they can see why it would have went down at 5:15 yesterday that would be really helpful. Thank you.
 

Attachments

  • 2023-09-23 21-46-51.txt
    17.8 KB · Views: 6

AaronD

Active Member
Also all three streams went down again yesterday at 5:15 PM. I gotta call my service provider to see if there was anything going on, any packet loss or whatever at that time. I just really need to get this stable I shouldn't have to babysit this and I just need it to stay going. Here is the log file. If somebody could look this over and let me know if i need to change settings on anything to help things or if they can see why it would have went down at 5:15 yesterday that would be really helpful. Thank you.
You're getting tied up in things that don't matter, and I think it's distracting you from things that do matter. Drop the performance issue and move on. It was fine before, and it's fine now.

Also, that log doesn't include 5:15pm.

And, if you use OBS's built-in log uploader (Help menu), you can paste that URL into the Analyzer that you can find in my signature. That can be helpful too, and doesn't miss obvious things like humans do.
 

John Zapf

Member
OK I'll look into doing that. And I have Cox Internet coming out between 1:00 and 3:00 today to monitor the line again.
 

John Zapf

Member
So Cox was just here and I got the right guy. So the ongoing stream failures are because of *****. They keep having packet loss and latency issues. I've been dealing with this with them for 20 years. So supposedly he's going to push to get the system turned on that's already upgraded in the neighborhood. Right now I have four channels for my upstream and they have 36 available and it's already at the modem it's just not turned on. So if they can get that turned on that's going to fix my issues with the streams going down. It has nothing to do with my server it has nothing to do with obs it's totally on my Internet provider.
 

John Zapf

Member
So with the Internet packet loss and latency problems I have what can I increase on OBS server to accommodate A buffer for that?
 

DayGeckoArt

Member
OK it's just weird that it would have went from 60% GPU usage on a card with half the power and then upgrade to better card and running all the exact same things now utilizes 70% of the new bigger card just still trying to wrap my head around that.
AaronD posted a myth perpetuated by Nvidia. There may be an NVENC chip, no one actually knows that and Nvidia hasn't documented that anywhere that I know of.

But what is definitely not true is that Nvenc doesn't use GPU resources. If you monitor CUDA usage with a program like HWInfo64 you see that Nvenc uses CUDA. It uses more CUDA processing power if you record in 4K or if you use 4:4:4 color which I do!
 

AaronD

Active Member
AaronD posted a myth perpetuated by Nvidia. There may be an NVENC chip, no one actually knows that and Nvidia hasn't documented that anywhere that I know of.

But what is definitely not true is that Nvenc doesn't use GPU resources. If you monitor CUDA usage with a program like HWInfo64 you see that Nvenc uses CUDA. It uses more CUDA processing power if you record in 4K or if you use 4:4:4 color which I do!
Huh. Okay. So there seems to be some lousy reporting software too. That's also plausible, in *any* direction: mine, yours, or otherwise. :-/

For several of my microcontroller projects, I included a crude "system load indicator", which is simply to turn an LED on and off at strategic points in the code, so that the brightness (theoretically) corresponds to how close it is to violating some critical timing requirement, just because it doesn't get to that code soon enough. Dimmer = heavier load, so if I can see it at all, it's still okay. An oscilloscope on that LED shows it more accurately.

With something more complex than a single thread (a lot of microcontrollers have effectively 2 threads: the main loop, and a single interrupt vector that pauses that main loop at any time) that is monitored externally (the LED and 'scope are both external monitors; an internal monitor would be software on the same machine to have it report its own load), it becomes a lot more difficult to measure load at all, with any kind of accuracy. The number that we see on the screen could easily be a composite estimation, built from several non-exact sources, and not a direct measurement of anything.

So I wouldn't be surprised at all if some reports looked at more things than others, and of course got different answers. Which one is right, depends on what you're actually looking for and what you assume it means.

That doesn't invalidate what was said before about throttling affecting the report: the same method, whatever it is, with the same task and a different clock, will likely report differently by a similar amount that the clock changed.

This is why I monitor GPU power usage in watts rather than rely on %
Not a bad idea, as long as *that* report is accurate! Kill-A-Watt perhaps?
Of course, that would also include the power supply's varying efficiency with varying load...
 
Top