Intel Makes Linux Move - Enhancing Compilers
Several folks sent this in, but an AC got it first:
Intel is throwing more of its substantial bulk
behind Linux.
They will be assisting Cygnus in creating compilers optimized
for the P2 and P3 processors for Linux. With all the
recent intel blunders (cpu id's, the p3's pathetic performance
etc) its cool to see something getting done right.
All you punks who complain about Intel should get a life. You wouldn't be afraid of serialization if you weren't stealing stuff all the time. Finally, some pro-intel sentiment in this place. I'm so sick of hearing about how Microsoft and Intel are evil and how Linux and AMD are like, objects of beauty. And now Linux is in bed with Intel. Let's see how much longer this Linux continues to work on Cyrix, AMD, motorola, and other chips, with Intel pushing the performace envelope. Eat it, suckers.
Please read the GPL sometime. The Free Software Foundation holds copyright on gcc/egcs, and you can be certain that much hell would be raised if anyone tried to do what you suggest to gcc/egcs.
Please do not flame me if this is a stupid question, but since AMD K6-2 has MMX capabilites, and it is a PII class processor, would a compiler optimized for the PII also work on the K6-2?
Any free OS Built w/ non-free tools would be a Bad-Thing IMHO. This is alot like the problems w/ using non-free libs (a la Qt (before FreeQT licence)). However, if it is gcc/egcs they mean, great. It would also be nice to have optimizations for other proc. (like G4 and AltiVec).
-- THIS SPACE INTENTIONALLY LEFT BLANK -- --
There are sooo many misleading and stupid statements in that article, humanity should be embarassed. "Open Source" means downloadable and free?! RedHat has "...actually sold copies of the free operating system..." (WHOAH, freak my mind man!). 3dNow is a rival version of MMX!??!? What BS!!!
Linux does not need this kind of help. This is just misinformation and garbage. ABC is one of the worst news sources on Earth!
-kabloie
...when it comes to things like this.
Remember the PIII/K6-3 comparison on Tom's Hardware? Much of the software used to do the benchmarking used Intel's streaming SIMD extensions but did not support AMD's 3DNow! extensions (Tom made that very clear).
Now we're going to have a compiler for Linux that will no doubt enable (well, simplify) the creation of similarly optimized programs.
AMD is doing very well in chip design, less well in fabrication, and very badly in all the other things Intel does so well.
--
Fuck the system? Nah, you might catch something.
It is a much better C++ compiler (the newest version supports namespace, and templates more compliant-ly than MSVC++). It is also every bit as libre as gcc (it is, after all, just an enhanced version of gcc, (c) FSF and all). You might want to try it out sometime.
I think that Linux is becoming a bit to big a hype. Now this collaboration with Intel to build a better compiler is all very nice, but what about the cost. I think (probably not unjustified) that this compiler will become very costly when it leaves the rest in the dust. And with that we'll get the same shit as with Micorsoft (how much do you want to pay today?). PAY PAY and only PAY.
The article says Debian is a compagny .....
Since when ?
none Yet.
I hope this will Help the compiler In a General manner and that other architectures will also get boost from this work ( but I doubt :-( ).
Now I would like To see Motorola doe the Same so that LinuxPPC would get faster (and so would all the BeOS gcc stuffs).
Arm could help too. As should all Risc vendors. Remember one off the concept of the Risc architecture is : let the compiler do the work, not the processor -- (Since P's are suppose to be CISCs I think other architectures would get Better boost on that kind of work then the x86 arch).
Ludo
none Yet.
I'm really glad to see hardware vendors providing support for their own hardware. When linux was more of a fringe OS, hardware vendors basically got a free ride. Now that it's coming in to the mainstream, We can expect to see this kind of thing more and more. The free software culture is invading corperate Culture. I think this kicks ass. When people start realizing that this kind of thing can increase sales of your product, more companies will begin to comply. I haven't seen any hard figures, but it may be that not doing it will lose significant revenue for a hardware manufacturer.
--
-- Knowledge shared is power lost. -- Aleister Crowley
> ... ...
> Support in the assembler for Streaming SIMD Extensions,
>
> They don't say anything about KNI support in the compiler, however.
They sure do! You quote it yourself. "KNI" is now officially known as SSE.
While the optimisation will probably make some
difference, i actually HOPE that the Intel
optimized binaries DON'T improve speed that much
on the AMD and Cyrix chips -- that would force
AMD and Cyrix to help out with the compiler
technology in a similar way. note however, that
Intel has much better compiler technology than
AMD or Cyrix (under Windows, their compiler used
to be the only one that gave Watcom a run for
its money -- and used to be bundled with
Borland C++)
That said, automatic MMX, KNI and 3DNow optimisations will be very useful.
This is very good news. This means that _everything_, including the kernel will run faster with Linux. This is something that every hardware manufacturer on the planet should figure out: Make a freely available ass kicking compiler for your hardware, people will use it to make ass kicking software for your platform, and people will buy your hardware. I've always bought AMD or Cyrix, but my next chip is going to be Intel.
Motorola, IBM, Compaq, etc. have yet to figure this out.
My question is, is this gcc or egcs?
I remember when the PPC optimizations were proposed to the gcc people (before egcs) they were all turned down. (Specifically the instruction schedular)
If God didn't want us to eat meat, he wouldn't have made it so tasty.
Ever hear of optimizing compilers?
Ever take a compiler class or write one?
It is a programmer's job to write efficient code, (use the right algorithms, right data structures,etc.) but not have to tailor it to a platform. That really should be the job of the compiler...otherwise, go write assembly language.
Hand optimization does play a role, that's why parts of Linux are rewritten in assembly. (like the IP checksum code)
However, compilers can be made pretty darn good at optimization...Let's leave the assembly code to them.
The first PIII's are only the lowest-end versions (remember the Pentium 60 and 66?).
The PIII-450 is almost identical to a PII-450. Next year's 600 or 800 mHz PIIIs will kick the living shit out of a PII-450. All this stuff about the PIII sucking is just drivel (except perhaps as a more general comment on the limitations of all x86 architecture). Intel never releases anything right away that "blows away" their previous chip. If the first PIII's ran at 600 mHz they wouldn't be able to sell any more PII's for more than $100.
Intel has been a massive financial success because they keep making steady improvements and get as much revenue as possible from every step along the way.
I wonder when Cyrix will create this 3DNow! Technology to compete with MMX?
Silly journalists.
i hope its for mmx, too.
Can someone from cygnus or egcs developement help clear the air here? It looks like (from the cygnus web pages) these enhancements are only available in the $200 GnuPro toolkit. There is also a comment there that these enhancements are open source. It also sais the enhancements are based on the egcs 1.1 release. Does this mean that when 1.2 or some later release comes out we'll be able to download it as part of egcs or is this always going to be something that we'll have to pay extra for?
It also mentions a lack of fortran support. What's up with that? The new PIII vector stuff should be great for sci/eng floating point calcs where fortran is still extensivly used. Can we expect this to happen or do we need to port apps to C to get the extra performance boost?
If this compiler "leaves the rest in the dust," many competitors will be able to catch up very quickly if they are willing to sacrifice some software revenue. For example, Digital (should I say Compaq?) makes optimizing compilers for their Alphas, and they might even release a Linux version of their commercial compiler. If forced, they could open source their compiler to gain acceptance in the Linux community. So I don't think that the success of this compiler alone could put any competitors out of business; it might cut their profit margins a bit, but that's generally a win for us.
Of course, the Linux community is not the only market for processors, so companies might be willing to sacrifice some processor revenue from Linux users in exchange for increased revenue from compilers. However, this environment would not allow Intel to raise prices significantly, because even if they could force it out of Linux users--although I don't think they could--they would lose enough sales in other markets to make the price increase unprofitable.
It does, however, say - at least as I read clause 6 of the GPL - that if you provide a GPLed program to anybody, the recipient can redistribute it:
"These terms and conditions" don't include "they have to give you money when they redistribute it", and that, combined with "You may not impose further restrictions...", makes it look as if, when you sell GPLed software to somebody, they can put it up for FTP for free and announce it to the world, and you have to live with that.
I.e., it doesn't say you have to release it publicly, but it lets anybody else do so, even if they paid you a large amount of money for it.
Just imagine the Beowulf clusters that could be
built with this...
:P
--Corey
Not only will they not deserve liberty or safety, Mr. Franklin, they will be DENIED both!
Ok, you people try to get it straight. egcs *IS* gcc, with tons of improvements.
Talk about overkill...Linux running on a PIII 550 that is optimized for it. I bet that I can't run and pee before my kernel compiles...
is egcc compiled binaries bigger than binaries compiled with gcc 2.8.1?
That's the benefit of GPL'd software. Even if they did try to sneak something like that in (pretty Microsoft-esque wouldn't you say?), since the source code would be available (it would *have* to be available), it could be found pretty easily and removed.
--
Aaron Gaudio
"The fool finds ignorance all around him.
"Every man is a mob, a chain gang of idiots." - Jonathan Nolan, Memento Mori
Posted by Buffy the Overflow Slayer:
Celery 300A O/C to 450 MHZ. Fast and cheap.
yes. This is part of the reason I'm not buying PowerPC and Alpha.
Thanks, a completely reasonable solution. Your efforts are very well appreciated out here. Wishful thinking had me drooling over free faster code but I can wait or pay I guess.
What about the fortran question? I think it's a very legitimate concern epecially since KNI could be so useful to fortran apps.
One can download optimized distributions. This saves one a lot of hassle.
You'll have to recompile all your libraries, too.
I expect the effect will be that algorithms that just happen to generate slower code for Cyrix/AMD will find their way into gcc. Although we can change this, how much effort has gone into optimisations for AMD/Cyrix? Very little. Why's that? Bad documentation, etc. So I anticipate that the poor performance code for AMD/Cyrix will stay there until AMD/Cyrix devote their own people to the task. Perhaps not so unlikely after all.
Well and good.
/'ers report on the KAI compiler's performance?
For the 'x86 chips, I like the Cygnus tools well enough, but what about the *rest* of the world, also known as Linux PPC, G3/G4, SA-110, etc.?
Secondarily, can any
I know it's not freeware, but their compiler is the only one I know of that has benchmarked C++ code running competitively with Fortran.
...Open Source isn't the only answer -- but it's almost always a better value than the alternatives...
Either this is a troll, or somebody here really needs to get a life.
Maybe it's just me, but I dont care who makes my cpu. Just as long as it's fast and cheap.
The first PIII's are only the lowest-end versions (remember the Pentium 60 and 66?).
The PIII-450 is almost identical to a PII-450. Next year's 600 or 800 mHz PIIIs will kick the living shit out of a PII-450. All this stuff about the PIII sucking is just drivel. Intel never releases anything right away that "blows away" their previous chip. If the first PIII's ran at 600 mHz they wouldn't be able to sell any more PII's for more than $100.
Intel has been a massive financial success because they keep making steady improvements and get as much revenue as possible from every step along the way.
Wrong. You can still keep GPL'd source code to
yourself. You only have to give the sources to
people you give the binaries to.
Perhaps the end result will be compiler much like pgcc-- which adds -mpentium and -mpentiumpro to gcc's -m486.
Of course, most people who use Redhat and their handy dandy RPMs will still be stuck with 386 binaries, as RH doesn't really make a point of using RPM_OPT_FLAGS in all its SRPMs.
The only way Intel was able to get the PIII to run at 1GHz was to super-cool it with liquid nitrogen. You think that they are ever going to market that?
I can just see it now. Some overclocker is going to be messing around with the CPU and is going to get his fingers frozen off.
The PIII isn't going to bread 700MHz.
Intel is probably doing this because they have to --
It is the only way the PIII will achieve anything close to
the performance gain you would expect a new CPU to have.
Define "work"... it would run on a K6, but it wouldn't necessarily be as fast as a compiler that optimized for the K6-2. There are differences in pipelining and instruction speeds that would make an optimizing compiler favor different kinds of instructions on the two machines, but I don't know any details.
Run a pencil-and-paper RPG campaign with your far-off friends: Gametable!
From the FAQ at www.goof.com/pcg/:
When Intel released the Pentium some of their team produced a version of gcc with enhancements which gave 30% speed improvements on some benchmarks.
Having demonstrated the improvements possible, they stopped development and released the code.
PGCC came from this work and further enhancements of the Intel code that had been produced. It aims to improve the stability of the compiler and to carry on
improving the quality of the generated code.
The original work of PGCC came from Intel a long time ago. The current PGCC is distributed as a set of patches against EGCS.
egcs doesn't exactly come from Cygnus; Cygnus started the project and provides the equipment, but it doesn't control it.
What are you talking about. PIII is going to rock the house, with 1 ghz and beyond. NO way is it just a little improvement. Haven't you been paying attention?
Bear in mind that ALL egcs code is assigned to
the FSF, and is NOT included in releases if this
is NOT the case.
Basically, the FSF and only the FSF have the right
to re-release EGCS as proprietary -- Cygnus dont.
(and if the FSF sell out, what hope does humanity
have?)
I am sorry to interrupt all of you linux lovers
but isn't it a programmers job to optimize his/her
code to use a given cpu instruction set? Isn't
it a compiler writers job to make sure that
generated assembler code makes use of all available instructions?
This whole thing is a nonsence...
Chipmaker helping someone to use their architecture... heh...
Hmm, I didn't know that egcs came from Cygnus. I have used it, and it works well. However, I am currently compiling(did I spell that right) with
gcc 2.7.xxxx. Anyhow, no offense was intended to Cygnus or egcs.
-Master Switch, one more element in the machine
At work I use Cadence CAD tools. They cost $500,000 or more. I'd like to see some GNU EDA tools that are on par with Cadence, but that would not be a small task!
Those dumbassess..They could have done this
a loooong time ago with the 3dnow extensions..
But noooo, they felt the need to provide an
optimized compiler to *ONE* place, Metrowerks!!!
Fools!!! SO you have to pay *more* if would like
to be able to use the *whole* chip.
AMD is being run by a bunch of butt sniffing
monkeys! If they fail it's due to stupidity.
The compiler to which they are referring IS gcc, but optimized for Intel processors.
http://egcs.cygnus.com/
From the article:- - - -
- -
- -
3 /index.html
n depth.html
-----------------------------------------------
"Expect more companies to hop on that bandwagon. Cyrix Corp., which makes low-cost computer processors, says it also is interested in working on Linux, once it finalizes its 3D-Now! technology, a rival version of MMX."
-----------------------------------------------
My response to the journalist:
-----------------------------------------------
Hi,
I'd like to correct a misconception that you printed regarding 3D-Now! technology and Cyrix.
3D-Now! is a joint venture, spearheaded by AMD corp - and currently supported by their K6-2 and K6-III processors. Cyrix and IDT are also supporters of the technology and will be or already have integrated the technology into their CPUs. The WinChip2 available from IDT already has 3D-Now! support.
3D-Now! was released with the K6-2 in June of 998, and is actually more similar to the recently release SSE (formerly KNI) instructions found in
the Pentium-III chip from Intel. Both instruction sets are intended to improve floating point performance - important for 3D-Games, Voice
Recognition, Video Compression and other similar applications.
They use a technique known as Single Instruction, Multiple Data (SIMD) to achieve higher performance by allowing instructions issued by the processor to actually affect more than one bit of data simultaneously. In the case of both 3D-Now! and SSE, the improvement is the inclusion of 2 execution units each capable of calculating 2 32-bit floating point values simultaneously - thus, each processor can process 4 floating
point instructions at the same time.
Intel's competitors have a rough enough time dealing with Intel's marketing campaign without having to deal with bad press.
-----------------------------------------------
While I will certainly admit - and this is going over it all one more time for those of you unfamiliar with the architectures of the x86 CPUs (I'm really only familiar with the k6, P2 and M2 cores).
FPU performance:
P2: 2 Execution units, variable latency of 3 to 5 cycles. Per clock cycle peak efficiency: 2 instructions per 3 cycles - 66%.
K6: 1 Execution Unit, low latency of 2 cycles. Per clock cycle peak efficiency: 1 instruction every 2 cycles 50%.
M2: 1 Execution Unit, fixed latency of 4 cycles. Per clock cycle peak efficiency: 1 instruction every 4 cycles 25%.
So, take all three CPUs, and assume everything is equal, and no really tricky tricks are used, and run them at the same speed of 300MHz. That means that you'll get roughly:
198 MFLOPs for a PII core.
150 MFLOPs for a K6 core.
75 MFLOPs for an M2 core.
In actuality the numbers usually aren't far off.
The flip side of the equation is that the Cyrix and AMD chips generally have better integer performance - a holdover in their design plans from 2 years ago when the office application benchmark was king - and office apps use mostly integer instructions. So usually per clock the Cyrix and AMD chips will produce more MIPS than the P-2, but less MFLOPS.
However, coupled with the fact that the P2 core also has some additional features in terms of memory access, and whatnot and the real world bench marks change up somewhat. But not too much really. Especially since the K6-2 with CXT core implements some of those features.
Check out Tom's hardware for some benchmarks of the K6-III and P-III. It's got some great benchmarks of how much SSE instructions will improve the P-II core. However, it's a little light on the 3D-Now! optimized titles for comparison.
http://www.tomshardware.com/releases/99q1/99022
Check out Ace's hardware for some K6 core info. It gives you some very real insight into how the cores of the P2 and K6 work, and what effects cache memory has on them.
http://www.aceshardware.com/articles/x86/k6-3_i
- Porter
um...liquid nitrogen doesn't count. A real 1ghz P3 won't come out for quite a while
remember that gnupro comes with BeOS for free so all BeOS users should get the same optimizations.
I am quite happy with the performance and stability of gcc.
-Master Switch, one more element in the machine
it should work but don't expect 3dnow! until AMD works with cygnus
The baggage which gcc carries for portability makes it second best everywhere.
now linux on intel will blow away AMD. Why? Because intel cares more about linux (remember the redhat investment?) than AMD.
Sparcs have had cpuids forever, and I think mips and PPC's do too... It's useful for copy protection of expensive programs. And although it's nice to have GPL'd stuff, if you're designing a specialized CAD program for a certain type of application, and you're only going to sell it to a few companies, you may very well need to sell it for $5,000 or more a license, and you'd want to be sure that you were getting all your money...
Anyway, it's not such a big problem, although if it was placed on mainstream computer parts I could see how it might be used for more sinister motives.
-- Erich
Slashdot reader since 1997
According to section 2.b of the GPL, the modified and/or derivative works must be licensed at no charge to all third parties under the license, and source code must also be available to such licensees (under section 3). And since the GPL is non-exclusive and is transferable (that is, a licensee of a GPL'd product can then license the product themselves), there's no practical way to keep the product out of the hands of those who want it, free of charge.
--
Aaron Gaudio
"The fool finds ignorance all around him.
"Every man is a mob, a chain gang of idiots." - Jonathan Nolan, Memento Mori
But I'd still rather run something other than Intel whenever possible...
export CFLAGS="-O6 -mpentium". RPM is *not* an excuse for not taking control of your own compiles.
Actually, having just read the Cygnus section on Open Sources, I get the impression that all binary target gccs are related. Considering that RMS wrote version 1.0 of gcc, I doubt that he'd give his permission to make the compiler proprietary. :-)
They laughed at Einstein. They laughed at the Wright Brothers. But they also laughed at Bozo the Clown. -- C. Sagan
Besides, Intel has a history of releasing patches to GCC for free, under the GPL (lots of Intels Pentium patches for GCC ended up in pgcc, for instance).
Even if they don't, then any optimizations that are part of GPLed code must be made available to their customers in source form, and their customers can give the source (or binaries) away for free, as I read clauses 3 (must make source available) and 6 (can't stop people you provided it to from giving it away) of the GPL.
The press release says:
The libraries may be Cygnus-proprietary (if they're not GLIBC-based, say), but the changes to the compiler and assembler won't be, unless they throw out GCC/EGCS, GAS, GLD, etc.
They don't say anything about KNI support in the compiler, however.
Another possibility is that the all the gcc/i386 authors agree to release it with another license. I don't know if cygnus people were the only one involved in the gcc+i386 part of the code ; sound not very likely. Anyway, not releasing under the GPL isn't very cygnus-esque and Intel has already its own proprietary compiler, so it makes no sense.
Cyrix has helped out Linux developers for years. If you read Alan's diaries, you'll see how much support he's gotten from Cyrix's engineers and how much free hardware he's gotten.
Intel has also at least loosely supported Linux for a while, and now they seem to be becoming even better about it. The only major issue they have is the propriety of their graphics and network cards (the won't release specs for the i740).
The only major company left out now is AMD. AMD makes good, cheap chips, so it would be a very good thing to get them on the bandwagon. 3D-Now! enhanced MESA would be slick.
I actually don't dislike Intel. They're big, sometimes stupid, and pretty close to a monopoly, but I haven't seen them do very many sleazy things. They've behaved themselves. I had nothing on them until the PIII ID misfeatures.
Intel has contributed some patches to GCC in the past. I vaguely remember some contribution from them to add Pentium optimizations some years ago.
I applied the patches but they proved to be defective.
I tried the patched compiler it on PovRay and it crashed. I remember having to use the ordinary compiler for one of the translation units because the patched compiler died.
I believe it's /etc/rpmrc or ~/.rpmrc
We'll probably end up having a number of custom
and C libararies available when installing
Linux (i.e. (fail)safe 386 versions, combined
with K6, K62, PII, PIII etc. optimised version
to choose from)
Having switched from Redhat to Stampede, I can
appreciate the difference that the compilers make.
All you punks who complain about Intel should get a life. You wouldn't be afraid of serialization if you weren't stealing stuff all the time. Finally, some pro-intel sentiment in this place. I'm so sick of hearing about how Microsoft and Intel are evil and how Linux and AMD are like, objects of beauty. And now Linux is in bed with Intel. Let's see how much longer this Linux continues to work on Cyrix, AMD, motorola, and other chips, with Intel pushing the performace envelope. Eat it, suckers.
Ah hah hahahahaha
Cygnus is donating resources to egcs, but it is not "Cygnus's egcs". egcs legally belongs to the Free Software Foundation, and it is a net-wide project, not a Cygnus project.
egcs has a steering committee that controls it, and Cygnus does not have a majority on that committee. So if Cygnus tried to do something with egcs that outsiders don't like, they would be outvoted. (I doubt if this would happen as they are good guys).
Cygnus's role in egcs is much like Red Hat's role in Gnome: they provide resources and pay people to work on it, but there are many outside developers.
Also, egcs is not Cygnus's only compiler effort. Typically they develop gcc enhancements under contract and provide those enhancements to their paying customers first. Later on these changes are integrated into egcs. (The paying customers are allowed to pass the changes on to others under the GPL terms, but they are not obliged to do so and typically they don't, meaning that they get the new code sooner than anyone else in exchange for their money).
Cygnus only works on the one compiler. Linux can only be built by the one compiler. The changes will absolutely go into the net releases--otherwise it would be kind of pointless.
One compiler to build them all, one compiler to...oops, nevermind.
failure is natural.
While I don't want to sound too negative, this seems to be an attempt to make up for all the negative press Intel has had lately - the timing is very suspicious. They could have provided support for P5/P6 optimization much earlier.
Does this mean that Celerons also get optimized code?
Wow...I found out about this story first by going directly to the ABC News site. They've put this
right in their headlines!
Finding God in a Dog
Indeed... and if the present curves are extrapolated, you'll be seeing a ROCKING SEVEN PERCENT improvement over the 500mhz ones, woohoo :P
Haven't you _noticed_ that the performance of x86 is no longer scaling linearly with mhz? It's hitting a wall.
Posted by Mike@ABC:
Far as I know, Cygnus has no plans to change its business model because of this deal -- same availability as before. And Intel says they're investing in this because it's a smart business move. The vast majority of Linux machines are running on the x86 architecture, so if they optimize, they figure they can sell more machines to Linux users.
I'm assuming it's GCC they're talking about, after all, that's what Cygnus' business has been based on for so long, but between the "Cygnus makes a compiler" comment and Cygnus' recent release of Non-Free Software, I'm not 100% sure.
Does anyone have the info to soothe and comfort me?
--Joakim Ziegler
>It'd be so confusing if they had like a dozen >versions of Windows -- CE 1, CE 2, Win 3.1, WFW >3.11, Win 95, Win 98, NT 3.5.1, NT 4.0.
:-)
yeah, just like it's so confusing to have all those different window managers. and all those different versions of the kernel. and all those different distros. etc etc. How does anyone cope with that?
Compared to that Windoze has relatively few versions (even if you count Win95 original, OSR1, OSR2, as separate. Also it's kinda silly to include CE, a consumer electronics OS, in a group of desktop OSes like Win9x or Linux).
there is... Stampede linux
www.stampede.org
I was talking in future tense. Sorry if that wasn't appearant :)
since egcs is based on gcc, and gcc is gpl'd, commercialization of egcs will most likely never happen.
PGCC rox ;) why not support PGCC??
I understand Blitz++ has been massively improved under egcs 1.1.1.