[pulseaudio-discuss] ARM NEON patches
Peter Meerwald
pmeerw at pmeerw.net
Thu Jan 12 08:20:02 PST 2012
Hello,
here is some optimized code for ARM NEON for sconv, svolume and remap
(benchmarks below for a Beagleboard-XM)
I put this up for review, although there are still some rough edges:
* there is no configure option for ARM NEON yet (there is none for
SSE/MMX as well); NEON can be disabled at runtime by defining env.
var. PULSE_NO_SIMD; ARM NEON code depends on __ARM_NEON__ #defined
by the compiler
* I have no runtime comparison for the orc svolume code yet (note that
orc is not used on ARM yet, although it should be possible)
* I would like to be able to test the svolume/remap code against the
C reference implementation, however, those are easily available/exposed
(or I don't know how to get hold of a function pointer)
* the runtime of the existing ARMv6 implementation of volume_s16ne() looks
very strange, has this been tested recently?
sconv_s16le_to_float()
NEON: 1831 usec.
ref: 18311 usec.
sconv_s16le_from_float()
NEON: 3754 usec.
ref: 64580 usec.
volume_float32ne()
NEON: 15716 usec.
ref: 59659 usec.
volume_s16ne()
NEON: 9002 usec.
ARM: 313570 usec.
ref: 20508 usec.
remap_mono_to_stereo(float)
NEON: 41533 usec.
ref: 51117 usec.
remap_mono_to_stereo(s16)
NEON: 16022 usec.
ref: 38086 usec.
regards, p.
More information about the pulseaudio-discuss
mailing list