Voicemeeter Banana idle cpu usage ryzen

The Virtual Audio Mixer discussions and support...
das1996
Posts: 12
Joined: Wed May 06, 2020 10:54 pm

Voicemeeter Banana idle cpu usage ryzen

Post by das1996 »

Hello. Thank you for the great program. I'm having the following issue.

Cpu : 3900x
motherboard : x570 based

Voicemeeter banana is strictly used to output pc audio stream to 2 sources - optical and analog. This works well with no lag (both physical outputs use wdm).

Issue: During idle states - no audio playing, no audio apps open, screen off but pc on, etc. I still see ~1% cpu usage in task manager. Ryzen master also shows higher vcore voltages. Finally, ups power usage monitoring shows a good 10 watt increase over non VMB usage.

It makes sense for the app to do something when audio is playing, but during idle states I expect it to be more dormant.

Now, the 1% above may not seem significant, but in context of 12 cores (vs say 4 cores) it is. The PC spends a good amount of time idling throughout the day (screen off, but pc is on). What can I do limit cpu usage during such states while still keeping VMB loaded?


Thanks
Kilrah
Posts: 12
Joined: Mon Apr 27, 2020 8:14 am

Re: Voicemeeter Banana idle cpu usage ryzen

Post by Kilrah »

It's constantly streaming from/to any attached sources and devices, whether there is sound or not. 1% is kinda negligible...
das1996
Posts: 12
Joined: Wed May 06, 2020 10:54 pm

Re: Voicemeeter Banana idle cpu usage ryzen

Post by das1996 »

It is and it's not. If it's causing an increase in 10w power at idle then it's an issue.
xcasxcursex
Posts: 173
Joined: Tue Feb 18, 2020 12:04 am

Re: Voicemeeter Banana idle cpu usage ryzen

Post by xcasxcursex »

das1996 wrote: It makes sense for the app to do something when audio is playing, but during idle states I expect it to be more dormant.
As kilrah said, you can consider it that audio is always playing. Just, sometimes the audio is silence.
das1996 wrote: What can I do limit cpu usage during such states while still keeping VMB loaded?
You can't limit CPU sage, it takes what processing power it takes.. However, you can make it use less electrical power to handle that load, by being more efficient.

If power management is your concern, that's where to deal with it. Use Windows Power Plan settings to ensure that your CPU stays in a a lower-power state when CPU usage is low.
Last edited by xcasxcursex on Sat May 09, 2020 2:39 am, edited 1 time in total.
das1996
Posts: 12
Joined: Wed May 06, 2020 10:54 pm

Re: Voicemeeter Banana idle cpu usage ryzen

Post by das1996 »

^^Setting the minimum processor state to 1% makes no difference.

I suppose one option is to shut it down entirely when the screen saver/monitor off kicks in. It's drastic measure. I was hoping there were other options. I understand the concept of silent audio.
xcasxcursex
Posts: 173
Joined: Tue Feb 18, 2020 12:04 am

Re: Voicemeeter Banana idle cpu usage ryzen

Post by xcasxcursex »

das1996 wrote:^^Setting the minimum processor state to 1% makes no difference.
That setting is the lowest the CPU will go, but it won't effect how much the CPU powers up depending on the amount of load. Although I'm a big fan of AMD almost all of my professional experience is with intel CPUs (only time I touched AMD was when they brought out the first 64bit CPUs and intel didn't have them at all) so I wouldn't feel fit to give specific advice on how to go about this. I'd probably ask on the AMD reddit or something.
das1996 wrote: I suppose one option is to shut it down entirely when the screen saver/monitor off kicks in. It's drastic measure. I was hoping there were other options.
Don't worry, there should be no need for that. You'll just need to find the way to get windows to drive your hardware in a manner that reflects your desired power usage.

Rather than shutting down when idle, you might consider just going into sleep mode.

But before that, I'd be trying to find a way to keep my CPU at a low power state when it's effectively idle (because 1% load from anything, Voicemeeter or otherwise, is effectively idle... I mean my browser is using 4 times as much as VM just sitting here idle.).

I don't know why it isn't doing that already. Perhaps it is, perhaps your 10W increase in power draw is a comparison from the CPU in an extreme low-power state (parked cores, higher P state or something) to an idle but non-sleep state. But still, you should be able to get it to stay half-asleep while VM runs.

I know literally nothing about this, but I have heard of some AMD Ryzen-specific power plan tools. Search the web for '1usmus' and get your reading glasses ;) Hopefully there's some useful info there.

The punchline of all this is that it's really a windows/amd/motherboard/etc power management issue, and not actually anything to do with VM. I wish I could give you specific advice but honestly it's out of my wheelhouse. I'd go where the AMD nerds are :)
das1996
Posts: 12
Joined: Wed May 06, 2020 10:54 pm

Re: Voicemeeter Banana idle cpu usage ryzen

Post by das1996 »

Tried the following in order.

1) Updated to 1usmus power plan (universal since windows 1909 installed). No change
2) Updated amd chipset drivers, also no change

I think you're right about the idle non sleep state. With everything minimized, VMB loaded, I see 3 cores active in ryzen master ~300-500 mhz ea. Same state but no VMD i see 1 core active ~300-400 mhz.

Sleep mode is not an option. The pc is used by others for file sharing/streaming.

Code: Select all

@echo off
"c:\My documents\user\nircmd\nircmdc.exe" sendkeypress rwin+m
"c:\My documents\user\nircmd\nircmdc.exe" monitor off
powershell stop-process -name "voicemeeterpro"
The above is contents of my screen blanking short cut. First command minimizes everything (yes, open apps seem to consume cpu even when idle unless minimized). Second command puts screen into sleep mode. Third is self explanatory :) A shortcut on the taskbar executes the batch file. When I come back manual restart of VMB is done through another shortcut. I tried to implement it via event monitoring but VMB will not start properly from a batch file (with tasktray option enabled).
xcasxcursex
Posts: 173
Joined: Tue Feb 18, 2020 12:04 am

Re: Voicemeeter Banana idle cpu usage ryzen

Post by xcasxcursex »

das1996 wrote:I think you're right about the idle non sleep state. With everything minimized, VMB loaded, I see 3 cores active in ryzen master ~300-500 mhz ea. Same state but no VMD i see 1 core active ~300-400 mhz.

Sleep mode is not an option. The pc is used by others for file sharing/streaming.
Ahh yeh well there it goes, your PC is parking all but one core when it's unloaded, and the 10W difference is the other two cores unparking when it's loaded.

Consider that the filesharing/streaming is going to use more power than VM does. That 10W isn't much for a server.

I mentioned sleep mode only as an alternative to your mention of powering it off but obviously neither are an option since it's a server. I don't think either should be necessary, any way.


You should be able to leave it in the same low power non-sleep idle state, when VM is running. Preferably, you would find out how to set the threshold so that it doesn't unpark the cores too early (as in, when VM is running but nothing else is). This may simply be a matter of using one of the built-in power plans intended to minimise power draw. It should be called "Power saver".

It's possible you'll have to modify your system to match your need specifically though. In that case, you might like to start reading the official documentation over here: https://docs.microsoft.com/en-us/window ... nce-tuning
Power Plan settings for more in-depth configuration like this are hidden, I use this script to show them all: https://gist.github.com/raspi/203aef369 ... c78c37ec2c (well, I used that script, then I made a perfect plan for my specific needs, and exported it so I just import it when I build a new PC)

For example you might even be brute-force about it, and rather than setting a threshold at which to unpark cores, you could force the system to have a maximum unparked core count of 1, so that it's always forced into that low-power state where only one core is active. Then you could setup a shortcut to go to a high-power plan when you're at the PC.

But really, really, you should be asking an AMD guru about this. The VB forum isn't the best place to have this discussion because this really isn't a VB issue. Perhaps there's an AMD or Windows power management expert around here, but there certainly are those people, in other places. I wish I could help more, but my experience in this area (as well as being intel-focussed) is more with forcing the machine to use more power and perform faster, which is kinda the opposite of what you need. I'll try to help, as much as I can, but the best help I can give you is to tell you to look elsewhere ;)

And make a backup before you go tinkering with it ;)
das1996
Posts: 12
Joined: Wed May 06, 2020 10:54 pm

Re: Voicemeeter Banana idle cpu usage ryzen

Post by das1996 »

^^Thanks for the link to that script. That sure opens up pandora's box on cpu governor settings. Which specific parameters should I be looking for for the idle parked state thresholds (if you know)?

Yes on the backup.. Full system imaged before the latest updates were installed, VMB, etc. It'll take 5 min to restore back to previous state.
xcasxcursex
Posts: 173
Joined: Tue Feb 18, 2020 12:04 am

Re: Voicemeeter Banana idle cpu usage ryzen

Post by xcasxcursex »

das1996 wrote:^^Thanks for the link to that script. That sure opens up pandora's box on cpu governor settings. Which specific parameters should I be looking for for the idle parked state thresholds (if you know)?
Yeh it's a real rabbit hole. Windows' power management and CPU scheduling leave a lot to be desired. I suspect they'll sort it out in the not-too-distant future, as it's been a thing since forever (Pro audio on 95SE, realtime work on NT 3.51 server, and onward, at least) but the ryzen chips really blew the cover on it to the masses, and in the datacentre. For examples of how it can be very AMD/ryzen-specific, take a look at this: https://www.reddit.com/r/Amd/comments/6 ... g/df2v7w9/ and this https://www.reddit.com/r/Amd/comments/5 ... g_and_amd/

Disclaimer: I'm far from an expert on this, and certainly a long way from an expert in this use case (low power, also AMD). So I may get things wrong and waste your time. I'll do my best to help out with what I know. But please don't hate me if I do a stupid :)

I *think* the one you're after is 'Processor performance core parking over-utilization threshold'. I *think* it's set to 5% by default. If you're using 1% of three cores, that's going to be at least 3% of one core, and as the clock speed drops, it's going to be even more, so you might be tripping over that 5% by just a little. Maybe try bumping that up to some silly number like 20% and work your way down to normalcy until you lose the desired effect? (Assuming that it even has the desired effect! I may be very wrong!) You'll need to exit VM and change the setting, let it go idle (so it's only 1 active core), start VM, and then wait and see if it goes idle again (or if it fails and there's still 3 active cores)

One of the limitations of this system is that it kinda assumes that you're going to be more concerned with making sure it ramps *up*, as opposed to staying down, which kinda makes sense because nobody wants the system to feel laggy, where in your case you're actually trying to avoid the ramping up and force it to be a little laggy, in order to penny-pinch the power usage. So, as you go through the power config settings, you'll notice there are more settings to make it go 'up' than 'down'... But, if you tweak it just right, you should, in theory, be able to get it to stay down until the point that suits your needs, and then quickly ramp up like normal, thus overcoming excessive lag.

Speaking of going through that list, not sure if you've noticed but if you hover the mouse cursor over the name of the setting, it will pop up a tooltip that describes in ever-so-slightly more detail what the setting does. Often, these toolytips are more descriptive than the official documentation, so give them a look. Yes, they disappear faster than you can read them. Just move the mouse off the setting and back to make it pop back up.


You may like to test the theory that core parking is actually the trick here. The setting I refer to earlier, to brute-force it, is called 'Processor performance core parking max cores' (yes, I'm sure this time lol). It's a percentage of your total core count, so since you have a 12 core CPU, set that to 8% (or is it 9? It's 100/12 which is 8.3 and there's nothing about this in Microsoft's very spartan 'documentation'. Should we round up? or down? what if we set it to 1%? Will it try to park them all by rounding to the nearest, or be sane and round up to one core? Who knows.... Try them all and see!) and it should limit you to a maximum of 1 unparked core, ie, it'll park all but one core. Hopefully, that should behave the same when VM is running, as it does when it's not. Obviously, you wouldn't want to leave it that way, because you've just forced your PC to be a full-time single core CPU. It's also entirely likely that windows will try to move stuff around, and there will only ever be one unparked core, but that will be a different core each time it moves the threads. It's bad like that (see the above reddit posts). Honestly, you'll have to try it and see.... I would test it for you, but I'm not touching my power plans now that they're actually working XD

Good luck!!

das1996 wrote: Yes on the backup.. Full system imaged before the latest updates were installed, VMB, etc. It'll take 5 min to restore back to previous state.
Pro.
Post Reply