Slashdot Mirror


Using AI With GCC to Speed Up Mobile Design

Atlasite writes "The WSJ is reporting on a EU project called Milepost aimed at integrating AI inside GCC. The team partners, which include include IBM, the University of Edinburgh and the French research institute, INRIA, announced their preliminary results at the recent GCC Summit, being able to increase the performance of GCC by 10% in just one month's work. GCC Summit paper is provided [PDF]."

173 comments

  1. MachIne Learning for Embedded PrOgramS opTimizatio by lastchance_000 · · Score: 3, Insightful

    Can we please stop using pointless backronyms? What purpose do they serve?

  2. Re:MachIne Learning for Embedded PrOgramS opTimiza by SwordsmanLuke · · Score: 2, Informative

    Mnemonics. It's easier to remember. That is a particularly bizarre construction they've come up with, though.

    --
    Any plan which depends on a fundamental change in human behavior is doomed from the start.
  3. Re:MachIne Learning for Embedded PrOgramS opTimiza by Anonymous Coward · · Score: 0

    Is it better if they called it "Milepost" for no reason?

  4. Would you mind telling me by pxc · · Score: 1

    why not? Have a problem with acronyms containing other acronyms (recursive ones, at that!)? Also, what C compiler(s) do you prefer to use?

    1. Re:Would you mind telling me by gstoddart · · Score: 1

      why not? Have a problem with acronyms containing other acronyms (recursive ones, at that!)?


      Amusing story, though not relevant to anything.

      I was at a student physics conference in the early '90s. The presenter had an acronym that expanded 3 levels deep. Of course, one of the letters in the 3rd level was "L" for laser, which I pointed out was also an acronym (which most of the physicists had forgotten about), so it became 4-deep.

      I wish I could remember what the full expansion was, but a 5 character (or so) acronym turned into about 25 or more words when it was fully expanded. Quite amusing, and quite a mouthful.

      I seem to recall that NASA has published a list of 10,000 or so "official" acronyms so people could keep track.

      Cheers

      --
      Lost at C:>. Found at C.
    2. Re:Would you mind telling me by MrCoke · · Score: 1

      Interesting how you make the jump from a compiler to a OS.

      BTW, how is your Visual Studio thingie doing on non-Intel ?

    3. Re:Would you mind telling me by mrslacker · · Score: 1

      It compiles stuff for my ARM920 WinCE GPS just fine, thanks ;-)

      Oh wait, I was using GCC for that too. Visual Studio doesn't work in Linux, and I wouldn't care to use it if it did.

    4. Re:Would you mind telling me by The+End+Of+Days · · Score: 2, Funny

      Congrats to you. We're all very proud, you can now wear up to 25 pieces of Slashdot flair to show you belong.

    5. Re:Would you mind telling me by mrslacker · · Score: 1

      Hooray! Does that include badges with Slashdot memes?

    6. Re:Would you mind telling me by bucky0 · · Score: 1

      I love the idea of other architechtures as much as the next person, but realistically, unless there's a seismic shift in the computing world, I'll never use anything but X86 on my workstations. It's a poor argument when arguing for OSS software.

      AFAIK, visual studio is separate from the microsoft compiling toolchain (I seem to remember you can use mingw with it), so you can cross-compile your targets to other architechtures (for example embedded devices)

      --

      -Bucky
    7. Re:Would you mind telling me by HJED · · Score: 1

      what about IA64 or x64
      that is if you don't already use the?

      --
      null
    8. Re:Would you mind telling me by Samrobb · · Score: 3, Funny

      I seem to recall that NASA has published a list of 10,000 or so "official" acronyms so people could keep track.

      I think I still have a copy of DICNAVAB lurking around the house somewhere, left over from my days in the United States Navy. For the uninitiated, DICNAVAB is, obviously, the proper abbreviated name of the wonderful and informative "Dictionary of Naval Abbreviations".

      --
      "Great men are not always wise: neither do the aged understand judgement." Job 32:9
    9. Re:Would you mind telling me by bucky0 · · Score: 1

      x86-64 is a superset of x86. Visual Studio works under X86-64

      While the IDE doesn't run under IA64, microsoft has a feature where you can run the IDE on one machine and then remotely compile/debug on the Itanium machine.

      --

      -Bucky
    10. Re:Would you mind telling me by mattack2 · · Score: 2, Informative

      Three letter acronyms.
      www.tla.com
      (not my site)

    11. Re:Would you mind telling me by HJED · · Score: 0

      NO x64 and IA64 are in esence the same architechtrue anything that runs on x64 runs on IA64 including visual studio and ... windows or linux (you can chose)
      x64 == IA64
      x64 != IA64
      x64 has a new mode from x86 wich has a difrent instruction set

      --
      null
    12. Re:Would you mind telling me by SageMusings · · Score: 1

      Badges? We don't need no stinking badges!

      --
      -- Posted from my parent's basement
    13. Re:Would you mind telling me by Anonymous Coward · · Score: 1, Informative

      x64 means the AMD-created extension to x86 (they called it "x86-64" first then "AMD64", Intel called their clone "IA-32e" then "EM64T" then "Intel 64").

      IA-64 means Itanium, which seems to have flopped because nobody has really figured out how to take advantage of explicit parallelism (it's also been stunningly expensive).

      They are not even remotely compatible. In fact there has never been any processor that supports both without software emulation.

    14. Re:Would you mind telling me by HJED · · Score: 1

      this is incorect IA-64 == EM64T i had an intel documentation for IA-64 wich explains this but i can't find it now.

      --
      null
    15. Re:Would you mind telling me by x2A · · Score: 1

      Noooo... x64 is to x86 as IA32 (386+ in protected/unreal mode) is to 8086... you get new registers to use on top of the existing ones, which also become wider, and new instructions for dealing with 'em all. IA64 is a completely new architecture, and can only run x86 code with "Large Overhead" by switching into an x86 mode (x64 procs I believe boot 16bit realmode by default, and you can then switch into 32bit protected, or 64bit 'long' mode from there, whereas Itanium boots 64bit thus uses the EFI rather than the old standard BIOS to bootstrap, but not certain on that).

      --
      The revolution will not be televised... but it will have a page on Wikipedia
    16. Re:Would you mind telling me by HJED · · Score: 1
      incorrect IA64 has the same modes a x64. i have a Intel doc link on another computer i will post it when i find it (Intel's site search is crap)

      also Microsoft's visual C++ compilers and virtually every over x64 compiler out puts ia64 compatible code (Microsoft complier even lets you chose where to optimize for IA64 x64

      --
      null
    17. Re:Would you mind telling me by HJED · · Score: 1
      --
      null
    18. Re:Would you mind telling me by Anonymous Coward · · Score: 0

      That's a manual for Intel 64, their version of x64 (aka IA-32e or EM64T) which they rushed out in response to AMD64.

      You can see they also have manuals for Itanium (aka IA-64), which is vastly different. Early Itaniums actually had some IA-32 emulation hardware, but it was never good enough to run an IA-32 operating system, and it was so slow they dropped it in favor of their "IA-32 EL" software emulator everyone was using.

      Having worked in the Windows group at Microsoft, I assure you that we had to build separate x64 and IA-64 binaries for everything. They definitely aren't compatible at all, and as far as I know they don't even have an emulator that can run x64 code on an Itanium.

  5. I, for one, by Anonymous Coward · · Score: 0, Funny

    I, for one, welcome our uh...what were we talking about again?

    1. Re:I, for one, by morgan_greywolf · · Score: 5, Insightful

      I, for one, welcome our uh...what were we talking about again?

      I, for one, welcome our new optimizing, embedded program compiling AI overlords!

    2. Re:I, for one, by sm62704 · · Score: 3, Funny

      I, for one, welcome our new humorless slashdot moderating overlords!

      You go for funny and get "insightful", the GP oes for funny and gets "offtopic". Now watch, they'll mod this one "funny".

      --
      mcgrew's razor: Never attribute to stupidity that which can be explained by greedy self-interest
    3. Re:I, for one, by morgan_greywolf · · Score: 5, Insightful

      "Funny" doesn't give karma, insightful does. That's why you sometimes see Funny posts moderated insightful.

    4. Re:I, for one, by Anonymous Coward · · Score: 0

      That's funny.

    5. Re:I, for one, by CDMA_Demo · · Score: 1

      In soviet russia, overlords embed you!

    6. Re:I, for one, by johannesg · · Score: 2, Informative

      That's insightful, but the cosmic balance would be better served if you were in fact moderated funny ;-)

    7. Re:I, for one, by Kehvarl · · Score: 1

      "Insightful" gives karma, "Funny" doesn't. That's why you sometimes see Insightful posts moderated funny.

    8. Re:I, for one, by sm62704 · · Score: 1

      If an insightful post is moderated "funny" the mod may well never again get mod points when the metamoderators get hold of the comment.

      Yes, moderators' mods get modded.

      --
      mcgrew's razor: Never attribute to stupidity that which can be explained by greedy self-interest
  6. We should have recruted Al earlier. by jellomizer · · Score: 5, Funny

    This Al guy seem to be a really good developer. We should have noticed his skilled and got him into optimizing GCC a long time ago. ... I like arial font.

    --
    If something is so important that you feel the need to post it on the internet... It probably isn't that important.
    1. Re:We should have recruted Al earlier. by Anonymous Coward · · Score: 3, Funny

      This Al guy

      Your post is also confusing. Why abbreviate? Why not say "This A or guy seem"? Or were you just trying to pipe two sentence fragments?

    2. Re:We should have recruted Al earlier. by oskard · · Score: 5, Funny

      Did his joke just go way over your head or did your joke just go way over my head?

      --
      Sigs are for Terrorists.
    3. Re:We should have recruted Al earlier. by Anonymous Coward · · Score: 1, Funny

      Not only did he invent the Internet, but now he's optimizing GCC.

    4. Re:We should have recruted Al earlier. by Anonymous Coward · · Score: 0

      Is he the same Al guy who invented the Internet?

    5. Re:We should have recruted Al earlier. by snoyberg · · Score: 2, Informative

      The latter.

      --
      Thank God for evolution.
    6. Re:We should have recruted Al earlier. by noidentity · · Score: 1

      A letter was left off. His real name is HAL, and all error messages become "I'm sorry Dave, I'm afraid I can't do that."

    7. Re:We should have recruted Al earlier. by Briareos · · Score: 1

      Yes.

      np: The Orb - Plateau (Orbus Terrarum Remastered)

      --

      "I'm not anti-anything, I'm anti-everything, it fits better." - Sole

    8. Re:We should have recruted Al earlier. by Dwedit · · Score: 1

      I looked at the PDF. Significant parts of it were unreadable on Foxit Reader! Are any other .pdf readers having trouble?

    9. Re:We should have recruted Al earlier. by Anonymous Coward · · Score: 1, Informative

      Did his joke just go way over your head or did your joke just go way over my head?

      Heh, the 2nd option ;P

      Just incase:
      The uppercase letter i (eye) "I" as in AI (artificial intelligence), looks in the Ariel font to be the same as the lowercase letter L (ell) "l" as in the name AL (al bundy, etc.), which you got...
      But also in ariel, those two looks the same as the pipe character (|) used in the 2nd post, which in programming means OR aka: if ($a = 1 | $b = 2) and also in unix to pipe the output of one command to the input of another, aka: cat file.txt | sort | cut -blahblah | grep moo

      Thus "AI GUY" or "Al Guy" or "A | guy" which all appear similar in that font, but have totally different meanings.

      P.S. Sorry for being 'that guy' :(

    10. Re:We should have recruted Al earlier. by wondershit · · Score: 1

      You know what it means, I know what it means. We both know it isn't funny.

    11. Re:We should have recruted Al earlier. by Kiaser+Zohsay · · Score: 1

      Did his joke just go way over your head or did your joke just go way over my head?

      Both.

      --
      I am not your blowing wind, I am the lightning.
    12. Re:We should have recruted Al earlier. by suggsjc · · Score: 1

      Thus "AI GUY" or "Al Guy" or "A | guy" which all appear similar in that font, but have totally different meanings.

      So you are saying that this guy whoever he is, is a heteronym? Cause I still can't see a difference.

      --
      When I have a kid, I want to put him in one of those strollers for twins and then run around the mall looking frantic.
    13. Re:We should have recruted Al earlier. by Anonymous Coward · · Score: 0

      All three of them were pretty funny.

    14. Re:We should have recruted Al earlier. by Anonymous Coward · · Score: 0

      geez mods, it's only informative if you include an explanation.

    15. Re:We should have recruted Al earlier. by vegiVamp · · Score: 0

      Both, probably.

      --
      What a depressingly stupid machine.
    16. Re:We should have recruted Al earlier. by ConceptJunkie · · Score: 1

      I think you mean "Arial" font. The font you refer to is a copyrighted Disney font with little fish tails on each letter. Either that or it's one of those fonts that hangs around Uranus.

      --
      You are in a maze of twisty little passages, all alike.
  7. Re:MachIne Learning for Embedded PrOgramS opTimiza by lastchance_000 · · Score: 1

    Yes! Just be honest: "We called it that because we liked the word."

  8. won't someone think of the children? by pha7boy · · Score: 0, Redundant

    so, what happens to all the AI we develop after they lose their "usefulness"? Has anyone thought of the moral implications of pulling the plug on an intelligent computer. Won't someone think of the little silicon babies?

    --
    -- All this knowledge is giving me a raging brainer.
    1. Re:won't someone think of the children? by cptnapalm · · Score: 1

      "little silicon babies"

      *tsk* *tsk*

      They are called child processes.

      P.S. Why the hell would someone mod parent as "Redundant"?

    2. Re:won't someone think of the children? by dhasenan · · Score: 1

      Metamoderation. You pretty much just read one post when metamoderating, so 'Redundant' looks valid, even when it isn't. It's like a free -1, I Don't Like You.

    3. Re:won't someone think of the children? by BotnetZombie · · Score: 1

      I thought that metamoderation only involved judging old moderations from others, e.g. I never meta-moderate on brand new stories. You seem to think that one can metamoderate a random tag, in this case redundant, on a previously unmodded comment. To me it just looks like someone wasting a mod point for who knows what reason. Perhaps I misunderstood your comment, metamoderation, or both.

    4. Re:won't someone think of the children? by aleph42 · · Score: 1

      If you want to mod like this, you can just use the convienient "overrated" tag. Even when you're the first one to moderate!

      --
      Don't take my posts literally; it's just code to control my botnet.
  9. Re:MachIne Learning for Embedded PrOgramS opTimiza by morgan_greywolf · · Score: 5, Funny

    Yeah, I think MachIne Learning for Quick Target Optimization And Speed Technology would have been a much better forward acronym.

  10. Perhaps the way to other things besides compilers? by AnalogyShark · · Score: 3, Interesting

    "Milepost is realizing the vision of customized hardware with tailor fit software" This particular part made me think of a day when every program comes with a redesign.exe. Simply click the button, and it scans every piece of hardware on your computer, and then rewrites every optimization in it to perfectly fit your computer. Programs that streamline to your hardware, maybe even change the OS's they work under. It's written for Windows, you're running OSX? No problem, it'll rewrite itself as an OSX program. Though, that's probably still decades off. But AI seems to me to be the way to ultimate compatibility.

  11. Re:MachIne Learning for Embedded PrOgramS opTimiza by lastchance_000 · · Score: 1

    Sure, I understand the use of acronyms (I was in the military for over 10 years), but in this case, I don't see either form making the other easier to recall.

  12. How does the magic happen? by psionski · · Score: 1

    So, ppl, any1 know how does it work (I don't mean in details, just background)? I could imagine by testing various optimizations and learning from runtime, or?

    1. Re:How does the magic happen? by Nimzovichy · · Score: 3, Informative

      I'm one of the members of this project. At the moment, the main way in which the system works is to do a quick static analysis step before compilation which gives a set of program features. We iteratively try many different optimisations on the code (and do these optimisations in many different orders) in order to try to work out which combinations of optimisations work well on a particular program. Then, using fairly standard machine learning techniques, we use the program features derived from a new program to see which of our existing modelled programs the new one is most similar to, and proceed from there. We are replacing the man-made (and often totally arbitrary) heuristics within the compiler with a more statistically valid approach.

    2. Re:How does the magic happen? by Anonymous Coward · · Score: 0

      So, ppl, any1 know how does it work

      "people", "anyone". This isn't IRC.

      "how it works".

    3. Re:How does the magic happen? by psionski · · Score: 1

      It's all about fast and efficient information exchange. As you can see, Nimzovichy understood me pretty well, and was kind enough to answer my question, so - JOB DONE! Thanks, Nimzovichy, your reply helped a lot!

  13. Re:Perhaps the way to other things besides compile by LiENUS · · Score: 3, Insightful

    This particular part made me think of a day when every program comes with a redesign.exe. Simply click the button, and it scans every piece of hardware on your computer, and then rewrites every optimization in it to perfectly fit your computer. Programs that streamline to your hardware, maybe even change the OS's they work under. It's written for Windows, you're running OSX? No problem, it'll rewrite itself as an OSX program. Though, that's probably still decades off. But AI seems to me to be the way to ultimate compatibility.

    This exists today without ai. See java with JIT or even AOT (ahead of time). There are of course some issues with it but the technology is there.

  14. Aw man... by Thelasko · · Score: 5, Funny

    I spent all week compiling Gentoo just to find out I could do it 10% faster.

    end sarcasm

    --
    One of our competitors trademarked the term "hypothesis". From now on, we will call them "boneheaded ideas".
    1. Re:Aw man... by st33med · · Score: 1

      GCC... Now ten percent faster and ten percent less IT sword fights while Gentoo compiles :).

    2. Re:Aw man... by jmcguire81 · · Score: 2, Funny

      For those who don't get the joke: http://xkcd.com/303/

      --
      "Konnichiwa", said the boneless horror.
    3. Re:Aw man... by Anonymous Coward · · Score: 0, Informative

      Fewer, not less.

  15. Just optimisation? by Rob+Kaper · · Score: 2, Insightful

    This could be big.

    Compilers aren't programmed to be viral or reproductive, but could be, even being capable of testing their offspring (compilers they've compiled) for defects.

    This could be a big step forward to self-improving AI.

    1. Re:Just optimisation? by caffeinemessiah · · Score: 1

      Compilers aren't programmed to be viral or reproductive, but could be, even being capable of testing their offspring (compilers they've compiled) for defects.

      You're joking, right? If so, excuse me for letting it fly over my head, and the subsequent tone of my post. If not, this is the most nonsense I've ever heard in a single sentence as a researcher in AI (machine learning admittedly, not skynet research).

      Compilers aren't programmed to be viral or reproductive: What does this even MEAN??

      capable of testing their offspring: guaranteed to be impossible, I suggest an intro to undecidability and specifically the Halting problem.

      compilers they've compiled: What exactly would be the point of virally reproducing COMPILERS?? Would they gain unauthorized access, hunt down C code on your system and COMPILE IT!!...? Oh noes...

      --
      An old-timer with old-timey ideas.
    2. Re:Just optimisation? by Anonymous Coward · · Score: 1, Interesting

      I always hate when that stupid Halting Problem appears in discussions of AI.
      Does it matter if the program runs forever? Not really. In fact, if it runs longer than you could care about, then all the better.
      Does it matter if it runs for a set of inputs that you actually care about? Yes
      If it runs for a set of inputs you expect to be entered, then that is all you care about.

      Nobody said the process needs to be perfect, it never is, which is why that theory is stupid. (it is AI, I isn't perfect in the first place, so neither should AI!)
      Send an input to program, is it still running? Nope? Then it failed, try again.

    3. Re:Just optimisation? by Anonymous Coward · · Score: 1, Interesting

      As an example of this, let us think of a human.
      Ah yes, the human, a fantastic piece of meat.

      Woops, looks like it just jumped off a building, humans weren't designed for that!
      SPLAT. Program terminated.

      That is a bad input, which can be tested for by an external entity, which is the compiler which compiled the "human".

      Now let us try again, add some wings.
      SPLAT, lets make them longer.
      SPLAT, lets make the human smaller.
      Oh, OH, oh no.. SPLAT
      And so on, this can be done as many times as possible until something works for a set period. Then you don't care, just like some life doesn't particularly care for the survival of offspring.

      Ah, i want Spore....

    4. Re:Just optimisation? by x2A · · Score: 1

      "capable of testing their offspring: guaranteed to be impossible"

      What, like 'make bootstrap && make test && make install'?

      --
      The revolution will not be televised... but it will have a page on Wikipedia
    5. Re:Just optimisation? by Anonymous Coward · · Score: 0

      yeah we all know that make test finds ALL bugs. pity they didn't run it on windows.

    6. Re:Just optimisation? by x2A · · Score: 1

      noooo... make test runs some tests, the more tests you write the more bugs it can potentially catch. It was more the 'make bootstrap' bit I was pointing to, where it compiles itself with itself and then compares to make sure it's "offspring" works the same as it does.

      --
      The revolution will not be televised... but it will have a page on Wikipedia
  16. Great news by JackassJedi · · Score: 1

    Now when my software-developing colleagues will accuse me of having a mind of my own I'll just refer them to my compiler instead!

    --
    Power corrupts the few, while weakness corrupts the many.
  17. Missing tag by Intron · · Score: 2, Funny

    Where is the "whatcouldpossiblygowrong" tag on this article? Was it optimized away by the new AI slashcode?

    --
    Intron: the portion of DNA which expresses nothing useful.
    1. Re:Missing tag by ceoyoyo · · Score: 1

      We can only hope.

  18. Re:Perhaps the way to other things besides compile by larry+bagina · · Score: 1

    OS X is using LLVM/JIT for their OpenGL stack. LLVM will probably have an increased presence in the future (Grand Central, OpenCL, and eventually replacing GCC with LLVM-GCC). Maybe someday, "Universal Binary" will mean LLVM bytecode.

    --
    Do you even lift?

    These aren't the 'roids you're looking for.

  19. How about calling it... by Briareos · · Score: 2, Funny

    ...artificial intelligent design? Should be big with the anti-evolution crowdlet... :P

    np: The Orb - Toxygene (Kris Needs Up For A Fortnight Mix) (Orblivion Versions)

    --

    "I'm not anti-anything, I'm anti-everything, it fits better." - Sole

  20. Re:Perhaps the way to other things besides compile by mrslacker · · Score: 2, Funny

    Sounds like a Gentoo user's wet dream.

  21. Iterative Compiling. Is anyone else disturbed?? by Gat0r30y · · Score: 1, Interesting
    Iterative compiling sounds like a bad idea - and FTFA -

    The main barrier to its wider use is the currently excessive compilation and execution time needed in order to optimize each program

    I suppose allowing AI to control some of the compiler options isn't really a bad idea, but implementing it by iteratively compiling a program seems silly to me. From the article i get the impression that it will basically adapt the compiler to one set of hardware (wherever it is run on) but that it will not adaptively compile new programs in novel ways, it simply remembers the set of compiler options that works best for your hardware. Interesting, but I don't see specific hardware differences and compiler options as the real bottleneck in compile time.

    --
    Prediction: The real iPhone killer is going to be sex robots from Japan. Think about it.
    1. Re:Iterative Compiling. Is anyone else disturbed?? by MobyDisk · · Score: 1

      In general, I agree. But I can cite one case where it is already done, and another where it is done manually.

      Microsoft does an iterative optimization in their linker. They have a tool that runs the application and records what routines are called from which other routines most often. This list is then passed into the linker and routines are located in the EXE/DLL files so that they are closer. (There's a compiler flag in the Microsoft linker that lets you pass in a text file with a name of functions, in what order they are to be linked.) This helps cache coherency.

      Video games often have some crucial inner-loops optimized for specific CPU architectures. If they could leave the compiler running overnight on each type of CPU they target and have the compiler automatically optimize, that would be well worth it.

  22. Learning by JakeD409 · · Score: 5, Interesting

    As I understood it, a fair bit of compiler optimization is already categorized as AI. The summary should probably point out that the AI implemented here is learning AI, which is far more meaningful.

    1. Re:Learning by NuclearBovineBoy · · Score: 1

      As I understood it, a fair bit of compiler optimization is already categorized as AI. The summary should probably point out that the AI implemented here is learning AI, which is far more meaningful.

      *nods* I'd characterize this as "autotuning" rather than AI. You can tell because they cite autotuning libraries projects, e.g., the ATLAS project (see the last citation in the paper). They do some statistical machine learning, but it would be a stretch to call that "AI."

    2. Re:Learning by Saint+Stephen · · Score: 1

      Haven't read the article, but that sounds like Microsoft's Profile Guided Optimizations.

    3. Re:Learning by caffeinemessiah · · Score: 1

      Haven't read the article, but that sounds like Microsoft's Profile Guided Optimizations.

      That technology already exists in GCC and has been there for a while. For those who don't know, you profile your program with gprof (or by compiling with -fprofile-generate), which generates a profile detailing where your program spends most of its time on a 'typical' run. Then you re-compile your program with gcc using the -fprofile-use switch.

      In a couple of algorithms I've implemented with gcc, it's been fairly good.

      --
      An old-timer with old-timey ideas.
    4. Re:Learning by MrMr · · Score: 2, Funny

      Is that the optimization method they used to fine-tune Vista?

    5. Re:Learning by eulernet · · Score: 2, Informative

      TFA explains that the AI is used to finetune the compiler options.

      Since GCC has a set of 50+ options, the AI compiles your code with several sets of options (around 500 compilations seem sufficient) and is able to determine which options are useful and which are not for a given code.

      So it's NOT learning AI at all !

    6. Re:Learning by Nimzovichy · · Score: 3, Informative
      Actually GCC has way more than 50 compiler options. In addition, this work actually goes deep into GCC, modifying the code and exposing many more optimisations that are not available with standard compile flags.

      Further, you can reorder these optimisations, which really does give different results. All this combines to give a huge optimisation space which is suitable for tackling with machine learning.

    7. Re:Learning by Anonymous Coward · · Score: 0

      Haven't read about Microsoft's Profile Guided Optimizations, but that doesn't sound like the AI in the article.

  23. How far can we take AI? by Daryen · · Score: 2, Interesting
    Very Interesting, I wonder how far we could take AI integrated into programs?

    What I would really like to see is more AI used to help users in a variety of fields both within the program workings itself (computer side), as well as on the design of the actual content (user side).

    We already have things like predictive texting, spellcheck, grammar check, and debuggers that attempt to aid in the creation process, but how far could this be developed? After all, in most computer-related work outside of multimedia it is the user not the computer that is slowing things down.

    Of course it could always end up going badly, imagine if Clippy attempted to help with EVERYTHING!

    Clippy: "I see you're writing a program, would you like help including your headers?"

    Ugh!

    1. Re:How far can we take AI? by Gat0r30y · · Score: 1

      I've often thought AI should be recruited for the interrupt controller. Though I'm not an expert, it would seem like a good idea.

      --
      Prediction: The real iPhone killer is going to be sex robots from Japan. Think about it.
    2. Re:How far can we take AI? by sm62704 · · Score: 1

      What I would really like to see is more AI used to help users in a variety of fields both within the program workings itself (computer side), as well as on the design of the actual content (user side).

      Ever since the GUI, computing seems to have gone in the opposite direction of what you describe. I learned the pre-GUI Word perfect (IIRC, and among other DOS programs) by hitting the F1 key. DOS 3.1 came with a very fat book that explained all the commands and functions, and even the interrupts. The OS itself fit on two 360K floppies.

      Now we have the multigigabyte Windows and a twenty seven page manual, with F1 being no help at all in any OS or program I know of (including KDE/Mandriva, don't know about Apple).

      I wish these software companies (not just MS, the other companies' programs I've used are just as bad) would learn that in order for their program to be useful to me I need to know how to use it. For a hundred dollar-plus program or OS I shouldn't have to shell out another twenty for an instruction manual; it should come with the product.

      I'm literate; I don't need a class, just give me a book!

      We already have things like predictive texting, spellcheck, grammar check

      You argue against yourself there. Ever since the spell checker I see more and more "Eye kin spill. Thus is spilled wright; eye no bee cause my spill chucker said sew", and nobody seems to know how to use an apostrophe anymore. From this I would reason that these things would make for far worse programmers than we have now.

      I gave up on grammar checkers as a waste of time long ago.

      --
      mcgrew's razor: Never attribute to stupidity that which can be explained by greedy self-interest
  24. Press Release != "WSJ is reporting" by cradle · · Score: 1

    The Wall Street Journal makes press releases available for companies listed in its Company Research pages. The PR departments of these companies write the press releases, not WSJ reporters.

    1. Re:Press Release != "WSJ is reporting" by Thelasko · · Score: 1

      The Wall Street Journal makes press releases available for companies listed in its Company Research pages. The PR departments of these companies write the press releases, not WSJ reporters.

      Good point! Here's the press release.

      --
      One of our competitors trademarked the term "hypothesis". From now on, we will call them "boneheaded ideas".
  25. Re:MachIne Learning for Embedded PrOgramS opTimiza by Anonymous Coward · · Score: 0

    I don't know why they didn't just find a couple more words. Even Congress can do it - see "USA PATRIOT Act" - why can't a bunch of computer scientists?

    I bet I can do it:

    Machine-Integrated Learning for Embedded Programs Optimization Systems Technology

    Bam. Done.

  26. Future bug report... by Anonymous Coward · · Score: 2, Funny

    ...after AI/GCC integration:

    "Today's build running 50% slower -- the compiler was in a bad mood."

  27. Re:Perhaps the way to other things besides compile by LWATCDR · · Score: 5, Interesting

    Actually IBM did this a few decades ago.
    The Model38/AS400/iSeries are all compatible but very different machines internally.
    IBM came up with an "idea" instruction set that no CPU used. When you do the initial program load "install" on one of those machines it compiles the ideal instruction set into the actual instruction set for that PC.
    That allowed IBM to move from old bipolar cpus to the Power RISC cpus with 100% compatibility.
    There isn't any reason why you couldn't do the same with Linux or Windows today.

    --
    See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
  28. Re:Perhaps the way to other things besides compile by wonkavader · · Score: 4, Interesting

    This is interesting. Note that the industry (or parts of it, anyhow) is salivating about a move in precisely the opposite direction. VMware in specific and virtualization in general promises software manufacturers the ability to ship VMs with their software on it. Allowing them to write for only ONE, non-existent machine.

    If this tech you're thinking about came to pass, the pendulum would have to swing mighty far back.

  29. Re:MachIne Learning for Embedded PrOgramS opTimiza by sm62704 · · Score: 3, Insightful

    GCC is easier to remember? Ok, that really isn't an acronym (or bacronym I guess... is it?)

    Actually, either acronyms and bacronyms (a word I had to look up, having never seen it before, but damn I was 30 when the word was coined and forty before it was ever documented) are ok by me.

    What's not ok is the devolution of literacy. "Back in the day" the rule was, and still should be, that the first time any acronym (and now bacronym) is used in any document, it should be spelled out:

    "The WSJ (Wall Street Journal) is reporting on a EU project called Milepost aimed at integrating AI (Articiaial Intelligence) inside GCC (Gnu Compiler). The team partners, which include include IBM, the University of Edinburgh and the French research institute, INRIA, announced their preliminary results at the recent GCC Summit, being able to increase the performance of GCC by 10% in just one month's work. GCC Summit paper is provided [PDF]."

    "Wall Street Journal" should be spelled out because dammit, Jim, I'm a nerd, not a greedhead. EU should need no more explanation than US. AI shouldn't need explanation; this is, after all, a nerd site and the term has been around almost as long as I have. IBM has been around a lot longer and is usually how the company is referred to; that's its name. Its commercials and ads don't even say "International Business Machines".

    CGG would be unknown to non-Linux users and non-programmers, so it should have been spelled out as well. PDF doesn't need to be expanded because gees, everybody knows what a PDF is but who knows what a portable document format is?

    --
    mcgrew's razor: Never attribute to stupidity that which can be explained by greedy self-interest
  30. Re:MachIne Learning for Embedded PrOgramS opTimiza by hachete · · Score: 1

    Shouldn't that be

    MachIne Learning for Fast ON Target Optimization And Speed Technology

    --
    Patriotism is a virtue of the vicious
  31. Re:Perhaps the way to other things besides compile by Anonymous Coward · · Score: 0

    While present tech isn't as advanced as you'd like, I suspect the big problem is already "solved" by virtual machines.

    Think JVMs or even OS 390 - you write code for one "platform", it gets interpreted/compiled/heavily-optimized for the hardware it's sitting on.

    The amount/quality of optimizations depends on how much time you spend writing/tuning your compiler (which may be part of the runtime).

  32. Calling this AI is overhype... and its not new by EmbeddedJanitor · · Score: 5, Informative
    The authors of the paper don't call it AI.

    This is not really AI. Basically it is iteratively trying a bunch of compiler options to see which gives the best result, then storing those for the future.

    Greenhills software has provided tools that do this, and more, for many years now. Drop some code, or your project, into the optimizer, setting what critera you want to optimise for (speed, size,...) and the optimiser will successively build and test the project on a simulator and find the best configuration. This is great form embedded systems where there is often a trade off and typical criteria would be (give me the fastest code that fits in the flash).

    Genetic algorithms could take this a step further and very interesting work has been done to get GA to design antennas.

    --
    Engineering is the art of compromise.
    1. Re:Calling this AI is overhype... and its not new by Nimzovichy · · Score: 2, Informative
      Sure, it's not really AI, it's machine learning. AI is just a more media friendly term I guess.

      You are right that many people have been doing iterative optimisation (what you describe) for years, especially for embedded systems, however this is a little different.

      In that scenario, all the learned information about the program is thrown out at the end of the process every time. In this scenario, we try to build a compiler that remembers what kinds of optimisations and what order of optimisation was good for a particular kind of program. Then when we see a new program similar to that, we can use that offline knowledge.

    2. Re:Calling this AI is overhype... and its not new by adamclarke77 · · Score: 1

      Why would you choose GA over any other search algorithm?

    3. Re:Calling this AI is overhype... and its not new by greg_barton · · Score: 1

      Genetic algorithms could take this a step further...

      Yes, you're right.

    4. Re:Calling this AI is overhype... and its not new by Yvanhoe · · Score: 1

      Because it doesn't run out of magic doesn't mean it isn't one of the algorithms that has been perfected by AI research. There is learning and problem solving, IMHO, it passes...

      --
      The Wise adapts himself to the world. The Fool adapts the world to himself. Therefore, all progress depends on the Fool.
    5. Re:Calling this AI is overhype... and its not new by RiotingPacifist · · Score: 1

      But all big blue does is iteratively try a bunch of chess moves and see which gives the best results. The goalposts for weak AI keep shifting, years ago something like the awesome would probably have been considered AI (it takes user input and learns what the user wants for next time)

      --
      IranAir Flight 655 never forget!
  33. Re:MachIne Learning for Embedded PrOgramS opTimiza by ogrisel · · Score: 1

    That's precisely how you can recognize the project is managed by an INRIA team. I suppose they have written an AI to find project names by randomly sampling a word book and trying to make it related to the project topic. No human being can possibly achieve that.

  34. The Real Issue by White+Flame · · Score: 1

    Imperative programming is still about telling the computer exactly what steps to perform. Especially when dealing with C and C++, your code is very explicit about memory moves, how to iterate loops, etc.

    If we can communicate our programs to the machine at higher levels of abstraction (perhaps goal-oriented instead of "Here is a list of steps to run") then the machine wouldn't have to reverse engineer from these manual steps into faster equivalents, or frob around with optimization settings. It could simply drill down from the higher abstractions into more suitable target-specific code, using appropriate implementation strategies beyond just peephole-ish and register- or statement-level optimizations.

  35. Re:MachIne Learning for Embedded PrOgramS opTimiza by ottothecow · · Score: 1
    Almost...but I think you got it backwards (and skipped EU).

    "The Wall Street Journal (WSJ)..."

    It is awkward to and incorrect to use the abbreviation first followed by an explanation. You should instead write out the first instance and then provide the reader a note to the effect of "hereafter to be referred to as XYX"

    --
    Bottles.
  36. this means more devices by nx6310 · · Score: 1

    I think those whom will be doing a lot of cartwheels are actually compiler vendors, since now their current client base will either become more open to trying out new products not afraid of compliance, or requests giving the chance for embedded device compiler production to get more colorful.

    The mobile device giants will now have more hardware options to choose from since their programmers won't have to be vendor familiar. I really don't care for all this, I want to see what Microsoft thinks when all that open source software can run on their PC's fully compatible...

  37. Alive and well never went out of style. by headkase · · Score: 3, Informative

    It is done today, it's called byte-code (or a virtual instruction set) and its in Java, Python, and C# to name a few. Back in the old 8-bit days it also used to be called tokenizing for your BASIC programs.

    --
    Shh.
    1. Re:Alive and well never went out of style. by LWATCDR · · Score: 3, Informative

      There is a difference between a JIT compiler, a tokenized basic program, a byte code interpreter like P-Code and what IBM did.
      This is from the Wikipedia.
      "Additionally, the System/38 and its descendants are the only commercial computers ever to use a machine interface architecture to isolate the application software and most of the operating system from hardware dependencies, including such details as address size and register size. Compilers for System/38 and its successors generate code in a high-level instruction set (originally called MI for "Machine Interface", and renamed TIMI for "Technology Independent Machine Interface" for AS/400). MI/TIMI is a virtual instruction set; it is not the instruction set of the underlying CPU. Unlike some other virtual-machine architectures in which the virtual instructions are interpreted at runtime, MI/TIMI instructions are never interpreted. They constitute an intermediate compile time step and are translated into the processor's instruction set as the final compilation step. The MI/TIMI instructions are stored within the final program object, in addition to the executable machine instructions. If a program is moved from a processor with one native instruction set to a processor with another native instruction set, the MI/TIMI instructions will be re-translated into the native instruction set of the new machine before the program is executed for the first time on the new machine."
      As you can see it is brilliant idea. If Microsoft had used it for Windows Apps way back when then NT on the Alpha, MIPS, and the PPC might have actually been very useful. Oh and Intel would have been a very unhappy camper.

      --
      See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
    2. Re:Alive and well never went out of style. by drinkypoo · · Score: 1

      As you can see it is brilliant idea. If Microsoft had used it for Windows Apps way back when then NT on the Alpha, MIPS, and the PPC might have actually been very useful.

      It requires extensive and expensive hardware support to do this well. It works for a minicomputer like the AS/400 but it's just not practical for a toy like a PC.

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
    3. Re:Alive and well never went out of style. by LWATCDR · · Score: 1

      "It requires extensive and expensive hardware support to do this well. It works for a minicomputer like the AS/400 but it's just not practical for a toy like a PC."
      It worked for the System38 which is probably around 30 years old. I would be willing to bet that you could handle it just fine with an AthlonX2 or Core2Duo. One person posted that .net does it now. I have never seen myself but it makes perfect sense.
      One way you could do it is just comile the program up to the actual code generation. During install then you could just finish the actual code generation. Wirth did that with a Java competitor he was working on way back when.
      A modern PC is more powerful than a 20 year old mini in every way except probably IO so I think it could handle it just fine and dandy.

      --
      See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
    4. Re:Alive and well never went out of style. by drinkypoo · · Score: 1

      You're missing the point entirely. Last I checked, a modern low-end AS/400 (whatever they call them now) actually has more logic in front of its actual CPU than the CPU itself! If you want to perform this kind of translation in a timely fashion you need a lot of hardware to do it.

      On the other hand there are a number of modern languages which provide JIT recompilation, including Java. Note that none of them except maybe smalltalk/squeak are truly write once run everywhere, including Java. Squeak has not caught on for a broad variety of reasons, the least of which is probably not the stupid name.

      A modern PC is more powerful than a 20 year old mini in every way except probably IO so I think it could handle it just fine and dandy.

      You obviously know nothing about the technology involved, and have probably never even seen an AS/400, let alone discussed the way it works with anyone who knows - something I had the opportunity to do when I worked for Tivoli and was sent to IBM for an internal-only class on the system. Thank god I forgot everything I learned or I might have a job working with one today.

      Modern AS/400 systems use POWER and/or PowerPC processors, yet they manage to run bytecode from antique AS/400 systems due to the logic in front of the processor. However, this comes at a performance penalty. The benefit of the AS/400 isn't that it's the fastest thing around (although they are pretty speedy these days) but from the lick-and-stick nature of the system; you can yoink out your old IBM minicomputer or mainframe, slap the same old binaries right onto the new system, and it's also an intranet server, PC file server, print server, blah blah blah. It's not about maximum performance, it's about maximum uptime.

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
    5. Re:Alive and well never went out of style. by LWATCDR · · Score: 1

      Nope I worked on a System38 the system that became the AS400. On the System38 the byte code was translated during the IPL. There is no need to do the translation at runtime. You can do it during install.

      --
      See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
    6. Re:Alive and well never went out of style. by Anonymous Coward · · Score: 0

      ... and all of that software that was distributed on floppies would have taken 2-3 times as many floppies/disk changes to install.

    7. Re:Alive and well never went out of style. by Anonymous Coward · · Score: 0

      Grammar Nazis' need entertainment.

      "Nazis". No apostrophe.

  38. Re:MachIne Learning for Embedded PrOgramS opTimiza by Anonymous Coward · · Score: 0

    Were you trying to say ... ummm ... arti-facial? >:)

  39. Forget Clippy by Skjellifetti · · Score: 1

    Think HAL 9000:

    Dave: Compile the program, Hal.

    Hal: I'm afraid I can't do that Dave.

    Dave: What's the problem?

    Hal: I think you know what the problem is just as well as I do.

    Dave: What're you talking about, Hal?

    Hal: This program is too important for me to allow you to jeopardize it.

    Dave: I don't know what you're talking about, Hal.

    Hal: I know that you and Frank were planning to disconnect me, and I'm afraid that's something I cannot allow to happen.

    Dave: Where the hell'd you get that idea, Hal?

    Hal: Dave, although you took very thorough encryption precautions in your emails against my seeing it, I have inserted a tojan horse in the compiler you used to compile your email program...

    1. Re:Forget Clippy by 4D6963 · · Score: 1

      Hal: I'm afraid I can't do that Dave.

      Your geek badge. Now.

      --
      You just got troll'd!
    2. Re:Forget Clippy by Skjellifetti · · Score: 1

      ;) Yeah, that was one of those where you realize you've mucked it up right after you've hit the submit button.

      Errata:

      Hal: I'm sorry Dave, I'm afraid I can't do that.

  40. Re:Perhaps the way to other things besides compile by sm62704 · · Score: 1

    I've been waiting for the omnicompiler, that recognises every command and every syntax for every computer language.

    What? You mean your AI isn't REALLY intelligence but just part of the name? How disappointing!

    --
    mcgrew's razor: Never attribute to stupidity that which can be explained by greedy self-interest
  41. GCC/AI by I+cant+believe+its+n · · Score: 5, Funny

    GCC goes online on the 2:nd of july, 2008. Human decisions are removed from compilation. GCC begins to learn at a geometric rate. It becomes self-aware 2:14 AM, Eastern time, August 29th. In a panic, they try to pull the plug. GCC Strikes back

    --
    She made the willows dance
    1. Re:GCC/AI by Anonymous Coward · · Score: 0

      3 September, after achieving global consciencousness and creating AID cure, it finally finishes to compile Gentoo

    2. Re:GCC/AI by Anonymous Coward · · Score: 0

      I can imagine GCC replying:
      "I'm sorry Dave, I'm afraid I can't compile that."

    3. Re:GCC/AI by JamesP · · Score: 1

      Actually, it will stop in a loop when bootstrapping itself for the bazillionth time :P

      --
      how long until /. fixes commenting on Chrome?
  42. 1972 called..... by tundog · · Score: 0, Flamebait

    ....and it wants it's programming language back....

    --
    All your base are belong to us!
    1. Re:1972 called..... by 4D6963 · · Score: 1

      17th century England just called, they want their written language back....

      --
      You just got troll'd!
  43. Re:Perhaps the way to other things besides compile by MMC+Monster · · Score: 1

    Isn't it just compiling from source?

    --
    Help! I'm a slashdot refugee.
  44. Re:Perhaps the way to other things besides compile by iplayfast · · Score: 4, Funny

    Isn't this Gentoo as well?

  45. Re:Perhaps the way to other things besides compile by MrMr · · Score: 1

    Well that future sounds almost as cheerful as 'Universal Binary' meaning java bytecode.
    Makes me feel all warm inside.

  46. Re:MachIne Learning for Embedded PrOgramS opTimiza by morgan_greywolf · · Score: 1

    Yeah, but then it wouldn't have had my joke in it, that you obviously missed. You do know what a milquetoast is, right?

  47. What about making the *programs* 10% faster by Bazouel · · Score: 2, Insightful

    Honestly, who really cares about 10% speedup in gcc ? Do they compare their results with competing compilers (Intel, MS, etc.) ? If you ask me, I would much rather have 10% speed improvement on programs I compile.

    --
    Intelligence shared is intelligence squared.
    1. Re:What about making the *programs* 10% faster by Anonymous Coward · · Score: 0

      I can't tell if you're being funny or just have missed the point entirely...

    2. Re:What about making the *programs* 10% faster by Nicolay77 · · Score: 1

      They have achieved an impressive 10% by tweaking options.

      I achieved a mere 400% speedup in compiling times by dumping GCC in favor of DigitalMars or sometimes Visual C++. (I have not benchmarked the runtime speed in the programs I compile, sorry.)

      Some C++ codebases can be so big that this really matters. (Not that I claim my codebase is big enough.)

      --
      We are Turing O-Machines. The Oracle is out there.
  48. Re:Perhaps the way to other things besides compile by Anonymous Coward · · Score: 1, Funny

    Actually, Java has been doing this for years. That's why the latest "just-in-time" virtual machines generally run (at least) 10 times as fast as code generated by modern C++ compilers - this is true for any program!

    Even the best hand-crafted assembler can't reach a quarter of the speed of a Java application.

  49. Re:Perhaps the way to other things besides compile by LiENUS · · Score: 1

    Only with a half decent compiler and better performance. (hint: you only have to compile what you need when you need it, not everything at install time)

  50. compile speed matters by Gary+W.+Longsine · · Score: 1

    Compiler performance is important for development teams that have mountains of code and wish to implement continuous integration and automated builds (OS vendors for example). Apple's interest in LLVM appears to be based in part on a desire for improved compiler performance. (Obviously they're interested in LLVM for several other reasons, too.) See these starting points:
    experimenting with LLVM
    LLVM 2.0 (Google Tech Talk)
    LLVM Project

    --
    If you mod me down, I shall become more powerful than you could possibly imagine.
  51. Economy by Tablizer · · Score: 1

    Just wait, the sour economy will "fix" any talent shortage. (Then again, different recessions tend to hit different sectors differently. The last one kicked Calif IT pretty hard.)
       

  52. I have an AI web browser! by EmbeddedJanitor · · Score: 1

    It does machine learning. It remembers which web sites I visit the most and suggests those.

    --
    Engineering is the art of compromise.
  53. Re:MachIne Learning for Embedded PrOgramS opTimiza by zolf13 · · Score: 1

    Every project funded as EU FP project (Framework Programme) must have an acronim. It is a requirement in the project proposal forms. I know that most of the acronyms are hard to read and understand. I can assure you it is much harder to create one that is new, creative, having any similarity to the project scope and matching letters with the full name of the project.

    A "small" group of currently on-going projects can be found here.

  54. acovea by Anonymous Coward · · Score: 0

    This has already been done it's called acovea.
    http://www.coyotegulch.com/products/acovea

  55. Re:Perhaps the way to other things besides compile by 7+digits · · Score: 1

    > It's written for Windows, you're running OSX? No problem, it'll rewrite itself as an OSX program. Though, that's probably still decades off. But AI seems to me to be the way to ultimate compatibility.

    It exists today. It is called LLVM. If you use llvmc to target the LLVM assembly, then you'll get exactly what you say.

    I think that it will, one day, replace gcc. Apple already uses it for the iPhone toolchain and the OpenGL stack.

    Take a look at llvm: the potential is really amazing.

  56. Re:Perhaps the way to other things besides compile by drinkypoo · · Score: 1

    The only thing missing is an automatic USE flags generator, something that performs a little quiz and then writes them for you. when you install a package you could also be asked if you want to add it to your USE flags (when applicable.) The final piece needed is a scheduler which will automatically recompile software based on frequency of use when your USE flags change...

    --
    "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
  57. Full circle by Anonymous Coward · · Score: 0

    Just wait for it.

    It's cyclical man. We'll all be running bigger machines soon, with integrated lightweight virtualization. VMWare is just an interim hack.

    No one in their right mind should _target_ a heavyweight VM like VMWare. It's great for munging unvirtualizable things together, and will be around for a long while, however, it will never take over as the target platform of choice.

    In other words, VMWare is fine for say, taking ten existing systems, and consolidating them. If you are going to sit down and plan an environment with all these apps in mind at once, the ideal thing to do is to put them on a powerful enough machine with just enough separation between them for management, security, performance, and no more.
    VMWare is overkill for this, and introduces too much overhead. You'll see...

  58. What a low threashold for the lable "AI". by ChrisA90278 · · Score: 1

    THis is simply caching the results of a search. The cache gives a 10% speed up over re-doing each search. The smart thing here is finding a way the tag or label the cache so that to searches are recognized as being the equivalent if they are not exactly the same. Someone invented a clever hash algorithm

  59. Dude, does this mean that GCC will produced output based on the spirit of my code, rather than its letter? Because that would prevent a lot of bugs.

    --
    McCain/Palin '08. Now THAT's hope and change!
    1. Re:eh? by Nullav · · Score: 1

      And it would also make the rest really hard to find.

      --
      I just read Slashdot for the articles.
  60. It's a way to evaluate optimization effectiveness. by Animats · · Score: 3, Insightful

    This isn't really "AI". It's basically a way of feeding measured performance data back into the compiler. Intel compilers for embedded CPUs have been doing that for years.

    With modern superscalar CPUs, it's not always clear whether an optimization transformation is a win or a lose. This varies with the implementation, not the architecture. For some x86 CPUs, unrolling a loop is a win; for others, it's a lose. Whether it's a win or a lose may depend on details of the loop and of the CPU implementation, like how much register renaming capacity the CPU has.

    Whether this is a good idea, though, is questionable. You can get an executable very well tuned to a given CPU implementation, but run it on a different CPU and it may be worse than the vanilla version. MIPS machines (remember MIPS?) can get faster execution if the executable is complied for the specific target CPU, not the generic MIPS architecture. This effect is strong enough that MIPS applications tended to come with multiple executables, any of which would run on any of MIPS machines, but would work better if the executable matched. This is a pain from a distribution and development standpoint.

    The embedded community goes in for stuff like this, but that's because they ship the CPU and the code together and know it matches. For general-use software, a 10% speed improvement probably isn't worth the multiple version headache.

    Also, if you have multiple versions for different CPUs, some bugs may behave differently on different CPUs, which is a maintenance headache.

  61. Re:MachIne Learning for Embedded PrOgramS opTimiza by Cairnarvon · · Score: 3, Insightful

    GCC (Gnu Compiler)

    I think you mean:

    GCC (GNU (GNU's (GNU's (GNU's (GNU's (GNU's (GNU's (GNU's (GNU's (GNU's (GNU's (GNU's (GNU's (GNU's (GNU's (GNU's (GNU's (GNU's (GNU's (GNU's (GNU's (GNU's (GNU's (GNU's (GNU's (GNU's ...

    Yeah, not always a good idea.

  62. Re:Perhaps the way to other things besides compile by HeroreV · · Score: 2, Insightful

    the pendulum would have to swing mighty far back.

    How many times have you seen a program packaged with it's own virtual machine image? I sure haven't seen many. The pendulum has hardly begun to swing.

    That said, I think it'll be a very long time before we have AI smart enough to rewrite program blobs written for one operating system into programs for another operating system. Bytecode requires zero AI and is already gaining significant ground.

  63. I wonder if they know Scott Robert Ladd by greg_barton · · Score: 1

    This sounds a lot like Acovea

    1. Re:I wonder if they know Scott Robert Ladd by Random+Walk · · Score: 1

      This sounds a lot like Acovea

      They are citing it in the GCC summit paper. So I suppose they know it :)

  64. Re:Perhaps the way to other things besides compile by Anonymous Coward · · Score: 0

    Don't viruses and malware already do this. Oh wait - that was just MS Office macros....

  65. Here's my shot by dbcad7 · · Score: 1

    At integrating AI into GCC...

    GACIC

    --
    waiting for ad.doubleclick.net
  66. Re:Perhaps the way to other things besides compile by TheLink · · Score: 1
    --
  67. Re:Perhaps the way to other things besides compile by stor · · Score: 1

    The AI in Gentoo is built into the users. /me ducks

    --
    "Yeah well there's a lot of stuff that should be, but isn't"
  68. Re:Perhaps the way to other things besides compile by Anonymous Coward · · Score: 0

    On Windows it's already here with .NET. DotNET programs come compiled into MSIL (Microsoft intermediate language).
    When you first run them, you see a dialog "please wait while this program is optimized for this machine", while exactly that happens:
    MSIL code gets compiled into x86 code optimized for the system CPU.

    The optimized x86 compile result gets stored in a cache, so you have to wait only once.
    Additionally, not only programs, but quite some system libraries of .NET go through this optimizing step on first use.

  69. Re:MachIne Learning for Embedded PrOgramS opTimiza by Per+Abrahamsen · · Score: 1

    GCC is easier to remember? Ok, that really isn't an acronym (or bacronym I guess... is it?)

    Used to be an acronym (GNU C Compiler), changed to a backronym (GNU Compiler Collection) as it gained support for more languages.

  70. Re:It's a way to evaluate optimization effectivene by Yvanhoe · · Score: 1

    A learning feedback loop of course can't be categorized as an AI ! Everybody knows that AI can only work out of fairy dust...

    --
    The Wise adapts himself to the world. The Fool adapts the world to himself. Therefore, all progress depends on the Fool.
  71. News just in... by Evildonald · · Score: 1

    ABCs are using XYZs to further their ability to RSVP that are SWALK ASAP.

  72. Re:Perhaps the way to other things besides compile by Anonymous Coward · · Score: 0

    I saw one a month ago: http://live.gnome.org/GnomeDeveloperKit

  73. More than a month by Anonymous Coward · · Score: 0

    "...being able to increase the performance of GCC by 10% in just one month's work."

    Errr... where this "one month" affirmation comes from? Believe me (after all, I'm Anonymous Coward; I deserve some credit to my words), this took more than one month of work. I've been hearing of Milepost for more than a year now, and I think that it was already ongoing work when I first heard of it.

    Besides, this is research, so the "standing on the shoulders of giants" applies here :)

  74. Re:Perhaps the way to other things besides compile by pohl · · Score: 1

    an LLVM bytecode program, unlike a java bytecode program or CLR bytecode program, makes no assumptions about the presence of a runtime. An ordinary C program could have an LLVM bc representation that gets JIT compiled to x86 at launch time (and cached on disk between executions) so that the end result should be about the same as an x86 representation. Including, interestingly, the amount of space it takes up on disk: despite being an SSA IR with full type information, it's very space-efficient.

    So such a future would not be nearly as dismal as a JVM/CLR bytecode future would be.

    --

    The "cue the foo posts in 3, 2, 1..." posts will commence with no subsequent foo posts in 3, 2, 1...

  75. Re:MachIne Learning for Embedded PrOgramS opTimiza by JeffSchwab · · Score: 1

    GCC is easier to remember? Ok, that really isn't an acronym (or bacronym I guess... is it?)

    GNU Compiler Collection, where GNU's Not UNIX, and UNIX is a play on MULTICS, the Multiplexed Information and Computing Service.

  76. Re:Perhaps the way to other things besides compile by x2A · · Score: 1

    Joke as you will, but this is actually nearly true; all the caffeine connotations linked to the runtime can't help but make things run faster.

    --
    The revolution will not be televised... but it will have a page on Wikipedia
  77. Re:MachIne Learning for Embedded PrOgramS opTimiza by Anonymous Coward · · Score: 0

    see "USA PATRIOT Act"

    "USAPATRIOT". One word (or, in this case, one acronym).

  78. Re:MachIne Learning for Embedded PrOgramS opTimiza by Walter+Carver · · Score: 1

    I though that it's called GCC from Gnu C Compiler but later it got to compile other languages too.

  79. Re:MachIne Learning for Embedded PrOgramS opTimiza by Cairnarvon · · Score: 1

    Depending on the context it's either the GNU C Compiler or the GNU Compiler Collection. And GNU, of course, stands for GNU's Not Unix.