[Ffmpeg-devel] MMX/MMX2 and SSE optimizations for H.264 decoding
Martin Boehme
boehme
Fri Sep 23 12:16:44 CEST 2005
Loren Merritt wrote:
> On Mon, 19 Sep 2005, Martin Boehme wrote:
>> Michael Niedermayer wrote:
>>> On Fri, Sep 16, 2005 at 02:20:42PM +0200, Martin Boehme wrote:
>>>> Loren Merritt wrote:
>>>>>
>>>>> On AMD, most SSE2 instructions take exactly twice as long as the
>>>>> equivalent MMX instruction. Any speedups are due only to scheduling.
>>>>> In x264, we have a bunch of SSE2 functions, but most of them are
>>>>> _slower_ than the MMX versions on AMD.
>>>>
>>>> Interesting -- wasn't aware of that. I would assume that the AMD
>>>> processors only have enough execution units for 64 bits worth of
>>>> data and have to do SSE operations in two gos?
>>>
>>> dunno but
>>> AFAIK the P4 (at least the older ones) have 2 MMX units running at
>>> half the
>>> cpu clock speed so they can execute either 1 MMX instruction per
>>> clock or
>>> 1 SSE(2) every 2 clocks, with a very small number of exceptions
>>> further note that execution itself isnt the only thing which can be a
>>> bottleneck ...
>>
>> Interesting, wasn't aware of that... it's probably chip space
>> considerations that play into that, given that there shouldn't be
>> aren't any dependencies between the individual "elements" of the
>> vector units?
>
> Isn't that the obvious way to do it? If you have the hardware to execute
> 1 SSE2 instruction at a time, why shouldn't it be able to do 2 MMX?
> (assuming no other bottlenecks, of course)
Right... but what I was trying to get at is this: if the P4 had 4 MMX
units (running at half the CPU clock speed), it would be able to execute
1 SSE2 instruction per clock... and the reason Intel didn't put 4 MMX
units on the chip is probably chip space considerations...?
Martin
--
Martin B?hme
Inst. f. Neuro- and Bioinformatics
Ratzeburger Allee 160, D-23538 Luebeck
Phone: +49 451 500 5514
Fax: +49 451 500 5502
boehme at inb.uni-luebeck.de
More information about the ffmpeg-devel
mailing list