Slashdot Mirror


IBM Releases Open Source Machine Learning Compiler

sheepweevil writes "IBM just released Milepost GCC, 'the world's first open source machine learning compiler.' The compiler analyses the software and determines which code optimizations will be most effective during compilation using machine learning techniques. Experiments carried out with the compiler achieved an average 18% performance improvement. The compiler is expected to significantly reduce time-to-market of new software, because lengthy manual optimization can now be carried out by the compiler. A new code tuning website has been launched to coincide with the compiler release. The website features collaborative performance tuning and sharing of interesting optimization cases."

7 of 146 comments (clear)

  1. Oh really? by zmotula · · Score: 5, Insightful

    The compiler is expected to significantly reduce time-to-market of new software, because lengthy manual optimization can now be carried out by the compiler.

    Oh, so new software takes too long to build because of lengthy manual optimization? That's news indeed. Even if it did, will the compiler find a better polygon intersection algorithm for me? Will it write a spatial hash? Will it find places when I am calculating something in a tight loop and move the code somewhere higher?

  2. Less time? How about same time, better product? by TinBromide · · Score: 3, Insightful

    The compiler is expected to significantly reduce time-to-market of new software, because lengthy manual optimization can now be carried out by the compiler.

    How about this: The coders take the time they would have used to "optimize" and instead better document, test, and debug the code. Instead of same quality, less money, make it better quality, same money? You know that the developer isn't going to charge less money for a new product because it took them less time to get it out the door.

    --
    Is it sad that I am more likely to recognize you and your posts by your sig than your name or UID?
  3. Dumb Summary by QuantumG · · Score: 5, Insightful

    automatically learn how to best optimise programs for re-configurable heterogeneous embedded processors

    That's kinda important to mention no?

    --
    How we know is more important than what we know.
    1. Re:Dumb Summary by mozzis · · Score: 3, Insightful

      Absolutely. This is not for the normal processors we all know and love, nor is it any good for javascript or python etc. Compilers for C++, C#, java etc. on normal CPUs all have pretty ferocious optimizers already. Not that an attentive human programmer can't make much more of a difference, usually.

      --
      This is not a self-referential sig.
  4. Re:Few Questions for any programmers by walshy007 · · Score: 5, Insightful

    it optimizes the translation of to assembly opcodes. When you code the stuff you type is not in the binary that's compiled/assembled/linked.

    I highly recommend you add a tiny amount of assembly programming dabbling to that list, and you will gain better understanding of how compiler optimization is not a simple affair. There are many ways to do the same thing.

    As for an example of a basic optimization method, removing dead code, code that is in there but never called by the main method.

    Another one is vector optimization, where certain routines or parts of routines where it's suitable use the vector units of a cpu to speed things up a little.

  5. Re:Few Questions for any programmers by sydneyfong · · Score: 3, Insightful

    Assembly itself is not "hard". The language itself is simple. I'd argue that most of the "hardness" is due to its simplicity. There is almost none of the abstract structures and methods that high level languages provide you, and even for something something as "simple" as calling a function, you'll have to manually push data on a stack, jump to the new location, and then pop back the data afterwards, etc.

    Might be unnecessary for those programmers who has no interest in understanding how the computer actually works, but it's worth a look.

    Disclaimer: I've never really done any assembly programming, but only "dabbled" in it for a bit a few years ago.

    --
    Don't quote me on this.
  6. Re:Automation... by piojo · · Score: 3, Insightful

    if you take the thinking out of a process and let a process/machine/program do all the thinking, your mind will inevitably get lazy and your work will suffer over time

    I think that it could very well free your mind to think about better things. Build systems are a good example. If I had to manually compile each translation unit, I couldn't spend as much time thinking about the code.

    --
    A cat can't teach a dog to bark.