Help - Search - Members - Calendar
Full Version: 64 bit LAME compiles
Hydrogenaudio Forums > Lossy Audio Compression > MP3 > MP3 - General
flipik
hello everyone, I have slight problem to find LAME 64 bit compiles, specially actual 3.98r version.. Any suggestion?

Anyway, is there any reason why ain't 64 bit compiles stored at some common place like RaReWaReS ?
Or doesn't make it sense to compile 64 bit at all ?

thank you
zipr
QUOTE (flipik @ Dec 31 2008, 08:14) *
hello everyone, I have slight problem to find LAME 64 bit compiles, specially actual 3.98r version.. Any suggestion?

Anyway, is there any reason why ain't 64 bit compiles stored at some common place like RaReWaReS ?
Or doesn't make it sense to compile 64 bit at all ?

thank you


Gabriel put up a 64 bit compile of (I believe) 3.98 (not the latest 3.98.2) here:
http://gabriel.mp3-tech.org/lame/x64/


And there's a bit of discussion of it here:
http://www.hydrogenaudio.org/forums/index....st&p=575937
john33
QUOTE (flipik @ Dec 31 2008, 14:14) *
hello everyone, I have slight problem to find LAME 64 bit compiles, specially actual 3.98r version.. Any suggestion?

Anyway, is there any reason why ain't 64 bit compiles stored at some common place like RaReWaReS ?
Or doesn't make it sense to compile 64 bit at all ?

thank you

The reason is quite simple - the current compile is faster. wink.gif I ran a test having created a 64 bit compile and it actually ran marginally slower so it seemed somewhat pointless to make it available.
flipik
QUOTE (john33 @ Dec 31 2008, 17:35) *
QUOTE (flipik @ Dec 31 2008, 14:14) *

hello everyone, I have slight problem to find LAME 64 bit compiles, specially actual 3.98r version.. Any suggestion?

Anyway, is there any reason why ain't 64 bit compiles stored at some common place like RaReWaReS ?
Or doesn't make it sense to compile 64 bit at all ?

thank you

The reason is quite simple - the current compile is faster. wink.gif I ran a test having created a 64 bit compile and it actually ran marginally slower so it seemed somewhat pointless to make it available.


John, this is exactly what I expected smile.gif Is it possible to make 64 bit compiles available for those who are interested anyway ?
joebob90
QUOTE (flipik @ Jan 10 2009, 04:57) *
John, this is exactly what I expected smile.gif Is it possible to make 64 bit compiles available for those who are interested anyway ?


You can get 64-bit LAME compiles at http://lame.bakerweb.biz/. They are built with Visual C++ 2008, but the 64-bit build is about 25% faster than the 32-bit build (even though the 32-bit build uses assembly).
NightOwl
Thank you, joebob90, for making the 64-bit LAME compile available.

Unfortunately, I'm not seeing that this 64-bit compile is faster than the 32-bit compile available at RareWares. I tested on a CD-image WAV file produced by EAC. In my first set of tests, the only LAME option I used was -V2. I did three runs where I ran the 64-bit LAME EXE followed by the 32-bit LAME EXE:

CODE
[C:\Users\George\Downloads]"LAME 64-bit vs. 32-bit Speed Test.bat"
Timer 1 on: 11:32:55a
LAME 3.98.2 32bits (http://www.mp3dev.org/)
CPU features: MMX (ASM used), SSE (ASM used), SSE2
Using polyphase lowpass filter, transition band: 18671 Hz - 19205 Hz
Encoding C:\Users\George\Music\Keith Urban - Greatest Hits - 18 Kids - 2007.wav
to Keith Urban - Greatest Hits - 18 Kids - 2007 (64-bit LAME).mp3
Encoding as 44.1 kHz j-stereo MPEG-1 Layer III VBR(q=2)
Frame | CPU time/estim | REAL time/estim | play/CPU | ETA
173514/173514(100%)| 2:54/ 2:54| 2:54/ 2:54| 26.028x| 0:00
32 [ 1506] %*
40 [ 7] %
48 [ 7] %
56 [ 7] %
64 [ 24] %
80 [ 67] %
96 [ 109] %
112 [ 1452] %*
128 [ 7161] %*********
160 [ 39720] %%%%%**********************************************
192 [ 52154] %%%%%%%%%%%%%%****************************************************
224 [ 37175] %%%%%%%%%%**************************************
256 [ 20243] %%%%%%%*******************
320 [ 13882] %%%%%%************
-------------------------------------------------------------------------------
kbps LR MS % long switch short %
204.4 17.8 82.2 90.9 4.9 4.3
Writing LAME Tag...done
ReplayGain: -9.5dB
Timer 1 off: 11:35:49a Elapsed: 0:02:54.19
Timer 1 on: 11:35:49a
LAME 3.98.2 32bits (http://www.mp3dev.org/)
CPU features: MMX (ASM used), SSE (ASM used), SSE2
Using polyphase lowpass filter, transition band: 18671 Hz - 19205 Hz
Encoding C:\Users\George\Music\Keith Urban - Greatest Hits - 18 Kids - 2007.wav
to Keith Urban - Greatest Hits - 18 Kids - 2007 (32-bit LAME).mp3
Encoding as 44.1 kHz j-stereo MPEG-1 Layer III VBR(q=2)
Frame | CPU time/estim | REAL time/estim | play/CPU | ETA
173514/173514(100%)| 2:40/ 2:40| 2:40/ 2:40| 28.316x| 0:00
32 [ 1506] %*
40 [ 8] %
48 [ 4] %
56 [ 10] %
64 [ 24] %
80 [ 69] %
96 [ 82] %
112 [ 1287] %*
128 [ 6711] %********
160 [ 39834] %%%%%**********************************************
192 [ 52536] %%%%%%%%%%%%%*****************************************************
224 [ 37246] %%%%%%%%%%*************************************
256 [ 20314] %%%%%%%*******************
320 [ 13883] %%%%%%************
-------------------------------------------------------------------------------
kbps LR MS % long switch short %
204.7 17.8 82.2 90.9 4.9 4.3
Writing LAME Tag...done
ReplayGain: -9.5dB
Timer 1 off: 11:38:29a Elapsed: 0:02:40.12

[C:\Users\George\Downloads]"LAME 64-bit vs. 32-bit Speed Test.bat"
Timer 1 on: 11:42:36a
LAME 3.98.2 32bits (http://www.mp3dev.org/)
CPU features: MMX (ASM used), SSE (ASM used), SSE2
Using polyphase lowpass filter, transition band: 18671 Hz - 19205 Hz
Encoding C:\Users\George\Music\Keith Urban - Greatest Hits - 18 Kids - 2007.wav
to Keith Urban - Greatest Hits - 18 Kids - 2007 (64-bit LAME).mp3
Encoding as 44.1 kHz j-stereo MPEG-1 Layer III VBR(q=2)
Frame | CPU time/estim | REAL time/estim | play/CPU | ETA
173514/173514(100%)| 2:49/ 2:49| 2:49/ 2:49| 26.737x| 0:00
32 [ 1506] %*
40 [ 7] %
48 [ 7] %
56 [ 7] %
64 [ 24] %
80 [ 67] %
96 [ 109] %
112 [ 1452] %*
128 [ 7161] %*********
160 [ 39720] %%%%%**********************************************
192 [ 52154] %%%%%%%%%%%%%%****************************************************
224 [ 37175] %%%%%%%%%%**************************************
256 [ 20243] %%%%%%%*******************
320 [ 13882] %%%%%%************
-------------------------------------------------------------------------------
kbps LR MS % long switch short %
204.4 17.8 82.2 90.9 4.9 4.3
Writing LAME Tag...done
ReplayGain: -9.5dB
Timer 1 off: 11:45:25a Elapsed: 0:02:49.61
Timer 1 on: 11:45:25a
LAME 3.98.2 32bits (http://www.mp3dev.org/)
CPU features: MMX (ASM used), SSE (ASM used), SSE2
Using polyphase lowpass filter, transition band: 18671 Hz - 19205 Hz
Encoding C:\Users\George\Music\Keith Urban - Greatest Hits - 18 Kids - 2007.wav
to Keith Urban - Greatest Hits - 18 Kids - 2007 (32-bit LAME).mp3
Encoding as 44.1 kHz j-stereo MPEG-1 Layer III VBR(q=2)
Frame | CPU time/estim | REAL time/estim | play/CPU | ETA
173514/173514(100%)| 2:41/ 2:41| 2:41/ 2:41| 28.149x| 0:00
32 [ 1506] %*
40 [ 8] %
48 [ 4] %
56 [ 10] %
64 [ 24] %
80 [ 69] %
96 [ 82] %
112 [ 1287] %*
128 [ 6711] %********
160 [ 39834] %%%%%**********************************************
192 [ 52536] %%%%%%%%%%%%%*****************************************************
224 [ 37246] %%%%%%%%%%*************************************
256 [ 20314] %%%%%%%*******************
320 [ 13883] %%%%%%************
-------------------------------------------------------------------------------
kbps LR MS % long switch short %
204.7 17.8 82.2 90.9 4.9 4.3
Writing LAME Tag...done
ReplayGain: -9.5dB
Timer 1 off: 11:48:06a Elapsed: 0:02:41.05

[C:\Users\George\Downloads]"LAME 64-bit vs. 32-bit Speed Test.bat"
Timer 1 on: 11:52:05a
LAME 3.98.2 32bits (http://www.mp3dev.org/)
CPU features: MMX (ASM used), SSE (ASM used), SSE2
Using polyphase lowpass filter, transition band: 18671 Hz - 19205 Hz
Encoding C:\Users\George\Music\Keith Urban - Greatest Hits - 18 Kids - 2007.wav
to Keith Urban - Greatest Hits - 18 Kids - 2007 (64-bit LAME).mp3
Encoding as 44.1 kHz j-stereo MPEG-1 Layer III VBR(q=2)
Frame | CPU time/estim | REAL time/estim | play/CPU | ETA
173514/173514(100%)| 2:49/ 2:49| 2:49/ 2:49| 26.764x| 0:00
32 [ 1506] %*
40 [ 7] %
48 [ 7] %
56 [ 7] %
64 [ 24] %
80 [ 67] %
96 [ 109] %
112 [ 1452] %*
128 [ 7161] %*********
160 [ 39720] %%%%%**********************************************
192 [ 52154] %%%%%%%%%%%%%%****************************************************
224 [ 37175] %%%%%%%%%%**************************************
256 [ 20243] %%%%%%%*******************
320 [ 13882] %%%%%%************
-------------------------------------------------------------------------------
kbps LR MS % long switch short %
204.4 17.8 82.2 90.9 4.9 4.3
Writing LAME Tag...done
ReplayGain: -9.5dB
Timer 1 off: 11:54:54a Elapsed: 0:02:49.43
Timer 1 on: 11:54:54a
LAME 3.98.2 32bits (http://www.mp3dev.org/)
CPU features: MMX (ASM used), SSE (ASM used), SSE2
Using polyphase lowpass filter, transition band: 18671 Hz - 19205 Hz
Encoding C:\Users\George\Music\Keith Urban - Greatest Hits - 18 Kids - 2007.wav
to Keith Urban - Greatest Hits - 18 Kids - 2007 (32-bit LAME).mp3
Encoding as 44.1 kHz j-stereo MPEG-1 Layer III VBR(q=2)
Frame | CPU time/estim | REAL time/estim | play/CPU | ETA
173514/173514(100%)| 2:38/ 2:38| 2:38/ 2:38| 28.553x| 0:00
32 [ 1506] %*
40 [ 8] %
48 [ 4] %
56 [ 10] %
64 [ 24] %
80 [ 69] %
96 [ 82] %
112 [ 1287] %*
128 [ 6711] %********
160 [ 39834] %%%%%**********************************************
192 [ 52536] %%%%%%%%%%%%%*****************************************************
224 [ 37246] %%%%%%%%%%*************************************
256 [ 20314] %%%%%%%*******************
320 [ 13883] %%%%%%************
-------------------------------------------------------------------------------
kbps LR MS % long switch short %
204.7 17.8 82.2 90.9 4.9 4.3
Writing LAME Tag...done
ReplayGain: -9.5dB
Timer 1 off: 11:57:33a Elapsed: 0:02:38.78


Summary:
Run 1 2:54 (64-bit) vs. 2:40 (32-bit)
Run 2 2:49 (64-bit) vs. 2:41 (32-bit)
Run 3 2:49 (64-bit) vs. 2:38 (32-bit)

I did another set of 3 runs, but this time I added the -S and --noreplaygain options:

CODE
[C:\Users\George\Downloads]"LAME 64-bit vs. 32-bit Speed Test (-S --noreplaygain).bat"
Timer 1 on: 12:10:16p
Timer 1 off: 12:12:51p Elapsed: 0:02:34.21
Timer 1 on: 12:12:51p
Timer 1 off: 12:15:23p Elapsed: 0:02:32.39

[C:\Users\George\Downloads]"LAME 64-bit vs. 32-bit Speed Test (-S --noreplaygain).bat"
Timer 1 on: 12:18:23p
Timer 1 off: 12:20:59p Elapsed: 0:02:35.31
Timer 1 on: 12:20:59p
Timer 1 off: 12:23:27p Elapsed: 0:02:28.02

[C:\Users\George\Downloads]"LAME 64-bit vs. 32-bit Speed Test (-S --noreplaygain).bat"
Timer 1 on: 12:24:49p
Timer 1 off: 12:27:24p Elapsed: 0:02:34.19
Timer 1 on: 12:27:24p
Timer 1 off: 12:29:58p Elapsed: 0:02:34.44

[C:\Users\George\Downloads]dir *.mp3

Volume in drive C is unlabeled Serial number is ba0b:7232
Directory of C:\Users\George\Downloads\*.mp3

02/04/2009 12:29p 115,841,186 Keith Urban - Greatest Hits - 18 Kids - 2007 (32-bit LAME).mp3
02/04/2009 12:27p 115,685,912 Keith Urban - Greatest Hits - 18 Kids - 2007 (64-bit LAME).mp3
231,527,098 bytes in 2 files and 0 dirs 231,528,448 bytes allocated
158,454,389,760 bytes free


Summary:
Run 4 2:34 (64-bit) vs. 2:32 (32-bit)
Run 5 2:35 (64-bit) vs. 2:28 (32-bit)
Run 6 2:34 (64-bit) vs. 2:34 (32-bit)

In my six test runs, the 64-bit LAME EXE finished faster only once and by just a fraction of a second. All the other runs showed that the 32-bit LAME EXE was a few seconds faster. I didn't run anything else while running these timing tests. I am running Vista Home Premium 64-bit with SP1. I have an Intel Core2 Duo CPU P8400 @ 2.26GHz with 4 GB RAM.

Is there another option I need to specify to make the 64-bit EXE run faster?

By the way, the 64-bit LAME EXE announces itself the same as the 32-bit EXE:
LAME 32bits version 3.98.2
kornchild2002
To my knowledge, there really isn't anything that can be done. As john33 said, the 32-bit compile of Lame runs faster than the 64-bit version. Your results supported this and fell in line with john33's tests. So just use the 32-bit build since the 64-bit build doesn't offer any benefits.
Emon
64-bit is only faster for applications that use really large numbers (larger than 2^32). On a 32-bit system such numbers need to be represented in memory with multiple addresses, and doing math on them is rather slow. On 64-bit systems they can be stored in a single location and math can be done on them natively by the processor.

In LAME's case, there's no real benefit. 64-bit isn't magically faster.
NightOwl
QUOTE (joebob90 @ Feb 2 2009, 22:45) *
... the 64-bit build is about 25% faster than the 32-bit build (even though the 32-bit build uses assembly).


joebob90 said his 64-bit build is about 25% faster than a 32-bit build (his own 32-bit build?). How did he get it to run about 25% faster?
Canar
QUOTE (NightOwl @ Feb 4 2009, 11:49) *
joebob90 said his 64-bit build is about 25% faster than a 32-bit build (his own 32-bit build?). How did he get it to run about 25% faster?
He got it to run 25% faster than his 32-bit build, but not john33's 32-bit build, I'm guessing. Trust john33. He knows what he's doing. smile.gif
NightOwl
Gabriel said earlier that he got his 64-bit LAME 3.98 encoder to run 20% faster than his 32-bit compile (both using the VC8 compiler). He even said his 64-bit encoder is the one he uses most of the time:

http://www.hydrogenaudio.org/forums/index.php?showtopic=50578&view=findpost&p=452988

So Gabriel's results were similar to joebob90's 25%.
john33
QUOTE (NightOwl @ Feb 5 2009, 22:11) *
Gabriel said earlier that he got his 64-bit LAME 3.98 encoder to run 20% faster than his 32-bit compile (both using the VC8 compiler). He even said his 64-bit encoder is the one he uses most of the time:

http://www.hydrogenaudio.org/forums/index.php?showtopic=50578&view=findpost&p=452988

So Gabriel's results were similar to joebob90's 25%.

True, but Gabriel doesn't use the Intel compiler. wink.gif
lvqcl
BTW, adding "/arch:SSE /fp:fast" to LAME options increases speed of MSVC8 compiled executables.
zfox
QUOTE (john33 @ Feb 5 2009, 23:38) *
True, but Gabriel doesn't use the Intel compiler. wink.gif


You don't use the Intel compiler for producing 64bit output either. wink.gif
Am I wrong?

I think the latest versions of the Intel compiler (>= 10.1.020) support 64bit code. smile.gif
john33
QUOTE (zfox @ Feb 6 2009, 07:48) *
QUOTE (john33 @ Feb 5 2009, 23:38) *
True, but Gabriel doesn't use the Intel compiler. wink.gif


You don't use the Intel compiler for producing 64bit output either. wink.gif
Am I wrong?

I think the latest versions of the Intel compiler (>= 10.1.020) support 64bit code. smile.gif

My 3.98.2 64 bit compile is produced using VC8 and Intel 9.1 with 64 bit code support.
Gow
QUOTE (john33 @ Feb 6 2009, 04:20) *
My 3.98.2 64 bit compile is produced using VC8 and Intel 9.1 with 64 bit code support.


Not with ICL 10.1 like the Win32 compiles? Available for a test? wink.gif
flipik
QUOTE (joebob90 @ Feb 3 2009, 05:45) *
QUOTE (flipik @ Jan 10 2009, 04:57) *
John, this is exactly what I expected smile.gif Is it possible to make 64 bit compiles available for those who are interested anyway ?


You can get 64-bit LAME compiles at http://lame.bakerweb.biz/. They are built with Visual C++ 2008, but the 64-bit build is about 25% faster than the 32-bit build (even though the 32-bit build uses assembly).


Thank you.
john33
I finally got around to producing and testing 64 bit Intel 11.0 compiles.

The fastest of them is around 10% faster, in my testing, than the current Win32 compile on Rarewares. cool.gif

Currently, this is a 3.99.a1 compile of the .exe only and you download it here: http://www.rarewares.org/files/mp3/lame3.99.a1-64.zip

If there is interest, I can produce a similar compile for 3.98.2.
gottkaiser
QUOTE (john33 @ Jul 28 2009, 11:51) *
I finally got around to producing and testing 64 bit Intel 11.0 compiles.
If there is interest, I can produce a similar compile for 3.98.2.

That would be great. rolleyes.gif
HisInfernalMajesty
QUOTE (john33 @ Jul 28 2009, 06:51) *
If there is interest, I can produce a similar compile for 3.98.2.


Yeah i'd like one to try out on the Core i7 920
john33
Well, that's kind of bizarre!! The comparable 64 bit compile of 3.98.2 is about 7% slower than the compile currently on Rarewares! Still want it?
Trancer
I don't see the use of this discussion, unless the code is specifically programmed to take advantage of larger registers etc, there is no reason that the 64 compile would run faster than the 32 bit compile... Don't forget that the only difference in the way numbers are treated in the Win64 model is that pointers are twice the width (as compared to 32 bit)... So without taking any other effects (like is the compiler really the same etc...) into account, the code would run slower, due to more memory overhead... the numbers are treated is exactly the same... The only MicroShaft objective into going into 64bit was (and is) to enable addressing of memory over 4GB without resorting to tricks...
lvqcl
Compiler can use more general-purpose registers and SSE registers with 64 bit compiles.
d_headshot
Sort of off-topic, but if I get a new 64-bit computer, does that mean I'll have problems running audio encoders that worked on a 32-bit system?
nycjv321
QUOTE (d_headshot @ Aug 10 2009, 16:13) *
Sort of off-topic, but if I get a new 64-bit computer, does that mean I'll have problems running audio encoders that worked on a 32-bit system?


nope
d_headshot
QUOTE (nycjv321 @ Aug 10 2009, 18:25) *
QUOTE (d_headshot @ Aug 10 2009, 16:13) *
Sort of off-topic, but if I get a new 64-bit computer, does that mean I'll have problems running audio encoders that worked on a 32-bit system?


nope


Okay thanks. I've been worrying about that for no reason then lol.
SubV
In fact, all the 64-bit programs are slower and require more RAM than its 32-bit analogs.

AFAIK, 32-bit build of LAME already uses 128-bit SSE2 pipeline, thus making use of x64 instructions pointless.
twist3d
QUOTE (SubV @ Aug 11 2009, 09:40) *
In fact, all the 64-bit programs are slower and require more RAM than its 32-bit analogs.


please don't spread bulls*it. simple "64-bit benchmarks" google search will bring up tens of comparisons/reviews of operating systems and
software which are generally _faster_ in pure 64-bit mode.
SubV
QUOTE (twist3d @ Aug 11 2009, 10:19) *
simple "64-bit benchmarks" google search will bring up tens of comparisons/reviews of operating systems and
software which are generally _faster_ in pure 64-bit mode.

See the _real_ comparison above. The 64-bit build of LAME is about 7% slower than 32-bit one.

Regarding benchmarks on the 'net -- there are magazines and hardware portals who simply fake the test results for one reason or another.

Only a small amount of software really benefits from x64 (for example, large scale database systems).

Btw, I'm programming in C++ and assembler for almost two decades now.
PatchWorKs
QUOTE (SubV @ Aug 11 2009, 09:09) *
QUOTE (twist3d @ Aug 11 2009, 10:19) *
simple "64-bit benchmarks" google search will bring up tens of comparisons/reviews of operating systems and
software which are generally _faster_ in pure 64-bit mode.

See the _real_ comparison above. The 64-bit build of LAME is about 7% slower than 32-bit one.

Only a small amount of software really benefits from x64 (for example, large scale database systems).


...LAME... rolleyes.gif

QUOTE (john33 @ Jul 27 2009, 15:57) *
OK, you can download a 64 bit build of oggenc2 - aoTuV5.7 from here: http://www.rarewares.org/files/ogg/oggenc64-aoTuVb5.7-P4.zip

Be aware that this build does not support FLAC input as libflac contains inline asm which is not supported by the x64 compiler. This was compiled using the 64 bit Intel 11.0 compiler.

It has been tested on an E4300 based system with XP-Pro x64 on which it is about 10% faster than the 32 bit P4 compile. I tried most of the compiler optimisation options before settling on the ones used here which were, in fact, the first ones I used! rolleyes.gif

Anyway, give it a try and let us know your experiences. smile.gif
d_headshot
Okay so let me get this straight:

The 32 bit version of lame will work fast on both 32 and 64 bit versions of an OS, where as the 64 bit version will be either slower or faster(according to the above arguments) on the 64 bit OS?
twist3d
QUOTE
In fact, all the 64-bit programs are slower and require more RAM than its 32-bit analogs.

QUOTE
See the _real_ comparison above. The 64-bit build of LAME is about 7% slower than 32-bit one.

So you base your experience with ALL 64-bit programs on the LAME compile?


QUOTE
Regarding benchmarks on the 'net -- there are magazines and hardware portals who simply fake the test results for one reason or another.

blink.gif Sorry but you're living in denial with a tinfoil hat on. Anyone with 64-bit capable processor and OS can download test suites, programs and games and make their own
benchmarks (ie. I have tested 64-bit x264.exe, results here: http://forum.doom9.org/showthread.php?t=144140)

and come on, there's no worldwide 64-bit hardware/software conspiracy going on laugh.gif
Mr VacBob
QUOTE (d_headshot @ Aug 11 2009, 12:47) *
Okay so let me get this straight:

The 32 bit version of lame will work fast on both 32 and 64 bit versions of an OS, where as the 64 bit version will be either slower or faster(according to the above arguments) on the 64 bit OS?


Pretty much any program will be faster on x86-64 than x86-32. This is just because x86-64 is better, not because 64-bit is better.

And I haven't recompiled lame in a very long time, but I think --enable-float-only should be faster and generate almost exactly the same file. It might disable some asm, in which case it obviously wouldn't help, of course.
washu
QUOTE (Mr VacBob @ Aug 12 2009, 02:44) *
Pretty much any program will be faster on x86-64 than x86-32. This is just because x86-64 is better, not because 64-bit is better.


In most other architectures that went from 32 to 64 bits they simply made the registers and address bus bigger. Since 64 bit data takes up more room in caches and more memory bandwidth, 64 bit code was often slower than 32 bit code.

In x86-64 they did the above, but also doubled the number of registers. Given that x86 was rather register poor to start, this in affect made 64 bit code faster than 32 bit code in most cases on x86-64.

Also, the late model Pentium 4 chips that have x86-64 have a rather poor implementation. 64 bit code on P4s is often no better or slower than 32 bit. This problem does not occur on other x86-64 Intel chips or AMD chips.

SubV
QUOTE (Mr VacBob @ Aug 12 2009, 09:44) *
Pretty much any program will be faster on x86-64 than x86-32. This is just because x86-64 is better, not because 64-bit is better.

I strongly doubt that. More bits per word means lower probability to data to get into CPU cache. Also, program data segment grows larger in size, requiring more memory to execute.

For example, a popular title GTA IV requires about 850 MB of RAM to run on x86 system. Under x64, the memory requirement for the same code grows up to ~1300 MB.

Speaking of user applications and games, most of them use SSE2/SSE3 technology nowadays. This means all the arithmetic operations with large strings are executed in 128-bit pipeline, using extended set of registers. So I recommend to stick with x86 as long as possible, since this architecture provides more effective caching of code/data and better branch prediction.

Sorry for offtopic.
Synaptic Line Noise
QUOTE (john33 @ Feb 5 2009, 16:38) *
QUOTE (NightOwl @ Feb 5 2009, 22:11) *
Gabriel said earlier that he got his 64-bit LAME 3.98 encoder to run 20% faster than his 32-bit compile (both using the VC8 compiler). He even said his 64-bit encoder is the one he uses most of the time:

http://www.hydrogenaudio.org/forums/index.php?showtopic=50578&view=findpost&p=452988

So Gabriel's results were similar to joebob90's 25%.

True, but Gabriel doesn't use the Intel compiler. wink.gif


Which won't ever support AMD mad.gif
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2009 Invision Power Services, Inc.