[arch-general] аrch x86_64 and i686 performance comparison
Hi folks, The similar question most probably has been discussed many times, but I really cannot find a clear answer. There are some obvious thinks like 64-bit addressing, but how about math calculations performance? I've set up two identical virtual machines in vbox - one with Arch x86_64 and another with Arch i686. I ran mencoder in both over the same video and got the following figures: x86_64: 43 sec i686: 34 sec which make x86_64 not so impressive ;) Some time ago I read an article at AMD web site, they suggested using their math libs for writing programs instead of standard ones. In such a case a program with complex math involved can performs much better (personally I haven't tried). I'm just curious about other people's opinions on this subject. Cheers, Sergey
Virtual machine performance is in no hell comparable to real machine performance, not even for comparing between each other. Current VM implementations generally run a lot faster on i686 guests because that's what they have been optimized for mainly. I always found my x86_64 VMs to be slower than i686 so this would go in hand with your own observations. If you want to make a serious comparison, set up two fresh chroots at least. Better yet, set up two partitions and do the tests using a native kernel as well. You will probably see the opposite of what you saw in the VMs. Especially for video encoding, x86_64 will be noticeably faster. -- Sven-Hendrik On 11.11.2009 17:11, Sergey Manucharian wrote:
Hi folks,
The similar question most probably has been discussed many times, but I really cannot find a clear answer. There are some obvious thinks like 64-bit addressing, but how about math calculations performance?
I've set up two identical virtual machines in vbox - one with Arch x86_64 and another with Arch i686. I ran mencoder in both over the same video and got the following figures:
x86_64: 43 sec i686: 34 sec
which make x86_64 not so impressive ;)
Some time ago I read an article at AMD web site, they suggested using their math libs for writing programs instead of standard ones. In such a case a program with complex math involved can performs much better (personally I haven't tried).
I'm just curious about other people's opinions on this subject.
Cheers, Sergey
Excerpts from Sven-Hendrik Haase's message of Wednesday 11-Nov-09 05:18pm MST:
If you want to make a serious comparison, set up two fresh chroots at least. Better yet, set up two partitions and do the tests using a native kernel as well. I will do that. But the strange think is that I cannot find good reports on such comparisons.
You will probably see the opposite of what you saw in the VMs. Especially for video encoding, x86_64 will be noticeably faster. I have done the testing on real hardware (Athlon 64) 4-5 years ago, and the result was the same as today with VM.
Thanks, Sergey
Why don't you use the Phoronix Test Suit on both archs and compare the results. You can choose which benchmark-tests are to be performed, so you can see 'real world ' performance in different usage -scenarios. http://www.phoronix-test-suite.com/
Excerpts from Tom's message of Thursday 12-Nov-09 04:20am:
http://www.phoronix-test-suite.com/ Thank you for the direction, Tom! I'll give it a try.
Sergey
On 12.11.2009 05:20, Sergey Manucharian wrote:
Excerpts from Tom's message of Thursday 12-Nov-09 04:20am:
Thank you for the direction, Tom! I'll give it a try.
Sergey
It's also in [community].
On Wed, 11 Nov 2009 17:18:12 +0100 Sven-Hendrik Haase <sh@lutzhaase.com> wrote:
You will probably see the opposite of what you saw in the VMs. Especially for video encoding, x86_64 will be noticeably faster.
why is that?
Am Wed, 11 Nov 2009 17:44:53 +0100 schrieb Dieter Plaetinck <dieter@plaetinck.be>:
On Wed, 11 Nov 2009 17:18:12 +0100 Sven-Hendrik Haase <sh@lutzhaase.com> wrote:
You will probably see the opposite of what you saw in the VMs. Especially for video encoding, x86_64 will be noticeably faster.
why is that?
should be because of SSE+SSE2 extensions that are included in our default compiler flags that are not used in i686. -Andy
On 11.11.2009 17:53, Andreas Radke wrote:
Am Wed, 11 Nov 2009 17:44:53 +0100 schrieb Dieter Plaetinck <dieter@plaetinck.be>:
On Wed, 11 Nov 2009 17:18:12 +0100 Sven-Hendrik Haase <sh@lutzhaase.com> wrote:
You will probably see the opposite of what you saw in the VMs. Especially for video encoding, x86_64 will be noticeably faster.
why is that?
should be because of SSE+SSE2 extensions that are included in our default compiler flags that are not used in i686.
-Andy
I've been searching for info on that but so far I couldn't find anything. Usually, SSE instructions flags are enabled specifically in the Makefiles of the programs that actually make use of them. They are not universally enabled in every compiled program by default (according to the optimizations turned on by -O2). Can you elaborate what you mean? Why are they not used on i686?
On 11.11.2009 17:44, Dieter Plaetinck wrote:
On Wed, 11 Nov 2009 17:18:12 +0100 Sven-Hendrik Haase <sh@lutzhaase.com> wrote:
You will probably see the opposite of what you saw in the VMs. Especially for video encoding, x86_64 will be noticeably faster.
why is that?
I'm not a CPU expert and I got the figures by empirically testing just what Sergey did, but in a real machine (Q6600). 64bit CPU have 64bit registers which is what I suppose makes them work a lot faster for stuff like video encoding, 3d rendering and encryption. Somebody did a quick benchmark on this actually: http://bingouv.blogspot.com/2008/08/desktop-linux-performance-comparison32.h... The results here would confirm it: http://www.phoronix.com/scan.php?page=article&item=998&num=3 So it seems that x86_64 is usually a tad faster than i686 unless you really try to make use of the architecture's advantages in which case (according to wikipedia) it could become a lot faster. Actually, why not just do some testing yourself and see what the results are? 4-5 years ago, x86_64 computing was rather immature and lots of optimizing assembly code for video encoders wasn't yet ported. -- Sven-Hendrik
On Wed, Nov 11, 2009 at 6:11 PM, Sergey Manucharian <sergeym@rmico.com> wrote:
Hi folks,
The similar question most probably has been discussed many times, but I really cannot find a clear answer. There are some obvious thinks like 64-bit addressing, but how about math calculations performance?
I've set up two identical virtual machines in vbox - one with Arch x86_64 and another with Arch i686. I ran mencoder in both over the same video and got the following figures:
x86_64: 43 sec i686: 34 sec
which make x86_64 not so impressive ;)
Some time ago I read an article at AMD web site, they suggested using their math libs for writing programs instead of standard ones. In such a case a program with complex math involved can performs much better (personally I haven't tried).
I'm just curious about other people's opinions on this subject.
Cheers, Sergey
I don't think you should be benchmarking using virtual machines. The overhead imposed by virtualbox is not negligible and can differ greatly between the two architectures. Maybe running off of Live CDs would give more accurate results.
On Wed, 11 Nov 2009 09:11:02 -0700 Sergey Manucharian <sergeym@rmico.com> wrote:
Hi folks,
The similar question most probably has been discussed many times, but I really cannot find a clear answer. There are some obvious thinks like 64-bit addressing, but how about math calculations performance?
I've set up two identical virtual machines in vbox - one with Arch x86_64 and another with Arch i686. I ran mencoder in both over the same video and got the following figures:
x86_64: 43 sec i686: 34 sec
which make x86_64 not so impressive ;)
Some time ago I read an article at AMD web site, they suggested using their math libs for writing programs instead of standard ones. In such a case a program with complex math involved can performs much better (personally I haven't tried).
I'm just curious about other people's opinions on this subject.
Cheers, Sergey
Like most people have already said, benchmarking using virtual machine is not a good idea as the results will most likely _not_ reflect the actual performance. Better to install both Arch 32-bit and 64-bit on the same machine (dual boot) and run the tests. I've used 32-bit Arch Linux in the past before switching to 64-bit and from my personal experience certain operations, such as video/music encoding, is a _lot_ faster on 64-bit. I didn't timed it back then, but it was almost twice faster than on 32-bit. Regards, Smith
Excerpts from Smith Dhumbumroong's message of Thursday 12-Nov-09 10:49am:
Better to install both Arch 32-bit and 64-bit on the same machine (dual boot) and run the tests. I've already did it.
from my personal experience certain operations, such as video/music encoding, is a _lot_ faster on 64-bit. I didn't timed it back then, but it was almost twice faster than on 32-bit. Well, in my ThinkPad R61 (Core2 Duo CPU T9300 @ 2.50GHz) I got 1.1 times difference (in favour of 64-bit) with couple of videofiles encoded. (By the way, it means that VM performs almost 1.5 worse then the real HW).
Thanks, Sergey
participants (7)
-
Andreas Radke
-
Dieter Plaetinck
-
Evangelos Foutras
-
Sergey Manucharian
-
Smith Dhumbumroong
-
Sven-Hendrik Haase
-
Tom