A multithread performance experiment with Rack v1dev & the 0.6.2c rcomian fork experiment2

Some further experimentation this morning because Andrew (@vortico) has released a v1dev version with framerate limiting: Rack v1 development blog

I built commit: 927c77eca6c337497633763e7c960ec1b7225086 and following the suggestion in the above post edited settings.json for 25 (frames per second), a reduction from the native vsync of iMac’s graphic card & monitor of 60fps.

I was testing the same rcomian fork this time with the menu setting of 30fps. This is not the same as 25fps above but this was a quick and dirty test and not an exhaustive one.

Taking v1dev first, there were some good improvements.

Max VCO-1s on 1 thread went from 12 to 13 (at CPU 98 %)
Max VCO-1s on 2 threads went from 21 to 24 (at CPU 202 %)
Max VCO-1s total went from 22 to 28 (288% for 3 threads, 387% for 4 threads)

With rcomian:

Max VCO-1s on 1 thread remained at 13 (CPU 106%)
Max VCO-1s on 2 threads remained at 22 (CPU 185%)
Max VCO-1s were 22 for 3 threads (200%) and 19 for 4 threads.

This time with rcomian there were no reliable upper outliers. The same numbers came up as before (23, 24, 27 & 28 threads) but this time they had a glitch or two a minute caused by CPU spikes from other processes on the machine. This makes me wonder a little about the first set of results on these upper numbers - maybe I just got lucky there. However, as noted in the write up, with higher numbers of VCO-1s the first glitches you hear are caused by these CPU spikes, showing how little headroom there is at this point to accommodate whatever else your computer might be up to.

A further note/speculation - gains in the number of modules due to GPU limiting is going to be far more variable with different computers and their GPUs. The gains here are not just in terms of getting to use some extra modules, but are, as Andrew stated, about power usage. If you have a thermally compromised machine (a recent MacBookPro being a prime example) then you are unlikely to be very happy with increasing threads because the CPU overhead of doing so is high and heat and fan noise will go up at a worrying rate. Limiting the frame rate of the GPU however brings considerable thermal benefits (and a few extra modules maybe). YMMV.

These results were a fairly quick test but one thing is writ clear in both: there are diminishing returns here. Maybe it will vary with different patches but with this patch there is not a compelling reason to accept the extra power usage of going beyond 2 threads (especially if thermals are an issue).

NB The results above have been edited (apologies, the 1 and 2 thread results got conflated)

1 Like