Sorry, it seems I misunderstand what you mean in your example above. If we substitute plugin A for the synth, B for the delay and C for the reverb in my example, then I don't understand how the cpu would be able to split these 3 plugins to be processed on different cores and make the processing finishing faster than if they were all processed by one core?Liero wrote: ↑Tue Jul 16, 2019 10:14 amBecause processes are (most of the time and depending on the plugin) threaded strictly per track.
To put it slightly simplified:
One track that has plugin A, B and C on it won't process plugin A on core 1, plugin B on core 2 and plugin C on core 3. If it did, a slight latency would be created as data would have to be moved from one core to another. Instead, all the plugins are processed by the same core. Only when another, separate track is created, can the processor allocate a new core for the job, as the data it's having to process isn't dependent on any other processes.
Now, when plugin A, B and C _cannot_ be processed by core 1 alone, because the workload is too heavy, the processing has to be partly offloaded to another core, and this is where the interconnects get taxed, and some processors are worse at this than others. The 3900X that has a dual chiplet design in particular is probably bad at this, when the data needs to be moved from one chiplet to the other.
So when DAWbench tests with a few light plugins per track only, it creates a very optimal situation for the processor, as it allows processing to be threaded and scaled very easily. This doesn't always represent real-world scenarios very well, especially in DAW's like Bitwig, that have potentially many levels of nesting on one track -- meaning that very much processing has to be done on basically one thread.
If the synth takes 40% processing power, the delay 25% and the reverb 50% this totals 115% of available cpu power. Since these plugins have to be processed serially, the processing can't be done faster by utilising multiple cores in this scenario.
If a track like this would be used in DAW Bench then any cpu that could not handle one track would fail on one track, even if the cpu has 16 cores. Would that test be useful? Or if you create a track that uses 40% of an Intel Core i9-9900K you would likely get 16 tracks as a result of this in DAW Bench. To improve that score you would need either a cpu with similar single core performance but more cores, in which case you would get a score of 2 additional tracks per core, or you would need a cpu with the same number of cores but which has a single core performance of possibly 30% or more to then get an additional 8 tracks. For a cpu of the same number of cores you would not see any other result in between 16 and 24 tracks. So I don't see how this test would be very meaningful in a generic DAW Bench test.