MAGEEC energy reduction – open start-ups column

Embecosm combines work on open source CPUs and system-on-chips, with cutting edge research on superoptimisation in compilers

Staying around the south coast of england after last month’s look at the Brighton-based Foundation, we travel to the new Forest – an unlikely location for a tech start-up, perhaps, particularly one working with embedded chips so closely associated with cambridge, with its rich heritage from acorn and the cambridge university computer lab. But software companies can locate anywhere; even hardware companies, if they’re fabless [outsourcing fabrication], and Embecosm can be found on the high street of Georgian market town, Lymington.

Founder Jeremy Bennett – an alumnus of both the Cambridge organisations mentioned above – is a prominent member of OSHUG, the Open Source Hardware Users Group, and involved in the OpenCores project, designing RISC-based open source system-on-chip cores. But Embecosm’s latest work is on GCC, the GNU Compiler Collection, an essential part of the embedded developer’s toolchain.

The MAGEEC Wand is a shield that’s used with an STM32F4- DISCOVERY board
The MAGEEC Wand is a shield that’s used with an STM32F4- DISCOVERY board

Following research to find if compilers did affect energy use – The Computer Journal has the peer-reviewed results under open access, but the short answer is “yes” – Embecosm, in conjunction with the University of Bristol, has been running the MAGEEC project – MAchine Guided Energy Efficient Compilation – funded by Innovate UK (formerly UK Technology Strategy Board). The project is optimising software compilation for best energy use, rather than speed or binary size.

Modelling energy usage is not enough, so an energy measurement board (the ‘MAGEEC Wand’) has been created, which can be applied to a range of embedded architectures. MAGEEC was presented at GNU Tools Cauldron – the annual gathering of GNU tools developers (CC- licensed video and slides at – this July in Cambridge, on the Atmel AVR. Since this, further work has completed the “proof of concept” framework, which fits both GCC and LLVM compilers – a working system that currently awaits further optimisations.

Beyond research

Funded research projects are nice for any start- up, but a sustainable business demands a choice of applications to pursue. Beyond the embedded space, energy consumption is a matter of some concern in the data centre, where energy bills exceed hardware costs. Embecosm is working with a UK-based specialist in infrastructure tools for data centres and high-performance computing (HPC), to develop optimisations for both areas.

And in HPC we see the chance for one of the most interesting developments: superoptimisation, developed in the Eighties by Henry Massalin, finds the shortest program to compute a function. A promising start for MAGEEC, but moving to HPC platforms, and using C5.0 decision tree algorithms for stochastic superoptimisation, increases the number of instructions steps that can be optimised, bringing in the possibility of wholly new algorithms. The machine learning has applications beyond energy use, and can also be directed towards smaller code or faster code.

With regards to last month’s discussion of Indie Tech companies (“We reject venture capital”), Embecosm was bootstrapped by the founders – “Software companies don’t cost much to run,” Bennett tells us – with some equity about to transfer to the employees. Bennett has seen good and bad decisions by VCs in the UK: “They can destroy value as much as create value,” he says, but notes that the growth of a services company doesn’t fit with VCs’ expectations in the tech sector. Interestingly, he contrasts the Silicon Valley scene, with it’s “fail fast, fail often” mantra and strong engineering culture, with the accountant-dominated VC scene in the UK, which leads to risk-averse IT start-ups – closing off much potential innovation.

Look out for Embecosm at FOSDEM, where James Pallister, NMI Young Engineer of the Year, presents “Superoptimisation: How fast can your code go?”

Parse error: syntax error, unexpected end of file in /var/www/html/ on line 18