Avid Pro Audio Community

Avid Pro Audio Community

How to Join & Post  •  Community Terms of Use  •  Help Us Help You

Knowledge Base Search  •  Community Search  •  Learn & Support


Avid Home Page

Go Back   Avid Pro Audio Community > Pro Tools Software > Windows

Reply
 
Thread Tools Search this Thread Display Modes
  #1  
Old 03-01-2018, 04:06 AM
athlon64 athlon64 is offline
Member
 
Join Date: Feb 2018
Location: Croatia
Posts: 21
Default Protools 12.XX performance optimization script and important tips!

Hello.

So after buying a new lenovo P50 i started doing the classical list of windows optimizations to make it run as good as possible.
However, no matter what i did i found some weird behavoiur considering the Protools System Usage meters. It's the usuall type of problem. Cpu usage gets random spikes, not directly linked to actuall CPU usage in task manager and protools then sometimes stops with the "ran out of cpu power" message.

Of course, lower buffer sizes and more Cpu hogging plugins you have, the more often that problem happens.
So, since IT is also my profession. I decided to try tracking these problems deeper since they look to me like bad optimization.

In the process i found a lot of usefull info and my friend created something that might help many of you with low buffer recording. So keep reading :)

1.
Real CPU usage VS protools CPU usage:

There is allredy a subject related to this problem but as you all know, the protools CPU usage meter isn't the actual CPU usage for your computer. I haven't really realized what are the factors affecting the system usage meter in protools but i have discovered something:

The lower the buffer is, the higher the chance that you will get random CPU usage spikes that are not related to the actual amount of CPU power that you got remaining. Some people would link this with your computers high DPC latencies which would basically mean that sometimes protools wants instantaneous acess to the CPU but it needs to wait milisecond or two because some other process or driver has the priority.

However, my lenovo P50 at first while testing it showed some drivers spike over 1ms but i have sucessfully solved this by disabling GPU clock speed changing and got my computer to have DPC latencies under 200-300 uS while protools is running, still i would have random CPU usage spikes in the System meter.

So i don't think that DPC latencies that are not very low necessarily mean you will have real time audio problems. But i'm not sure. For an example if i'm surfing online and maybe watching 4K video on youtube, the drivers for my NIC controller (ndis.sys) will sometimes (every 10 minutes or so) hit the max execution time of 2-3ms in latency mon. But that never causes audio crackle or any problems at all.

The solution for this problem lies in the windows task manager but i will write about this at the end of the subject.

2.
How to mix with as many plugins as possible but not overload the CPU.

So all of the problems from segment 1 happen mostly when you try reducing the your buffer to a low setting like 64 if you want to track and have live monitoring. However when you are mixing and want as much CPU power as possible we all mostly rise our buffer settings to 1024.

These high settings eliminate most of the random cpu spikes and the protools system usage meter becomes more closely related to the actuall CPU usage in task manager.

Unless you have problematic plugin chains.
So how this works:

If you have a multicore CPU, protools will run all of the plugins in the same signal chain on the same core. If any of the cores gets overloaded for a moment, protools will stop with the "ran out of power message"

This means that you if you have a plugin using 60% on one of your CPU cores. And you have an 8-core CPU (or 4+4 hyperthreaded) you can feel free to run 8 of these plugins in real time on different tracks (in different signal chains). But if you try inserting 2 of those plugins in the same signal chain, no-go, one core gets overloaded, you get a ran out of cpu power error.

The two biggest CPU hogs that i have in my plugins list and use a lot are:
Izotope ozone 8. So if you use this plugin try not to load the entire "ozone 8" instance if you need just the imager or just the EQ. You can load just the imager for an example and it works well while using less CPU power.

However ozone 8 is not that bad if you have a powerfull cpu and are running a 1024 buffer. I can run about 5 or 6 of them in a single signal chain with an i7 6820HQ.

The, by far, worst CPU hog i have encountered is the Abbey roads plate reverb
in a 96/24 session i can't run more then 5-6 of them even when they are distributed well over different signal chains.
So since this reverb plugin sounds amazing. If you want to use it try to put it only on it's own Aux channel and then just send everything you want to it. That way you may not need more then one in realtime.

The conlusion of this segment is: If you are planning on mixing 100 channels with many plugins distributed well over them, you might be better with a higher core count cpu that might not be clocked that high (like an intel xeon for an example).
If you are going to be running the usuall band session with maybe 30 tracks, and some possibly CPU intensive signal chains. You are better of with a higher clocked CPU with less cores. Because rising the clocks speeds directly reduces CPU usage "per core" in protools system usage meter (i tested this).

3. A partial solution

So far we have concluded that if you are running a high buffer you should only have "ran out of CPU power" problems if you actually overload the cpu with a bad signal chain.

However if we go back to the "recording with a buffer od 64" problem. Many users will be unable to record with a buffer this low even with a very powerfull system. By default, on my P50, just setting the buffer to 64 with no tracks and plugins at all, rises CPU usage over 50% with many random spikes.
And no, by default i can't record tracks at a buffer this low for a long time.

The solution is:
After protools starts. You open task manager in windows, find protools in "processes". Expand it, right click it and click "go to details".
After you see the process in the "details" window. You right click it and you will see "set priority" and "set affinity" options.

If you for an example have a 4 core intel i7 with hyperthreading. Windows will see this as an 8-core processor. In core affinity settings for protools, you have to manually disable protools from using 2 out of 8 cores that you have. You can make it use even less cores, it will work. But for me this was the best balance.
After you have done that you go to "set priority" and set that to "high".

You have now basically given protools 6 out of 8 cores just for itself and no other software or drivers on your PC will interfere with it because they have the remaining two cores for themselves.

For me, after i do this, the CPU usage in the system meter skyrockets down to 1-2% and i can literally record 200 tracks with a 64 buffer and have live monitoring with no problems at all.
I can even do this while running 10-15 basic plugins (eq's compressors and gates"). I tried this out the last week when i was tracking guitars and bass for a band after i tracked drums. So the guitarist had mixed drums, with plugins, going into his headphones, together with his guitar, all going trough protools with a buffer of 64.

4. The script to make this fast

So since this little optimization helped me a lot i made my friend help me make a powershell script that will make this automatic for all of us. The trick is, this doesn't work if you have any kind of program or shortcut that will set Protools CPU affinity and priority when protools is starting. This won't work. Protools first has to start fully, then you have to change these settings.

So this script works really simply. You start protools, after it started, you just doubleclick the script. You can keep it anywhere you want. On the desktop for an example. It sets both the priority and affinity settings automaticaly. I think you need to run it as administrator so you can set it to be ran as administrator automaticaly to make things simple.

There is just one thing that you need to take care about. If you have an 8-core processor the script will work for you right away. 8 core xeon, 4 core i7 with hyperthreading. You are good. If you have a processor with a different number of cores you will have to change one number in the script. The instructions for this are in the script. You just open it with notepad and you will see everything. It's really simple.

Here is the script. I'm personally running protools 12.5.1 but it should work for other versions.

https://drive.google.com/open?id=16g...if5GAt6WvQhaRP


Please write about how this has helped you.

Last edited by athlon64; 03-02-2018 at 02:27 AM.
Reply With Quote
  #2  
Old 03-01-2018, 04:17 PM
Ben Jenssen's Avatar
Ben Jenssen Ben Jenssen is offline
Member
 
Join Date: May 2000
Location: Oslo
Posts: 5,260
Default Re: Protools 12.XX performance optimization script and important tips!

Hi, Athlon64. Thanks for sharing this. Although I know very little about Windows, your findings seem to me to make very much sense.

Although I'm pretty much retired now, I still have some stuff from my old studio left, including my old mac pro 3.1 w/PT10. 4 cores 2.8 xeon. Still runs pretty good.

It must have been almost ten years ago now, maybe more, that I picked up the advise to set PT to use one core less than the max. That solves the cpu peak problem, and I kept it like that ever since.

I'm pretty shure this is part of the PT optimization guides, at least for mac, but I haven't checked.

Just thought I'd mention it.

Good work.
__________________
Mac mini M2 16GB RAM macOS 13.4.1. PT Studio 2023.6.
Topping E30 II DAC, Dynaudio BM6, 2 x Artist Mix, SSL UC1, Control on iPad.
Reply With Quote
  #3  
Old 03-02-2018, 01:00 AM
TNM TNM is offline
Member
 
Join Date: Dec 2001
Location: Melbourne, Australia
Posts: 1,568
Default Re: Protools 12.XX performance optimization script and important tips!

I'm going to try x code on mac to hard disable one of my cpu cores so pro tools only sees 3 out of 4, and see if that improves the 64 buffer issues.

OP's post is right in line with my findings on my windows laptop which has a DPC latency consistently of 20us with a peak of 33.(because windows 7 i am simply using the thesycon utility).

Power is on high and i have also used throttlestop to disable all intel power states.. processors is permanently at 3ghz (quad i7) without fluctuating.

anything under 128 buffer, just like on my macs, causes all threads to spike like crazy, even for just one track.

Thanks for the info, i will try the cpu affinity trick on windows, and I will try using xcode on mac.. if disabling an actual cpu core fixes it, so i can work at 64 or even 32, it will be well worth it.

Will report back when tried. :)
__________________
- Intel 14900K/NzXt Kraken Elite/64GB Kingston DDR5 6000 mhz (32x2)/ Asus Pro Art Z790/Asus 4090/Win 11 Pro 23H2/UAD Apollo 8 x2 w TBolt 3 card u/g/UAD Twin X.
Reply With Quote
  #4  
Old 03-02-2018, 02:27 AM
athlon64 athlon64 is offline
Member
 
Join Date: Feb 2018
Location: Croatia
Posts: 21
Default Re: Protools 12.XX performance optimization script and important tips!

I don't think it's a part of any optimization guide since the core affinity setting doesn't exist in protools since protools 10 or 11 i think. I really don't know why they removed it. So i tought a script like the one above would make it easier then.

I can't tell you about OSX because i find windows to be a much better environment for myself. Even when talking about recording and mixing. But it's very important that you buy a decent windows machine well suited for the job.

But of course there is a very high chance that this is going to work on a mac.

Also from personal testing. Things like disabling turbo boost, C-states or even worse, hyperthreading. Do not seem to make any difference at all to me.
I made a high performance windows profile, protools selects it automaticaly when starting so my CPU won't downclock.
But doing anything else like disabling turbo boost and hyperthreading would only reduce my performance since with no turbo boost, you would basically give protools a CPU with lower clock speeds. And once you start reducing clocks speeds, the CPU usage rises.
Also hyperthreading seems to help with a better balanced CPU usage in protools.

So i think that many of these optimizations tips might be myths. I'm not sure about this but that's what my findings tell me. In short terms, i did the entire list of windows optimizations from the Avid site and they made no difference at all.

So my advice would be, if you want to lock your cpu clocks, only do id if you are on desktop and can lock it at the highest turbo boost speed or even overclock it above that. If you just disable c-states and turbo boost it will run significantly slower then it could.
Reply With Quote
  #5  
Old 03-02-2018, 04:36 AM
TNM TNM is offline
Member
 
Join Date: Dec 2001
Location: Melbourne, Australia
Posts: 1,568
Default Re: Protools 12.XX performance optimization script and important tips!

FWIW, since my post i have tried every optimisation i can think of on mac regarding number of CPU's.

I have disabled hyperthreading to have only the 4 physical cores, and i even disabled one of those cores so pro tools would only see three.

I then enabled hyper threading again and went down from 8 to 2 cores one by one, trying pro tools in between each change.

There is absolutely nothing I can do to improve performance at 32 and 64 buffer.. I can't even arm one audio track at 32 buffer and put a single effect, even a Dverb. I *can* do that at 64 samples, but just one dverb, and cpu is going into red all the time.

This is a pro tools issue, it's a buffering issue of some kind..

because the real cpu being used when pro tools is overloading, is nothing, it's showing 10% per core in istat/activity meter.. barely above what it shows just using the bare os.

So pro tools simply can't get the info to and back from the audio driver in time or something like that.

I then re tested Vi's.. I did the codex test.. i disabled turbo, enabled turbo, changed number of cores etc.. with default patch pro tools can not play codex if the VI track is armed, trying to play one single 3 note chord.

At 128 armed, pro tools is using similar "buffer time" (let's call the the pro tools performance meter, vs logic meter or cubase meter), that those two daws are at 32 buffer..At 64 samples, logic/Cubase perform better for armed tracks than PT does at 128.. and this is only at 44.1k sample rate! It's only when pro tools does not have any tracks armed for monitoring that it spreads the load perfectly (and it does such a really amazing job in that case for mixing down).

So it's good to read that optimisations can be done on windows to alleviate the spiking, but as far as I can tell, nothing can be done on sierra and pro tools 2018.1

It's totally up to avid to fix this once and for all.

Just for a laugh, i will try with only one core enabled and see what happens.

Edit: pro tools will only launch with minimum 2 logical cores.
__________________
- Intel 14900K/NzXt Kraken Elite/64GB Kingston DDR5 6000 mhz (32x2)/ Asus Pro Art Z790/Asus 4090/Win 11 Pro 23H2/UAD Apollo 8 x2 w TBolt 3 card u/g/UAD Twin X.

Last edited by TNM; 03-02-2018 at 04:48 AM.
Reply With Quote
  #6  
Old 03-02-2018, 05:30 AM
athlon64 athlon64 is offline
Member
 
Join Date: Feb 2018
Location: Croatia
Posts: 21
Default Re: Protools 12.XX performance optimization script and important tips!

Quote:
Originally Posted by TNM View Post
FWIW, since my post i have tried every optimisation i can think of on mac regarding number of CPU's.

I have disabled hyperthreading to have only the 4 physical cores, and i even disabled one of those cores so pro tools would only see three.

I then enabled hyper threading again and went down from 8 to 2 cores one by one, trying pro tools in between each change.

There is absolutely nothing I can do to improve performance at 32 and 64 buffer.. I can't even arm one audio track at 32 buffer and put a single effect, even a Dverb. I *can* do that at 64 samples, but just one dverb, and cpu is going into red all the time.

This is a pro tools issue, it's a buffering issue of some kind..

because the real cpu being used when pro tools is overloading, is nothing, it's showing 10% per core in istat/activity meter.. barely above what it shows just using the bare os.

So pro tools simply can't get the info to and back from the audio driver in time or something like that.

I then re tested Vi's.. I did the codex test.. i disabled turbo, enabled turbo, changed number of cores etc.. with default patch pro tools can not play codex if the VI track is armed, trying to play one single 3 note chord.

At 128 armed, pro tools is using similar "buffer time" (let's call the the pro tools performance meter, vs logic meter or cubase meter), that those two daws are at 32 buffer..At 64 samples, logic/Cubase perform better for armed tracks than PT does at 128.. and this is only at 44.1k sample rate! It's only when pro tools does not have any tracks armed for monitoring that it spreads the load perfectly (and it does such a really amazing job in that case for mixing down).

So it's good to read that optimisations can be done on windows to alleviate the spiking, but as far as I can tell, nothing can be done on sierra and pro tools 2018.1

It's totally up to avid to fix this once and for all.

Just for a laugh, i will try with only one core enabled and see what happens.

Edit: pro tools will only launch with minimum 2 logical cores.

I replied to your upper message but i don't know why it hasn't shown up yet. So i will reply again.

My lenovo P50 also can't go down to 32. Yes, it's either some kind of an internal protools issue, or the soundcard drivers issue, i'm not sure. But at a buffer of 64 nobody usually has any latency problems. I couldn't hear them myself in a 48khz session. At 64 with this optimization i can do some quiet serious recording, even with some plugins.

In protools 12.5 on windows there is no internal option to disable the usage of some cores. That's gone since protools 10 i think. That's why i wanted this script.

Personally, the entire list of recomended protools optimization by AVID. Does not really do much difference at all. Disabling hyperthreading, C-states and turbo boost only makes performance worse because by reducing clock speeds the cpu usage jumps.

So if you want to do things like these, then lock your CPU into the highest possible clock speeds. Don't just turn off turbo boost because then it will run clocked lower then it could.

I keep both hyperthreading, C-states and turbo boost on. Because turning them off makes no difference at all. I even believe that some of these optimization tips are myths and they seem to work because of wrong reasons.

On windows at least. Letting protools run on 6/8 cores for an example drasticaly helps, and getting even better performance after you have done that doesn't really seem possible because it's choked by either hardware or bad drivers or not well optimized internal Protools code.

And yes, i can't speak for OSX because personaly i find windows to be a much better environment for me. Even for DAW recording and mixing. It can be stable and give amazing performance. So i really don't see the point in forcing OSX usage in professional audio applications like running a studio.

But then again, that's maybe just personal preference
Reply With Quote
  #7  
Old 03-02-2018, 07:48 AM
YYR123's Avatar
YYR123 YYR123 is offline
Member
 
Join Date: Dec 2010
Location: Austin TX
Posts: 13,737
Default Re: Protools 12.XX performance optimization script and important tips!

Quote:
Originally Posted by athlon64 View Post
The solution is:
After protools starts. You open task manager in windows, find protools in "processes". Expand it, right click it and click "go to details".
After you see the process in the "details" window. You right click it and you will see "set priority" and "set affinity" options.......

............You have now basically given protools 6 out of 8 cores just for itself and no other software or drivers on your PC will interfere with it because they have the remaining two cores for themselves.

For me, after i do this, the CPU usage in the system meter skyrockets down to 1-2% and i can literally record 200 tracks with a 64 buffer and have live monitoring with no problems at all.
Wow this is neat. I haven't tried it but this is pretty amazing that you saw such a difference with a small quick change.

Yes this used to be part of the PT optimizations but since PT12 came out you can't pick how many cores you want to use to run PT.

I think I will play around with this and see how it works........I also want to inspect that bat file and see what it's doing.
__________________
Daniel
HDX - PT12.5.1 - HD I/O 16x8x8
Win10-Pro (v1709)- 6 Core i7-6850k - ASUS X99 Deluxe ii
D-Command Main Unit - 'Ole Blue


http://www.sknoteaudio.com/ plugins rock and are affordable.
Reply With Quote
  #8  
Old 03-02-2018, 09:12 AM
guitardom guitardom is offline
Member
 
Join Date: May 2004
Location: New Mexico
Posts: 6,807
Default Re: Protools 12.XX performance optimization script and important tips!

Quote:
Originally Posted by YYR123 View Post
Wow this is neat. I haven't tried it but this is pretty amazing that you saw such a difference with a small quick change.

Yes this used to be part of the PT optimizations but since PT12 came out you can't pick how many cores you want to use to run PT.

I think I will play around with this and see how it works........I also want to inspect that bat file and see what it's doing.
You normally just do it through the taskmanager > Details > right click the service and "set affinity" and you can just checkmark the cores you want it to use. You can also set App priority levels there. I have never tried it, but you could set Pro Tools as "high" or "real time" priority for instance. I may have a look at that sometime now that I think about it.....
__________________

pro-tools-pc.com


TRASHER Pro Tools Utility(updated 3-6-18)

HD Native, Avid 16x16, Eleven Rack, Focusrite Clarett 8preX, UA Quad Apollo TB.

Intel I7 9900k
Win 10
Reply With Quote
  #9  
Old 03-02-2018, 11:00 AM
athlon64 athlon64 is offline
Member
 
Join Date: Feb 2018
Location: Croatia
Posts: 21
Default Re: Protools 12.XX performance optimization script and important tips!

Quote:
Originally Posted by YYR123 View Post
Wow this is neat. I haven't tried it but this is pretty amazing that you saw such a difference with a small quick change.

Yes this used to be part of the PT optimizations but since PT12 came out you can't pick how many cores you want to use to run PT.

I think I will play around with this and see how it works........I also want to inspect that bat file and see what it's doing.
Just open it with notepad or notepad++. It's quiet easy to understand what it's doing

EDIT: I have written replies to all of the above posts but i got the message that the administrator first has to approve them and that hasn't happend for the last 24 hours at least.
Reply With Quote
  #10  
Old 03-02-2018, 11:01 AM
athlon64 athlon64 is offline
Member
 
Join Date: Feb 2018
Location: Croatia
Posts: 21
Default Re: Protools 12.XX performance optimization script and important tips!

Quote:
Originally Posted by TNM View Post
FWIW, since my post i have tried every optimisation i can think of on mac regarding number of CPU's.

I have disabled hyperthreading to have only the 4 physical cores, and i even disabled one of those cores so pro tools would only see three.

I then enabled hyper threading again and went down from 8 to 2 cores one by one, trying pro tools in between each change.

There is absolutely nothing I can do to improve performance at 32 and 64 buffer.. I can't even arm one audio track at 32 buffer and put a single effect, even a Dverb. I *can* do that at 64 samples, but just one dverb, and cpu is going into red all the time.

This is a pro tools issue, it's a buffering issue of some kind..

because the real cpu being used when pro tools is overloading, is nothing, it's showing 10% per core in istat/activity meter.. barely above what it shows just using the bare os.

So pro tools simply can't get the info to and back from the audio driver in time or something like that.

I then re tested Vi's.. I did the codex test.. i disabled turbo, enabled turbo, changed number of cores etc.. with default patch pro tools can not play codex if the VI track is armed, trying to play one single 3 note chord.

At 128 armed, pro tools is using similar "buffer time" (let's call the the pro tools performance meter, vs logic meter or cubase meter), that those two daws are at 32 buffer..At 64 samples, logic/Cubase perform better for armed tracks than PT does at 128.. and this is only at 44.1k sample rate! It's only when pro tools does not have any tracks armed for monitoring that it spreads the load perfectly (and it does such a really amazing job in that case for mixing down).

So it's good to read that optimisations can be done on windows to alleviate the spiking, but as far as I can tell, nothing can be done on sierra and pro tools 2018.1

It's totally up to avid to fix this once and for all.

Just for a laugh, i will try with only one core enabled and see what happens.

Edit: pro tools will only launch with minimum 2 logical cores.

In protools 12.5 on windows there is no internal option to disable the usage of some cores. That's gone since protools 10 i think. That's why i wanted this script.

Personally, the entire list of recomended protools optimization by AVID. Does not really do much difference at all. Disabling hyperthreading, C-states and turbo boost only makes performance worse because by reducing clock speeds the cpu usage jumps.

So if you want to do things like these, then lock your CPU into the highest possible clock speeds. Don't just turn off turbo boost because then it will run clocked lower then it could.

I keep both hyperthreading, C-states and turbo boost on. Because turning them off makes no difference at all. I even believe that some of these optimization tips are myths and they seem to work because of wrong reasons.

On windows at least. Letting protools run on 6/8 cores for an example drasticaly helps, and getting even better performance after you have done that doesn't really seem possible because it's choked by either hardware or bad drivers or not well optimized internal Protools code.

And yes, i can't speak for OSX because personaly i find windows to be a much better environment for me. Even for DAW recording and mixing. It can be stable and give amazing performance. So i really don't see the point in forcing OSX usage in professional audio applications like running a studio.

But then again, that's maybe just personal preference
Reply With Quote
Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Pro Tools Performance Optimization? PatriotsBiker Pro Tools 10 6 06-01-2012 08:26 PM
PTLE 8 optimization tips Hotcrazyfruit 003, Mbox 2, Digi 002, original Mbox, Digi 001 (Win) 1 03-31-2010 03:59 PM
further os x optimization tips? Matt Chan Post - Surround - Video 5 02-10-2005 08:15 AM
Optimization tips for OS X & 002? jtarbutn 003, Mbox 2, Digi 002, original Mbox, Digi 001 (Mac) 6 04-02-2004 09:02 AM
OSX equivalent to Extensions in OS9 - OSX Optimization tips andrej770 Pro Tools TDM Systems (Mac) 8 04-07-2003 09:17 AM


All times are GMT -7. The time now is 11:44 AM.


Powered by: vBulletin, Copyright ©2000 - 2008, Jelsoft Enterprises Limited. Forum Hosted By: URLJet.com