View Full Version : Does HC have any CPU-specific optimizations?
FredThompson
4th November 2005, 01:10
If so, what are they? SSE? SSE2? SSE3? 64-bit?
dragongodz
4th November 2005, 01:21
yes. just load the gui version. go the misc settings and the "CPU" setting.
FredThompson
4th November 2005, 04:03
Oh, I see them.
The only time I used an Intel CPU was about 15 years ago (25 MHz, which was smokin' fast then) and have seen references to SSE2 and SSE3 as not being fully supported by AMD CPUs. I don't know if there's really a performance benefit worthy of the difference in price between AMD and Intel. Do you have any insight into this?
Mug Funky
4th November 2005, 06:11
i believe that SSE2 and possibly 3 are supported fully by the new AMDs.
often the needed instructions are already on an AMD, but programs don't see them as the instruction set goes by a different name. i could be wrong though.
certainly my 939 venice 3500 is pretty quick, even clocked at a rather low 2200 MHz.
FredThompson
4th November 2005, 10:39
Yeah, there's a post around here somewhere that mentions different generations of the newer AMDs having more and more fo the SSE stuff. A quick check of prices showed Intel CPU and board are around 50% higher in cost. If the productivity jump is 50%, ok. If not, well... I remember getting stung with some BookPCs when Intel changed voltages. Well, ok, I'll pay 50% more to drop the power consumption. Don't need anymore heat, though.
dragongodz
4th November 2005, 12:12
well i cant comment on HC speed with different cpus etc since i dont know. i only have 1. :)
however i can make some comments about this in general.
SSE2 is not the wunderkind intel like to say it is. can it be faster than mmx and or sse ? yes. can it be the same speed as mmx and/or sse ? yes. can it be SLOWER than mmx and/or sse ? YES.
it is dependant on the routines its used for and how it is programmed. note sse2 slows down badly on unaligned data, sse3 is meant to have fixed this.
also do not think that simply adding sse2 over mmx/sse will suddenly double the speed of a program. unless its a very simple little program that isnt going to happen, especially with something as complex as an mpeg encoder.
does this mean you wont get any speed gain ? of course it doesnt, as i said above it can be faster. however you need to use only routines that are faster and any that are slower with sse2 then use a faster mmx/sse version.
to see a real life example of these things you onyl have to read this thread
http://forum.doom9.org/showthread.php?t=97683
ok quite a few pages there but it does have speed tests which show sse2 was faster for some cases and slower for others.
having spoken to kank315 while he was doing this i know he saw quite substantial speed gains on his pentium 4 so i would have to say he has gone for the routines that would gain the most and did a very good job.
have seen references to SSE2 and SSE3 as not being fully supported by AMD CPUs.
yes the amd chips advertised as doing so do fully. they may not be as fast for say sse2(as an example) when comparing the PR to MHZ, eg. an athlon 3000+ doesnt perform sse2 as fast as a pentium 3ghz. however the athlon isnt running at 3ghz but if it was then you would find it may be even faster than the pentium for the instructions. however the point is speed gains should apply to both and while raw fps gain wont match a general increase type should. so the pentium 3ghz would increase more fps while the athlon 3000+ would also gain fps but not as much since the athlon is actually slower for sse2 as mentioned above. hope you follow all that. :)
now the only people i have seen saying amd may not support these fully or may not be 100% correct etc is intel. thats the excuse they used for using a cpu check in their compilers aswell as instruction set checks. that is if you tell the compiler to generate sse code plus generic cpu support it doesnt just check if the cpu says it is capable of sse but also checks if it is a genuine intel cpu. if it isnt it doesnt use the fully optimised code path. this is mentioned in that thread plus a link how to get around it. there is also ,in a different thread i think, a link to a perl script(from memory) that will remove the cpu check part from the compiled exe. have programs suddenly failed or crashed on amd cpus from this ? not that i have seen reported anywhere and you can be sure intel would be letting everyone know if it did happen.
well that link should be plenty of reading, including some links it also contains. enjoy. ;)
hank315
4th November 2005, 13:26
HC should detect the extensions automatically, it can use MMX/ISSE, SSE2 and SSE3.
Until now every PC I tested was recognized OK, but if it fails you can always force it to use a specific extension.
But if you set it manually to SSE2 and your CPU can only do MMX it will either crash or produce absolute rubbish.
SSE3 is the same as SSE2 with some extra instructions from which HC uses only one: LDDQU to load unaligned data (dragongodz alreday mentioned it) and yes that's faster than the equivalent MOVDQU instruction from SSE2.
All data in HC is aligned but for motion estimation you just need to read unaligned data.
ok quite a few pages there but it does have speed tests which show sse2 was faster for some cases and slower for others.Same experience here (P4 3200), mostly SSE2 runs faster than MMX because it can do operations on a 128 bits block (64 bits for MMX) but sometimes MMX just runs faster.
One of the main bottlenecks IMO is to get the data as fast as possible in the extension registers, seems sometimes MMX does a better job reading data.
DK
5th November 2005, 02:20
here are some results from testing all available idcts in dvd rebuilder using cce + hc 016 tr2/3 in opv mode:
http://forum.digital-digest.com/showthread.php?t=55813
FredThompson
5th November 2005, 02:46
Ah, thanks. That's the type of stuff I was looking for. IMNSHO, more horses seems a better return on investment than "better" horses...
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.