Robots use all kinds of embedded processors. New processors are being created all the time. Writing software for all those processors requires a compiler and the most commonly used compiler is GNU GCC, originally created by Richard Stallman that made the Free Software and Open Source movements possible. The trouble is, a lot of work is involved in optimizing a complex compiler like GCC for every new processor that turns up. What if we could use AI and machine learning techniques to do all that work? This idea was explored by a group of EU research organizations. The result is MILEPOST GCC 4.4.0, the first machine learning enabled, self-tuning compiler that can adapt to any architecture using an iterative feedback-directed process. From the IBM press release:
Initial IBM experiments conducted on IBM System p servers achieved an average 18 percent performance improvement on embedded-application benchmarks...it normally takes application developers many months to get their software running at an acceptable level of performance. Milepost GCC can reduce the amount of time it takes to reach that level by a factor of 10.
The diagram above compares a block diagram of the current GCC with MILEPOST GCC. At present MILEPOST GCC is a research compiler only but because it's Free Software, you can download MILEPOST GCC, use it, study it, and even modify the code if you wish. To make modification easier, the researchers have also created a plugin API called the Interactive Compilation Interface (ICI). For more on how the machine learning process works, visit the MILEPOST website. You can learn a lot about what's going on by reading the MILEPOST FAQ. There is also a mailing list for those who'd like to join the development project and help work on this new generation of intelligent self-tuning compilation tools.