Disclaimer: I worked on this project for a year in the past, and was also involved with recording this video. I haven&#x27;t worked on the project for a while though, and it has advanced significantly.<p>We were using a GreenArrays chip (<a href="http:&#x2F;&#x2F;www.greenarraychips.com&#x2F;" rel="nofollow">http:&#x2F;&#x2F;www.greenarraychips.com&#x2F;</a>) which is a 144-core ultra low power architecture. That&#x27;s great, but it&#x27;s super difficult to program, and only a few experts can really do it. We were working on building a high-level programming language and compiler toolchain that would allow anyone with programming experience to write GreenArrays programs.<p>So we were basically building a compiler, but with a twist - instead of a traditional compiler which generates machine code from source code through a series of transformations, we used a technique called program synthesis. Synthesis treats the high-level program (source) as a specification, and performs a search across the space of possible target programs (machine code), trying to find the optimal one (in our case, optimal meant energy efficient). The backend uses a bunch of Programming Language techniques and SMT solving (<a href="https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Satisfiability_modulo_theories" rel="nofollow">https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Satisfiability_modulo_theories</a>).<p>As you can imagine, this is a hard problem and synthesis isn&#x27;t quite ready to replace sophisticated compilers. But where synthesis can really shine is in places where you don&#x27;t have mature compilers and need to generate complicated optimal code, that perhaps no human or human-written compiler might. Or in cases where parts of the program need to be extra-optimized.<p>Coming back to the experiment, the integer division code running on the chip was generated using synthesis, and we wanted to show that we could run it on low energy.