bgribble/mfp

DSP load seems too high for simple networks

Closed this issue · 3 comments

This may be a result of too much buffer copying in mfpdsp, or a specific processor, or something else.

I am working on an 8-bus 4-aux mixer by building a single channel strip and then dynamically building the mixer with @clonescope. A mixer channel strip has about 50 DSP processors in its network, including:

  • 14 [outlet~]
  • 15 [*~]
  • 7 [slew~]
  • 4 [line~]
  • 1 [ampl~]
  • 1 [snap~ 100]

A single instance of the channel strip takes up about 6.5% DSP at 88k sample rate on my overpowered laptop. That seems excessive.

This is not quite as bad as I thought... a simple patch including 8 channel strips takes up about 22% of CPU. Still need to find out why it's this high (I would expect just a few %, it's not doing anything but MAC and copy of data). I am suspicious of the [ampl~] --> [snap~] team (for displaying signal levels on a meter)

Also:

cpufreq-set -g performance

A lot of what I was seeing was the CPUs being throttled down to starvation, making the CPU load jump. Derp.

PR #265 dropped the 8-channel mixer down to about 10% CPU on my machine ([slew~] was the biggest culprit). I'll close this for now.