|
Open source, AI-driven compiler learns on the job
2009-07-01
IBM Research and the European Union have jointly released what they bill as the world's first open source machine learning compiler. The "Milepost GCC" compiler is particularly adept at speeding mobile phone development, and offers an 18 percent performance improvement on embedded-application benchmarks, claims IBM.
Sponsored by IBM Research and the Information Society Technologies (IST) of the European Union (EU), the Milepost project comprises research teams at IBM Research Haifa (Israel), University of Edinburgh and ARC International (UK), and INRIA and CAPS Enterprise (France). The group's Milepost GCC is described as a modular, machine-learning-based compiler that automatically learns the best optimization heuristics based on the behavior of the processor platform. The compiler can quickly be tuned for targeted architectures, resulting in "dramatically reduced time-to-market for new software designs," says the Milepost consortium. It's claimed that on mobile phone projects, the compiler can reduce the amount of time it takes to optimize software to achieve acceptable performance by a factor of 10. According to IBM Research, benchmarks conducted using IBM System p servers achieved an average 18 percent performance improvement on embedded-application benchmarks. Battling multi-core complexity As embedded systems move to programmable heterogeneous processors, such as complex, reconfigurable, multi-core system-on-chips (SoCs), current compilers cannot keep up, says Milepost. As a result, compiler development time is said to be increasing without achieving significant performance improvements.
ICI architecture -- original GCC is on left, and GCC with ICI and plugins is on right (Click to enlarge) Milepost GCC includes an event-driven "Interactive Compilation Interface" (ICI) plugin (see diagram above). ICI is said to provide both a high-level compiler-independent and low-level compiler-dependent API to "open up" current compilers into modular, interactive toolsets. The plugin acts as a middleware interface between the compiler and user-definable plugins, enabling the reuse of production-quality compiler infrastructure. This process is said to enable program analysis and instrumentation, fine-grain program optimization, and simple prototyping of new development and research ideas, while avoiding building new compilation tools from scratch. Collective tuning The Milepost consortium has launched a Collective Tuning Center website where developers can upload code, and receive input on how to tune their code for faster performance. This community-driven portal is described as enabling collaboration and sharing of optimization knowledge. Specific goals are to automate program optimization, compiler design, and architecture tuning. Collective Tuning Center services and technologies are said to include:
Stated Mike O'Boyle, Professor of Computer Science at the School of Informatics, University of Edinburgh and Project Coordinator for Milepost, "We've developed a more cost-effective development process where you can choose to integrate additional functionality or use less power in your current system." Availability The Milepost GCC 4.4 compiler is available now as a free, stable, open source download, here. More information on Milepost GCC may be found at the Milepost site, here. The Collective Tuning Center may be found here. Related Stories:
|