CPU Advice

Hello, I’m creating rather complex GP files that are meant to be triggered by three different midi devices and two audio ins simultaneously. Each rackspace typically hovers around 20-30% in GP’s CPU monitor without me even triggering the rackspace with audio or MIDI.

What is a comfortable (safe) CPU range I should be shooting for?

thnx

Under 50% when playing and you should be safe when using patch persist

And if I wanted to improve my computer to better handle CPU load, what would I do? I’ve followed the optimization guide, I’m wondering about hardware improvements.

What is your sample rate and buffer size? What audio interface are you using? Are you on Windows or Mac?

sample rate- 44.1
Block rate- 256 (would prefer 128 if I could afford the CPU)
Interface- PreSonus 1824C
Windows 11

Assuming you also did implement the energy settings (which make a huge difference), you can’t do much about it. Your sample rate and buffer size are not out of the ordinary, so you can’t improve (much) on that. I don’t know what system you use (laptop or desktop). In a desktop you might be able to upgrade the CPU, but that doesn’t come free.

If you’re foreseeing a heavier load, you could think about using multiple GP instances. Drawback is the increased complexity and it’s also not always possible, depending on the use case and design.

Another thing you might consider is replacing plugins that are CPU hungry with others that are more efficient. For example some plugins doing compression and/or limiting can be using more CPU than useful, while others, although less fancy, use a lot less. For live performance, most of the time the audience is not going to notice the difference in quality (if any). But I appreciate the fact that you don’t like to replace the plugins that are ‘the core’ of your design and/or sound.

Some plugins do have quality settings. You could lower these, as long you’re happy with the results. Oversampling in plugins is also something to look at. Sometimes oversampling is very useful, sometimes it’s a complete waste of CPU.

My two cents

2 Likes

Multiple instances works a charm for me… I have 6 running on separate cores. Yes it gets a bit more complicated, but there’s a part of me that loves that! :sweat_smile:

4 Likes

Had band practice the other day and our more complicated songs were maxing out my CPU. So, I think I’m going to split each song into 2 or more instances. When using multiple instances, do they automatically assign to different cores? Or does they somehow need to be assigned?

If I have a 4 core CPU, is it safe to use for instances?

Specs:

  • I’m running Windows 11
  • I have a 4 core CPU- Intel(R) Core™ i7-10610U CPU @ 1.80GHz 2.30 GHz

Each instance will run on its own core, mostly because that’s what Windows will determine makes the most sense from an efficiency and usage standpoint.

It can be helpful to think of it more as you’re giving different instrument groups and/or plugins separate instances, and then the songs reference those instances accordingly. You will, of course, base that on what your CPU demands are but eventually you’ll come up with an architecture that makes sense for you. You’ll be able to get a lot more out of your machine this way.

Thanks for the encouragement. Currently, each of my songs use one Rackspace, and a few variations for each song part. I’m going to split each song into 3 instances, The first will contain the two midi keyboard ins, the second will have my vocal processing, the third will be the midi drum pad.

I started the process of opening identical instances of the GP file, gave sep names, and began to delete all unecessary plugins. In my new vocal instance, I’ve deleted 80-90% of the plugins that used to be there, but am surprised to see that the CPU is still hovering around 30-40%. How could this be, shouldnt i expect a huge dip in CPU usage?

The CPU % that you see in each instance is for that instance alone.
If you bypass all the plugins in that vocal instance, it should drop back down to near zero. Then as you unbypass the plugins one at a time, you’ll be able to see which are the most demanding.

Is there a way for me to check which instance is assigned to which core?

If you go to Task Manager > Performance, right click on CPU graph. You can change the graph to Logical Processors, and then you can see the performance of each core. Load one instance at a time and it should become obvious which core is being used for each.

1 Like

That “U” in the cpu name hurts me!

I know this is a couple of weeks old now, so I’m hoping you have a much smoother setup which, if it ain’t broke, you probablly shouldn’t fix… However…

As an alternative to relinquishing too much control to the windows scheduler, I run all 6 instances of GP from .bat files with a script that sets the instances core affinity.

This is my “Everything, everywhere, all at once” improvisational setup. When I’m doing a standard set list with rackspaces per song, I don’t use anything like as many!!

The reason for this is that I’ve found on my system, that leaving windows to decide affinity can result in GP being put right back on the cores windows is using for all the background processes that I haven’t managed to kill or suppress!! So to be able to avoid those cores alltogether or at least assign ‘lite’ only GP tasks to them, is quite useful in forcing a more repeatable and therefore reliable setup.

I recon I’ve been able to eek out a few percent more cpu headroom, which is worth more to me than raw power. Whether it’s worth it in your case is up to you!

Also, some plugins manage cores differently regardless of host affinity, and in my experience most don’t allow you to fiddle! Kontact however is one example of one that does. So some trial and error is required to get the most stable CPU split. Or… just let windows handle it!

This is the .bat script for my second instance of GP:

cd "C:\Program Files\Gig Performer 5"
start /affinity c GigPerformer5.exe -in=“CPU2-3”

wmic process where name=“GigPerformer5.exe” CALL setpriority “high”

“c” is a hex value that referes to the specific core(s) and “CPU2-3” referes to the name of my second GP instance. I also force it to run at high priority, though that may be redundant as I thought I saw that GP does that anyway.

Just my two pence.

Where is this engery setting you are talking?

These are in the Windows Optimization Guide: