Subject: [linux-audio-dev] Athlon/3dnow! dsp benchmark results
From: est_AT_hyperreal.org
Date: su syys 05 1999 - 18:17:31 EDT
I coded a biquadratic filter in C, bummed C (`caching' values in
locals csound-style), and 3dnow. I tested how long it took (in
microseconds) to process a buffer of 128 mono float samples 100 times.
I also wrote another routine to mix two channels into one with scale
factors for each input channel. I ran it on the same size data as the
biquad benchmark.
On my amd k6-2/350 using gcc-2.95.1, I got the following typical results:
biquad 3dnow: 382
biquad gcc: 2004
biquad bummed gcc: 1493
mix 3dnow: 105
mix gcc: 659
Dieter Nuetzel was kind enough to run the same tests on his Athlon/500
system with pgcc-2.91. The results he got were:
biquad 3dnow: 573
biquad gcc: 679
biquad bummed gcc: 340
biquad gcc (-O6 -mpentiumpro): 378
biquad bummed gcc (-O6 -mpentiumpro): 353
mix 3dnow: 64
mix gcc: 136
mix gcc (-O6 -mpentiumpro): 99
As you can see, biquad/3dnow was actually slower on his system! mix
allowed 3dnow to maintain a (diminished) lead on the Athlon. It's
more inherently SIMD. In the case of biquad I think 3dnow beat gcc on
the k6-2 because the k6-2 fp architecture is just way behind 3dnow.
In the Athlon it's leap-frogged ahead. Apparently the 3dnow
instructions have higher latency on the Athlon. I have no idea
whether AMD plans to fix this.
Lastly, the Athlon is fast. :)
Eric
This archive was generated by hypermail 2b28 : pe maalis 10 2000 - 07:27:11 EST