What's new

Multiprocessor settings in Kontakt 7 and Logic Pro

hummersallad

Active Member
I never seem to understand how to best set this up.
In Kontakt 7 I can select a setting from ”Off” to 16 cores.
In Logic I can select a specific number of cores or ”Automatic”.

Setting Logic to ”Automatic” and Kontakt to "Off" causes Kontakt to choke and stutter.
And when I selecting a specific number of cores in Kontakt I get the following warning:

”Please note that enabling multi-processor support
in both your host and Kontakt can lead to audio-related problems.”

I have also tried 8 cores in Logic and 6 cores in Kontakt (14 out of 16 cores) and that seems to work.
BTW, in that situation, can I allocate and split all 16 cores between Logic and Kontakt?

Are there any recommended general settings for this?
I have read the Apple support pages but they seem to address the settings from a Logic only perspective.

3,6 GHz 8-Core Intel Core i9
MacOS Sonoma 14.4.1
Logic 10.8.1
 
BTW, in that situation, can I allocate and split all 16 cores between Logic and Kontakt?
You actually don't know in that case which cores Logic will take and which ones Kontakt will take, this is entirely up to OS thread scheduler and happens behind the scenes. Try all options and see what works best for your situation, experimentation is key here.
 
You actually don't know in that case which cores Logic will take and which ones Kontakt will take, this is entirely up to OS thread scheduler and happens behind the scenes. Try all options and see what works best for your situation, experimentation is key here.
Thanks! Maybe you can suggest a starting point?
And idea. If I select a certain number of cores in the AU plugin in Logic would that be sort of equivalent to setting the same number in Kontakt standalone?
If so, that would make experimentation much easier and quicker than having to restart Logic repeatedly!
 
There's nothing to suggest, you just need to try it out and see what works best...

If I select a certain number of cores in the AU plugin in Logic would that be sort of equivalent to setting the same number in Kontakt standalone?
No, you have to restart Kontakt after the setting is changed. You don't need to restart Logic, just remove Kontakt instance then load it back again.
 
@hummersallad I was jotting down some thoughts and it turned into an essay while the earlier conversation unfolded. But here it is, in case it's helpful for that rainy day...

Firstly, these settings just determine how many threads each piece of software uses to process audio - if Logic is set to X threads and Kontakt to Y threads, neither is really claiming X or Y cores, despite the labelling. As Mr Dragon says, the OS is free to schedule those threads as it sees fit. It just ends up being a thread per core (or, in your case, per virtual core/hyper-thread) most of the time.

It's definitely a matter of experimenting since it will depend on your particular workload/template, but this is how I would narrow the search:
  1. To start, see how many threads Logic uses when set to "Automatic" (by counting the bars in the performance monitor), and arrange for the total number of threads (Logic + Kontakt) to remain constant.
    • The first thread used by each Kontakt instance should be "borrowed" from Logic, so when Kontakt says "2 cores", read that as "1 extra core" and reduce Logic's thread count by 1; for "3 cores", reduce Logic's thread count by 2, and so on.
  2. If you're using a large number of small Kontakt instances (i.e. single instruments in each), then I'd start with Logic threads = "Automatic"; Kontakt multiprocessing = "Off". Kontakt will still run on multiple cores, since Logic will be free to run those multiple instances in parallel on its own threads. This should be more efficient than taking threads from Logic and giving them to Kontakt, which may not be able to use them on small instances.
    • If Kontakt stutters, then this may not be a lack of CPU. It may be getting more work done, and consuming samples faster than the disk can supply them. If Logic/Kontakt/system performance monitors confirm this, raising the buffer size should help.
  3. If you're using a small number of large Kontakt instances (i.e. multiple instruments in each - more like mini-DAWs than instruments), then I would start with more like a 50/50 split.
  4. At every step, you can check how Logic is using its threads in Logic's performance monitor: if all the bars are lit, then Logic is using the threads it has and I'd be wary about taking any more away. If many bars are routinely unlit, then Logic has threads to spare.
  5. Avoid over-fitting to a particular project's needs. If in doubt, lean towards leaving Logic with as many threads as possible, as this is most flexible for less Kontakt-heavy projects.
  6. Going above the "Automatic" number of total threads usually makes things less reliable (as there's more conflict with other system tasks) and doesn't improve performance (as there's a limit on how many parallel task Logic/Kontakt can find.) But, if you did want to try it, I suggest trying after you've found the Logic vs Kontakt sweet spot.
 
@hummersallad I was jotting down some thoughts and it turned into an essay while the earlier conversation unfolded. But here it is, in case it's helpful for that rainy day...
Big thanks @aldous 😃 I will read your post thoroughly and start experimenting. However, no rain in sight for the next 10 days so I might have to sacrifice a sunny day! :eek:
 
My initial setting with 8 cores in Logic and 6 cores in Kontakt (or actually threads) is working OK in my current project. But I will do some testing as soon as I have time. I was of course hoping for a general setting that would work in most situations but now I know that that is a pipe dream!
 
I was of course hoping for a general setting that would work in most situations but now I know that that is a pipe dream!
I assumed you wanted to optimise, but in doing so I fell into a common trap! I should have started by saying: most of the time, "good enough" is good enough... and for you, 8+6 may well be good enough!

If that setting works, then you could just use it until you have a project where it doesn't work, at which point you can tweak it again. No need for undue sacrifice of vitamin D. :)
 
I assumed you wanted to optimise, but in doing so I fell into a common trap!
Well yes, I absolutely want to optimize and experiment! Just don't have time right now so I had to settle for some temporary and arbitrary setting that is "good enough" right now!
I cannot afford a new Mac with Apple Silicon so I need to squeeze as much power as possible out of my 3,6 GHz 8-Core Intel Core i9.
 
Top Bottom