[wdmaudiodev] Re: SYSVAD source code has changed , not for the best.

  • From: "Vincent Burel \(VB-Audio\)" <vincent.burel@xxxxxxxxxxxx>
  • To: <wdmaudiodev@xxxxxxxxxxxxx>
  • Date: Thu, 31 May 2018 09:52:50 +0200

“state of the art” methods (often similar to a kind of optimized simplicity) 
remains valid for ever.

… and even today’s ARM processor might have not DIV instruction set.

 

A JUMP is 1 cycle instruction, in all cases it’s 20 or 30 time faster than a 
DIV instruction.

 

Yes, I saw the concept of “m_ullLinearPosition” that is again very strange 
(because not usable … this should be an offset directly). 

 

Will see…

Regards

Vincent Burel

 

PS: energy spent in audio processing is not trivial, it is really a subject, 
because used as permanent process on billions devices, and costs a lot in term 
of electricity/battery.

 

De : wdmaudiodev-bounce@xxxxxxxxxxxxx [mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx] ;
De la part de Tim Roberts
Envoyé : jeudi 31 mai 2018 08:30
À : wdmaudiodev@xxxxxxxxxxxxx
Objet : [wdmaudiodev] Re: SYSVAD source code has changed , not for the best.

 

On May 30, 2018, at 11:59 AM, Vincent Burel (VB-Audio) 
<vincent.burel@xxxxxxxxxxxx> wrote:

 

Division is not used in DSP or Audio Real time programming (except if obliged – 
in rare cases – some DSP has even not the DIV instruction available). 

 

That may have been a rule in 1995, but it certainly no longer applies to 
processors of the class that run Windows.  It's micro-optimization.

 

 

So Why using division taking 30 or 40 cycles when you could just spend 2 or 3 
cycles by a simple code like this below? 

ULONG bufferOffset = m_ullLinearPosition;

If (bufferOffset > m_ulDmaBufferSize) bufferOffset -= m_ulDmaBufferSize;

 

Again, you have a comparison and a jump there.  Jumps are anathema to modern 
Intel processors.  Plus, that has the implicit assumption that bufferOffset 
will never be more that 2x m_ulDmaBufferSize.

 





PS: Someone can tell us the energy required to  perform 40 cycles, 100 time per 
second,  on 2 billion computers, running 1 audio driver with 2 streams ? 

 

Trivial.

— 
Tim Roberts, timr@xxxxxxxxx
Providenza & Boekelheide, Inc. 

 

Other related posts: