Home  |  News  |  Reviews  | About Search :  HardWare.fr 

MiscellaneousStorageGraphics CardsMotherboardsProcessors
Advertise on BeHardware.com
Review index:
The impact of compilers on x86/x64 CPU architectures
by Guillaume Louel
Published on September 27, 2012


Language: C++
Type of load: Integers
Multithreaded: Yes
The x264 video compression software that we use regularly in our articles is quite particular. It includes quite a large number of assembly optimisations. Moreover, the authors don’t just settle for x86 as, for example, there are optimisations using the ARM SIMD NEON instruction set. It’s also possible to compile software with all the assembly optimisations off, which means we can check the impact of these optimisations and see if the compiler optimisations can do anything to compensate.

We used mingw/gcc only for this test (the other compilers aren't directly supported,though there are patches and forks), in a slightly different version to the one used up until now. Here the 4.6.2 version of Gcc is used. i686 is the basic profile here and noasm indicates that we turned the assembly optimisations off during compilation.

[ Core i7 2600k ]  [ FX-8150 ]  [ Phenom II X4 975 ]
Hold the mouse over the processor model to display its results

The first point to note is that a build compiled via gcc with the SSE4a optimisations (which is what happens with AMD profiles) is detected as such on launch by x264, which then stops its execution. Only the FX, which has both AVX and SSE4a, can launch all the compiled versions.

Next, if there were still any doubt, code written in assembly language is the best route to getting maximum performance. Assembly versions however manage to benefit very slightly from corei7/corei7-avx profiles for the Core i7-2600k, and bdver1 and (above all) barcelona for the AMD processors. More surprisingly these optimisations are generally unfavourable on code without assembly language. Note finally that forcing the use of AVX 128 bit instructions (which is indicated by p128) does have an impact, which is however very slight here.

Of course these results aren’t directly comparable to the others that we have presented here but they do allow us to illustrate that while the compiler still has an important role, a developer can always significantly optimise C/C++ code.

<< Previous page
Performance: C-Ray, TSCP, 7-Zip

Page index
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16
Next page >>
Performance averages  

Copyright © 1997- Hardware.fr SARL. All rights reserved.
Read our privacy guidelines.