Hardware compatibility & optimisation 32bits vs x86_64 bits

For talk and support relating specifically to Puppy derivatives
Post Reply
Message
Author
feelsub
Posts: 39
Joined: Wed 20 Jun 2012, 17:29

Hardware compatibility & optimisation 32bits vs x86_64 bits

#1 Post by feelsub »

32bits vs x86_64 bits

64bits Intel & AMD CPU's dates back from end 2000...

The main advantage of 64bits apps, is you're sure to have multi-media instruction sets and more registers !
Instructions set SSE(1999 Pentium 3 a 32bits CPU), SEE2(Nov 2000 with Pentium 4(a 64bits CPU) first generation), SSE3(Intel 2004, AMD April 2005).
Additionnaly, with 64bits you can access more than 3Gb of RAM and randomisation of memory is way more efficient (security), while RAM attacks on 32 bits is more achievable. Linux PAE tries to offer this 64bits advantage.

Multi-media applications ought to use SSE(x) optimisations, for instance ffmpeg surely does it by default and one can later alter this by for instance ffmpeg -cpuflags -sse+mmx

From intel Core5 (and some Core3) there is also the Advanced Encryption Standard (AES) Instruction Set, which offers about 10x speed improves on encryption matters(see ref).

The purpose of 32bits applications is to maintain compatibility on any old hardware (Pentium3 and older class), and so to travel the world.

i386 & i486 do not guarantee to provide FPU(floating point instruction set) due to the SX family, the first CPU to guarantee FPU is the Pentium(i586).
i686 = Pentium pro(Nov 95 till 1998), introduced the MMX multimedia instruction sets.

To maintain compatibility with old hardware, i686 compiliation should be more than enough.

To know more about GCC compilation & CPU optimisation:
http://gcc.gnu.org/onlinedocs/gcc/i386- ... tions.html

Note that gcc tries to bring additional optimisation as well according to their version see for instance gcc 4.6.x vs 4.7.x; but spaghetti will stay.
See for instance http://gcc.gnu.org/gcc-4.7/changes.html

Given the numereous optimisation compilation options, adding for which CPU class it has been optimized may help avoid confusion and bug reporting, for instance
vlc202-i686
vlc202-core2
vlc202-x86_64

Ref:
http://en.wikipedia.org/wiki/SSE2
http://en.wikipedia.org/wiki/Streaming_SIMD_Extensions
http://en.wikipedia.org/wiki/64-bit
http://en.wikipedia.org/wiki/AES_instruction_set

Post Reply