[LAD] "enhanced event port" LV2 extension proposal

David Olofson david at olofson.net
Wed Nov 28 22:12:47 UTC 2007


On Wednesday 28 November 2007, Dave Robillard wrote:
[...]
> > Obviously, this effect is less visible with non-trivial plugins -
> > but even how many plugins in a "normal" graph are actually CPU
> > bound? In my experience, the effect is very pronounced (several
> > times higher CPU load with 512 samples/buffer than with 32) when
> > using a bunch of sampleplayer voices (cubic interpolation +
> > oversampling) and some simple effects. You have to do some pretty
> > serious processing to go CPU bound on a modern PC...
> 
> Not really true for linear scans through memory, which reading
> plugin buffers usually is.  This is the ideal cache situation, and
> you can definitely get full utilization sweeping through things much
> larger than the cache this way (this is exactly what the cache is
> designed to do, and it does it well; try it).

I did, and that's what I'm drawing my conclusions from. ;-)

No cache controller logic in the world can avoid the bottleneck that 
is memory bandwidth. If your data has been kicked from the cache, it 
needs to get back in, and the only time you're not taking a hit from 
that is when you're doing sequential access *and* your code is CPU 
bound, rather than memory bound.


> When you're jumping all over the place things do go to hell fast,
> but luckily we're not.

Right, that's not the issue here, but I'm talking about "cold" memory 
and raw bandwidth.


//David Olofson - Programmer, Composer, Open Source Advocate

.-------  http://olofson.net - Games, SDL examples  -------.
|        http://zeespace.net - 2.5D rendering engine       |
|       http://audiality.org - Music/audio engine          |
|     http://eel.olofson.net - Real time scripting         |
'--  http://www.reologica.se - Rheology instrumentation  --'



More information about the Linux-audio-dev mailing list