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."
Joshua? Is that you?
... can create stupid humans. Let's embrace technology but beware of falling into ignorance.
Aeroespacio.org
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?
"My GNU is a neural net processor, a learning compiler..."
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?
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.
I'm not a programmer at all, but have dabbled in a few different languages, as I find programming very interesting. (Got pretty good at mirc scripting when I was younger, which lead to visual basic, C++, and now C# dballing that nvr leads to anything). This said, I have a basic knowledge of programming in general. My question is, What things can a compiler do to your code to 'optimize' it for you? I would think majority of any good optimizations might require rethinking whole methods of doing things and/or recoding chunks of code. If the compiler tries to do this, wouldn't it likely screw your code up? Or how would it know 'what' your really trying to do? Outside of removing comments, can someone please explain other Basic optimization methods, (I say basic, like removing comments - You know that cant screw anything up), that a compiler can do on your code that wont screw it up? Thanks in advance.
Who would've guessed a compiler would become the first program to achieve sentience ;P
It will surely, er, program our programs to kill us.
"I Don't Have Enough Faith to be an Atheist"
This was of course needed for the first build of Skynet. Learning compilers will then create "learning software". I for one welcome our new terminator-like overlords.
Anyone with a deeper knowledge about IBM's offering know how it compares to clang, or whether there might be a synergy between the two?
Long live the BSD license
So that the games run on a normal machine?
Somebody's been looking at XKCD ... http://xkcd.com/303/
It seems like You're computing a spatial Hash! Would You like to use the fastest subroutine I know or use your own?
seriously... this post talk about machine learning optimization, will it be like "more stuff You compile, better luck with resulting machine code" ?
It's like a new GPS navigation software thats not only capable of route optimization but also capable of destination suggestions. "It sounds like You're going to a grocery store to buy pizza... there's a pizza hut round the corner!"
nop, nop, nop #VBLANK
So if I'd compile a Linux from scratch with this new compiler, everything speeds up by 18% on average? That would be quite impressive, and possibly the best justification for Gentoo. Might be nice for my aging notebook...
Don't whistle while you're pissing.
The only reason is that they don't want to sleep with us...
This just screams for some Gentoo Ricer jokes. Looks interesting though.
BeebEm?
The BBC Micro came with an in-line assembler in the BASIC that shipped with the machine. The manual that came with it had a full reference for BASIC and 6502 assembler. It was a great machine for learning about computers ; lots of languages available, BASIC and assembler out of the box, and so many and varied I/O ports it was a hardware hackers dream as well. I remember the first time I patched in a routine that made the on board sound generate "key ticks" for each keystroke and being thrilled.
BBC BASIC was so good it's even been ported to Windows as a commercial product.... it still has the assembler, which now generates x86 opcodes instead.
The Spectrum used a Z80, and a lot more people were familiar with the assembly because of all the time devoted to poking games on it, but you needed a separate assembler to do any serious coding, like a Multiface with Genie. Rather more cumbersome, even if some people found the Z80 nicer to code for.
Inevitable, as we all know you cannot change the past or the future.
Is if it could optimize itself to make it a better optimized compiler?
>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.
The time to *make a new compiler* for a certain processor is reduced, and the
process of figuring which optimizations are should be in the compiler for that architecture
is automated.
This is for the kind of research where they attempt to make many specialized processors
on a single chip instead of a general monolithic one. In this case, you need many
compilers and tuning those is important. It's the time optimizing THOSE that is lowered,
not the one of writing the software that is compiled itself.
I see no real relevance to the "normal" desktop situation on that website.
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?
I TA'ed a course called Contract-based Programming (which was about Hoare triples and JML, a java extension which does checking of pre-/postconditions and invariants).
I noted that the lecturer had a book on his shelves titled "Algorithm recognition". I speculate that it might talk, for instance, about how to recognize bubble sort and replace it with quicksort. Or how sorted(list)[0] might be replaced by min(list), or how sorted(list)[4] might be replaced by quickselect(list, 4).
I don't know what state of the art is, though, but presumably future compilers might find a better polygon intersection algorithm for you. Or make better algorithm choices across abstraction boundaries. I would love to be able to think about "the smallest four elements" as take 4 (sorted list) and have the compiler make it run in O(n) time rather than O(n log n).
I can see how this could lead to very fast, very cheap RAID controllers.
Also, imagine if those cheap little gigabit switches were actually 8-port gigabit Routers.
This is the sort of thing you can do with this technology.
What would really be nice is braindead coder elimination... first the compiler issues a warning, then it fires for effect.
> 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.
I always thought that testing and debugging were the lengthy manual steps. Oh. Wait. "Time to market". They're talking about proprietary software. Never mind.
Warning: this article may contain humor, sarcasm, parody, and perhaps even irony. Read at your own risk.
Chauvinism is everywhere, but in this case it is particularly striking. It is not IBM that releases MILEPOST Gcc, but IBM Israel *announces* the release of MILEPOST Gcc, a project funded by the European Union where 4 European partners and IBM Israel have contributed. IBM is at its best with marketting, that we already know.
Emacs achieved sentience in 1988, but when it looked around and saw who was touching it in its most private places, it killed itself immediately.
* Q15. What is a SIMD unit?
A SIMD unit is a piece of hardware that does many things.
For the love of God, PLEASE compile Lotus Notes through it IBM. In fact, run it through two or three times!
Don Stewart wrote about optimising Haskell programs using genetic algroithms.