Here at Minimal Metrics our customers are often our friends – and we have lots of them around the world. Among our favorite people to work with are the brilliant people over at Reservoir Labs, makers of R-Scope among other neat bits of technology. Reservoir also has extensive compiler development expertise. When tasked with optimizing the SPEC CPU benchmarks for a brand new 64-bit multicore (non-Intel) processor, they reached out to the Minimal Metrics crew for guidance. The SPEC benchmarks are tricky animals, solely because one cannot modify the source code to improve its performance; all improvements have to be done by the compiler! On top of that, the source code is ugly, grossly inefficient and poorly documented. In many ways, the SPEC really are the most representative benchmarks in the industry because of those three facts alone. Nevertheless, in order to improve generated code, one still has to understand why the processor is performing the way it is and whether or not a faster sequence of instructions is possible. After that, one needs to follow the transformations performed by the compiler and understand exactly why the code was generated the way it was. It’s a difficult and expensive process – and just one of the major hurdles new processor manufacturers must get over in order to be successful.
Over the course of 3 months, Minimal Metrics worked with the engineers at Reservoir as well as the vendor and identified numerous large opportunities for improvement, most of which were implemented in the compiler. In one particular instance, we found that the presence of a single (prefetch) instruction improved the performance of one of the SPEC codes by 50%. An uncommon result to be sure, but you never know what you find until you look. Another successful engagement and another happy customer.
Performance analysis and understanding is what we do at Minimal Metrics. Contact us to find out how we can help.