Follow Slashdot blog updates by subscribing to our blog RSS feed


Forgot your password?

Intel Makes Linux Move - Enhancing Compilers 87

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.
This discussion has been archived. No new comments can be posted.

Intel Makes Linux Move - Enhancing Compilers

Comments Filter:
  • 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).
  • ...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.

  • by Tsk ( 2863 )
    The article says Debian is a compagny .....

    Since when ?

  • 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).

  • 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.
  • 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.
  • 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 3-D Now! technology, a rival version of MMX.

    I wonder when Cyrix will create this 3DNow! Technology to compete with MMX?

    Silly journalists.

  • i hope its for mmx, too.
  • 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.
  • Actually I'm pretty sure the GPL says you only need to release sources to the people you give binaries to. It doesn't say anything about releasing things publically.

    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:

    6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License.

    "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...


  • 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...
  • 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.
  • Posted by Buffy the Overflow Slayer:

    Celery 300A O/C to 450 MHZ. Fast and cheap.
  • One can download optimized distributions. This saves one a lot of hassle.
  • You'll have to recompile all your libraries, too.
  • Well and good.

    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 /'ers report on the KAI compiler's performance?

    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.

  • Either this is a troll, or somebody here really needs to get a life.
  • 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.

  • egcs doesn't exactly come from Cygnus; Cygnus started the project and provides the equipment, but it doesn't control it.
  • 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.
  • The compiler to which they are referring IS gcc, but optimized for Intel processors.
  • From the article:
    ------------------------------------------------ -
    "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:
    ------------------------------------------------ -

    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. /index.html

    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. depth.html

    - Porter

  • I am quite happy with the performance and stability of gcc.
  • by Erich ( 151 )
    Come on... CPUID isn't so bad. It's just what they wanted it to be used for.

    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.

  • 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.
  • by mholve ( 1101 )
    But I'd still rather run something other than Intel whenever possible...
  • 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. :-)
  • Basically, I am not entirely sure that they will have to contribute MMX, KNI optimizations back to GNU.

    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:

    To fully support the Celeron and Pentium II processors, Cygnus will optimize Cygnus GNUPro in the following ways.
    • Celeron and Pentium II processor performance optimizations,
    • GNUPro Compiler (C and C++) Innovation - including conditional move instructions, instruction scheduling based on processor architecture, improved register allocation, integer optimizations, floating point optimizations, and MMX instruction set support,
    • GNUPro Debugger enhancements - including source level debugging, Intel assembly syntax support, Cygnus Insight visual interface,
    • GNUPro Libraries optimized for Intel Architecture for embedded applications,
    • Assembler, linker, loader and binary utilities updated to support the Pentium II processor family,
    • Stabs+ and DWARF2 debugging information incorporated into COFF and ELF object formats,
    • Backward compatibility with the Pentium processor,
    • Host support - Linux, Windows NT/95, Solaris/SPARC, HP-UX.

    Recognizing the power of advanced processor platforms, Cygnus will also support the Pentium III processor with the following optimizations:

    • Additional libraries tuned for Pentium III,
    • Support in the assembler for Streaming SIMD Extensions,
    • Availability and further enhancements will be announced in the second quarter of 1999.

    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.

  • 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.
  • 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.
  • Wow...I found out about this story first by going directly to the ABC News site. They've put this
    right in their headlines!
  • 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?

  • since egcs is based on gcc, and gcc is gpl'd, commercialization of egcs will most likely never happen.
  • I understand Blitz++ has been massively improved under egcs 1.1.1.

Things equal to nothing else are equal to each other.