Last week at Design West 2012, Green Hills Software announced it had achieved the highest compiler performance scores ever certified by EEMBC CoreMark and that it outperformed the nearest competing compilers by 35.5% using its MULTI 6.0 – Compiler 2012.
Benchmarks were completed on 3 ARM Cortex-M4 microcontrollers:
- Freescale Kinetis K60 MCU @ 100 Mhz – 35.5% improvement over nearest competitor.
- Freescale Kinetis K70 MCU @ 120 Mhz – 29.6% improvement over nearest competitor.
- STMicroelectronics STM32F417IGt6 @ 168 MHz – 34.7% improvement over nearest competitor.
Since apparently it’s bad marketing to name competitors in press releases, I went directly to the source (EEMBC Coremark benchmark results) to check out the results and competitors (IAR and Keil) for Kinetis K60 MCU.
The first thing you may notice is that there are 2 tests per compiler / MCU combination. That’s because there 2 test configurations:
- Code in internal Flash – Data in internal RAM
- Code in internal RAM – Data in internal RAM
Other parameters such as the compiler flags appear to be the same in both tests. Let me know if I missed something.
The first test results (Code in internal Flash – Data in internal RAM):
Compiler | CoreMark/Mhz | Coremark | Improvement |
Green Hills Multi v6.0.0 – Compiler 2012 | 2.43 | 243.4 | |
IAR v6.10.5 | 2.05 | 204.65 | 18.9% |
Keil uVision v4.20 | 2.12 | 211.89 | 14.9% |
This first test shows Multi 6.0 beats IAR v6.10.5 by 18.9% and Keil uVision by 14.9%.
But it’s in the second test (Code in internal RAM – Data in internal RAM) that Multi 6.0 destroys the competition:
Compiler | CoreMark/Mhz | Coremark | Improvement |
Green Hills Multi v6.0.0 – Compiler 2012 | 2.94 | 293.84 | |
IAR v6.10.5 | 2.07 | 207.44 | 41.7% |
Keil uVision v4.20 | 2.17 | 217.3 | 35.2% |
In that test, Green Hills Multi 6.0 – Compiler 2012 (Why such a long name?) handily beats Keil uVision and IAR by respectively35.2% and 41.7%.
This type of benchmark may not always accurately reflect real-life benchmark, but still if you’re reaching the limits of your MCU, you may want to consider using this compiler instead of spending days or weeks optimizing your C and/or assembly code manually.
MULTI 6.0 – Compiler 2012 was released in September 2011 and the latest version MULTI 6.1 – Compiler 2012.1 has been released on the 27th of March 2012.
Green Hills Software may do a great job at optimizing compilers, but information about Multi 6.x compiler is nowhere to be found in their website, so I can only guess it’s only part of their MULTI IDE.
You may be able to find more information on Green Hills compiler and MULTI IDE pages.
Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and starting to write daily news, and reviews full time later in 2011.
Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress