Core i5 430M underperforming under Linux ?
I own a laptop with a core i5 430M, and a discrete graphic card (GT240M). It seems that the motherboard chipset it a H55M one.
I have some important performance gap between windows and linux in some situation, and not in favor of linux, with this processor.
I actually did some benchmark using Eigen (a math library) that does a simple QR reduction of a 2048x2048 double matrix. It has heavy computational requirement.
Using GCC 4.5 under opensuse (64bits), I get the computation done in ~8s at minimum.
Using ICC 11.1 I'm getting moreless 8s too.
With GCC 4.4 under Ubuntu Lucid, I have the work done in a bit less time (7 s?).
I have tried a lot of optimisation flags, using OX, graphite related flags ...
Under Windows 64 bits using MSVC 32 bits that ships with visual studio I get a computational time of ~6s... with no optimisation at all. With sse optimisation enabled, it does only take 3,5 s.
That means that using the 32 bits compatibility layer of Windows 64, I am 2x faster than native 64 bits linux code with proper optimised code, with GCC and ICC (which is reputed to be better than MSVC on every platform, in particular for mathematical computation...)
The issue is that my old P4 HT processor does the computation in 8s too, so I'm thinking there is some issue with Linux and my core I5 processor, perhaps just on mathematical computation. I doubt that it is related to gcc (as icc generated code performs as badly as gcc one), so I think there is some default kernel option that does impact core I5 performance very baddly. But I have no idea which one (cache ?)
The Turbo Core option seems to works properly, cpuid gives me increased clock freq when doing the math computation.
I would like to know if somebody else has this kind of issue, and if there is some way to fix it.