[FFmpeg-devel] [PATCH] Some IWMMXT functions for libavcodec #2
Dmitry Antipov
dmantipov
Thu May 15 14:15:28 CEST 2008
Hello again,
here are some more efforts on IWMMXT stuff for libavcodec - all inner
loops are rewritten in assembly and a few more functions added.
The performance measurement is not so simple because:
1) gprof doesn't provide reliable results for small (20-30 instructions)
functions;
2) the hardware provides the fast, low-overhead clock source (similar
to x86 TSC), but it may be accessed from the privileged mode (i.e. kernel)
only;
3) although 2) may be done via oprofile, there is no oprofile support for
my hardware yet :-(.
So, the only benchmark I'm using for now is the simple 'synthetic' benchmark
which measures 'all C' vs. 'all IWMMXT' stuff with plain gettimeofday() (see
speedrun() functions within http://78.153.153.8/tmp/dspwmmx.c; it's 24K, so
not attached here). There are some results from it:
MAX_SIZE MAX_LINE C IWMMXT Speedup
--------------------------------------
64 8 100 40 2.5
128 16 560 190 2.95
256 32 2120 660 3.21
512 64 6670 1970 3.39
1024 128 19090 5360 3.56
(GCC 3.4.3, '-fomit-frame-pointer -O3', XScale Core3 at 312 MHz and 622 BogoMIPS).
According to these results, I suppose that IWMMXT functions are ~2-3 times faster
in general, but the mileage may vary from function to function - I didn't perform
per-function measurements yet.
It would be nice if someone proposes a real video processing task which loads these
functions heavily.
Dmitry
-------------- next part --------------
A non-text attachment was scrubbed...
Name: iwmmxt.patch
Type: text/x-patch
Size: 15876 bytes
Desc: not available
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20080515/f79f760f/attachment.bin>
More information about the ffmpeg-devel
mailing list