Logic Pro X CPU Optimization | 2021 | M1 System Tips | Run more Plugins!
Mark Payne Mark Payne
13.8K subscribers
141,212 views
0

 Published On Premiered Jan 5, 2021

Sections

0:00 - Intro
1:52 - Processor Affinity
4:17 - Apple M1 CPU Clusters
9:03 - Logic CPU Benchmark
14:19 - Logic CPU Stress Test
19:13 - Perfecting Audio Settings
30:04 - Conclusions

I Intro

You want to run more plugins, master your tracks in on the fly and have logic perform without interrupts or system overloads.

How do I tune Audio Settings to get the best out of my system?

01 How macOS and operating systems in general handle multiple threads and assign workload to multiple CPU Cores. We will discuss Processor Affinity.

02 CPU load demonstrations on an 8 core Apple Macbook Pro M1 system and show how to measure the Firestorm and Icestorm CPU Loads.

03 Benchmark a real audio session for CPU load with standard Logic Settings

04 Overload the system by adding hungry plugins that chew out the cores.

05 Tune Logic settings to get more out of our system and run a session that would otherwise fail.

06 Conclude and summarise how to get the best out of Logic for complex session playback. Talk about the relative performance of the Macbook Pro, Mac Mini and Macbook Air versions of the M1 system for Logic

Notes

Program threads are allocated to CPU cores by MacOs

1. Affinity groups allow pooling of threads that would want to share L2 Cache for code and data interaction without cache misses and subsequent memory management churn.

2. Assigning application threads to different affinity groups will suggest to the OS that they could/should be allocated to different cores if available. This is load spreading and is managed by the MacOS scheduler depending on available resources.

The Thread Affinity API is introduced here:

https://developer.apple.com/library/a...

02 8 Core Demonstration on M1 SOC System

M1 High Performance group (P cluster) is made of 4 “Firestorm” Cores and maxes out at around 14W for the group. The efficiency group (E Cluster) is made from 4 Icestorm Cores running 1/4 of the L1 and L2 cache sizes when compared to the Firestorm Cores and with lower maximum clock speeds. The Icestorm E-Cluster has a maximum power drain of under 1.5W.

M1 machines share L2 cache within the cluster (12MB for the P-Cluster) so the overhead of cache management when migrating processes between different cores should be minimised.

Overall CPU util is based on the idea that all cores are equal. Which they are not. The “yes hog” has dominated the High-Power cores but we will report this as 50% util. We have only played 50% of the cards in our hand but we have gone in hard early the strength we have left in hand is weaker. Its 50% of the cards but not 50% of the power we had originally.

03 Benchmarking real audio with Logic

There is no one-to-one obvious relationship between the Logic CPU bars and which core will eventually run the affinity set. I have looked for one. Feel free to comment if you have more insight.

Clearly in the default config of only using the high-power cores we are limiting to 4 affinity sets.

The CPU bars could be viewed as the “intention” Logic has about spreading the load. What happens beneath is down to MacOs.

05 Tuning for better Logic Performance

A. Increasing IO Buffer
size has little effect on playback performance. In live multitrack capture I max it to 1024 (Samples). This has no measurable effect on logic size in memory. 1024 samples of 24 bit audio is 1024 * 24 / 8 = approx. 3KByte per track .. Nothing.

B. Process Buffer Range

Increases the size of Logic in memory 4.18 GB (small) 4.36 GB (large) say 200MB in my case.
Performance load measures are not obvious here but will be more so when system is at limit with all cores in play.

C. Mutithreading Option.

Default logic behaviour is to hide some thread headroom for the overhead of recording live tracks and/or playing live input to software instruments. The Performance monitor bars are hence showing something slightly less than Logics full ability to apply load to the system.

In particular I am seeing better logic thread headroom when BOTH the process buffer range is increased AND the multithreading option is set to Playback Tracks Only.

06 Conclusions

Logic limitations are based on peaks in mix engine CPU utilisation and have been shown to be related to dynamic audio routing. Since routing may be turned on an off through automation, Logic CPU load in real time is not constant and may fluctuate.

M1 Mac Mini has active cooling also and it doing to be on a par with Macbook Pro M1. MacBook Air M1 will perform well with Logic as CPU requirements will not have the highest of thermal profiles.

Plugin load and performance in Logic is made better by the allowing all Cores to process load via the Processing Threads option. Further improve CPU headroom and performance by setting the Process Buffer Range to Large and the Multithreading option to Playback Tracks if your session is in mixdown only.

show more

Share/Embed