Hello All,
I came across this article on linux for Core2 Duo.
http://www.linuxhardware.org/article.pl?sid=06/08/22/0415251
What does the author mean by the statement thats quoted below?
"Since we have a new core in this review, I decided it was prudent to pull out both 64-bit and 32-bit versions of Linux. We wanted to find out where Core 2 shows the most performance and how it did versus AMD in each mode. The table below shows the compile options for each OS and processor type. I didn't go all out and be over-aggressive here. It was important to compile the applications for each specific processor type but not be too aggressive and cause instability."
What compilation has he done? Is he actually compiling the kernel or packages or does he give the specific commands at boot prompt? Could someone briefly explain the process?
Regards,
Rony.
___________________________________________________________ All new Yahoo! Mail "The new Interface is stunning in its simplicity and ease of use." - PC Magazine http://uk.docs.yahoo.com/nowyoucan.html
On 1/26/07, Rony ronbillypop@yahoo.co.uk wrote:
What compilation has he done? Is he actually compiling the kernel or packages or does he give the specific commands at boot prompt? Could someone briefly explain the process?
The table given below the paragraph, are options set in /etc/make.conf in gentoo. And since he's using Gentoo, I guess he will be compiling the whole system from scratch.
Gentoo has so much to learn but it's such fun with great documentation and a lot of people who are ready to help out. :)
On Saturday 27 January 2007 01:05, Rony wrote:
What compilation has he done? Is he actually compiling the kernel or packages or does he give the specific commands at boot prompt? Could someone briefly explain the process?
He has used Gentoo to optimise each install for the specific hardware. That's one of the advantages of Gentoo.
This is something you won't ever face on a binary distro. The packages in these distros are compiled with generic flags that would work on most of the hardware. That's the difference the 386 or 586 or 686 makes in the package versions. These are the GCC flags used to optimise for a specific architecture.
Consider this for example: -march=athlon64 -msse3 -O2 -pipe
Notice the -msse3. SSE3 instruction set isn't available for, say 32 bit Semprons (Correct me if I'm wrong here.) It IS implemented in Sempron64 processors. So if I'm compiling some software for a Sempron64, I can use -msse3 but not for 32 bit Semprons. The generic build process of binary distros doesn't allow this flexibility, Gentoo does. The downside is, that you actually compile each and everything on a Gentoo machine. So, for example, as we speak, I'm starting a compilation cycle for KDE 3.5.6 right now, which I expect to be completed by tomorrow night. Compare that to, say Ubuntu, which would take around 10-15 minutes for installation. The point is though, that I have these packages optimised for my processor and not a generic family of processors. So if I'm using a distro, compiled without msse3 on a Sempron64, which supports SSE3, I'm losing out on the feature.
Did you ever read the release notes for FC4? It said something about being compiled for Pentium 4? I suppose they used -march=pentium4 instead of something like -march=i686 (If that's valid. I'm giving just an example.), which would support P3s and all.
Now coming back to the link given, check this out:
Intel Pentium Extreme Edition 965 -march=prescott -O2 -pipe AMD Athlon 64 FX-60 -march=athlon64 -msse3 -O2 -pipe
Does that tell you anything now? Clearly, the optimisation flags are set according to the processor and the architecture used.
Hope this is clear enough. I suppose you should ask people like Pradeepto and Vihan about GCC flags and all.
On Saturday 27 January 2007 02:25, Mrugesh Karnik wrote:
Now coming back to the link given, check this out:
Intel Pentium Extreme Edition 965 -march=prescott -O2 -pipe AMD Athlon 64 FX-60 -march=athlon64 -msse3 -O2 -pipe
Does that tell you anything now? Clearly, the optimisation flags are set according to the processor and the architecture used.
Quoting the article: ``Unfortunately, there doesn't seem to be any new optimizations for the Conroe in GCC yet. For 32-bit, I chose the Pentium M architecture as the closest match, and I added SSE2 support via a secondary compiler flag. For 64-bit, I has only one option for Intel 64-bit processors which was for a “Nocona” core.''
Hope its perfectly clear now. :)
On 1/26/07, Mrugesh Karnik mrugeshkarnik@gmail.com wrote:
Quoting the article: ``Unfortunately, there doesn't seem to be any new optimizations for the Conroe in GCC yet. For 32-bit, I chose the Pentium M architecture as the closest match, and I added SSE2 support via a secondary compiler flag. For 64-bit, I has only one option for Intel 64-bit processors which was for a "Nocona" core.''
Hope its perfectly clear now. :)
So will adding some flag for Conroe make any difference then, as and when it comes?
Mrugesh Karnik wrote:
Does that tell you anything now? Clearly, the optimisation flags are set according to the processor and the architecture used.
Hope this is clear enough. I suppose you should ask people like Pradeepto and Vihan about GCC flags and all.
Thanks for such a detailed info. And thanks to all those who replied :)
Is there any software utility that will detect hardware automatically and give compile instructions which will automatically compile the system to its optimum level? I remember using a hardware detect utility for DOS that would detect all hardware and list it out. New hardware is updated by downloading updated text files.
So whats needed is an auto compiler and a dbase file fresh from the net. Are the parameters passed to the kernel something that hw manufacturers want to hide away from Open Source or are they regular open parameters? If regular then the hw makers could release the dbase list along with the release of new hw.
Regards,
Rony.
___________________________________________________________ Try the all-new Yahoo! Mail. "The New Version is radically easier to use" The Wall Street Journal http://uk.docs.yahoo.com/nowyoucan.html
On 27/01/07 20:26 +0530, Rony wrote: <snip>
Is there any software utility that will detect hardware automatically and give compile instructions which will automatically compile the system to its optimum level? I remember using a hardware detect utility
Not really. Most of the optimisations are taken care of by the compiler, and Gentoo ships with reasonable defaults. Most other distributions offer binaries, so you don't have to worry about such things. If you are trying to optimise, -O2 or -O3 will do more for your binary than the CPU specific flags, except for thigs like the kernel, glibc and openssl.
The parameters are not secret, they are just compiler options.
Devdas Bhagat
On 1/27/07, Rony ronbillypop@yahoo.co.uk wrote:
Is there any software utility that will detect hardware automatically and give compile instructions which will automatically compile the system to its optimum level? I remember using a hardware detect utility for DOS that would detect all hardware and list it out. New hardware is updated by downloading updated text files.
I remember using an util under gentoo that would throw up the best possible flags for a given processor. You should look into gentoo docs for some pointers on this.
So whats needed is an auto compiler and a dbase file fresh from the net. Are the parameters passed to the kernel something that hw manufacturers want to hide away from Open Source or are they regular open parameters? If regular then the hw makers could release the dbase list along with the release of new hw.
Now that you brought up this topic here's my experience and 1. Most distros don't really check compile for max speed / low memory usage . 2. Max speed and low memory are two contradictory requirements where the final trade off is based on how fast / low resource consumptive the application is supposed to be. 3. Under ubuntu you should have a look at pbuilder. Its basically a fakeroot build environment which allows you to recompile packages, without disturbing your basic distro packages. So you don't have to install all the dev packages in your main distro. All goes into your fakeroot automagically managed by pbuilder 4. With some mucking around with scripts and pbuilder it should be possible to write a "builder script" which will automatically pull and rebuild your distro with your specific flags.
Advantage : 1. you get to work with your default ubuntu without worries of package breakage 2. The package gets recompiled with debian patches and your compile options for your processor 3. If the build breaks it doesn't affect your main install. 4. The fake root is quite light in size requirements.
regards Chetan S