Skip to Main content Skip to Navigation
New interface
Preprints, Working Papers, ...

Approximate Loop Unrolling

Marcelino Rodriguez-Cancio 1 Benoit Combemale 1 Benoit Baudry 1 
1 DiverSe - Diversity-centric Software Engineering
Inria Rennes – Bretagne Atlantique , IRISA-D4 - LANGAGE ET GÉNIE LOGICIEL
Abstract : We introduce Approximate Unrolling, a loop optimization that reduces execution time and energy consumption, exploiting the existence of code regions that can endure some degree of approximation while still producing acceptable results. This work focuses on a specific kind of forgiving region: counted loops that map a given functions over the elements of an array. Approximate Unrolling transforms loops in a similar way Loop Unrolling does. However, unlike its exact counterpart, our optimization does not unroll loops by adding exact copies of the loop's body. Instead, it adds interpolations. We describe our experimental implementation of Approximate Unrolling in the Server (C2) Compiler of the Open-JDK Hotspot JVM. The choice to implement our technique directly in the compiler reduced Phase Order problems and transformation overhead. It also proved that our technique could actually improve the performance of a production-ready compiler. Using our modified version of the compiler , we perform several experiments showing that Approximate Unrolling is able reduce execution time and energy consumption of the generated code by a factor of 50% with minimal accuracy losses.
Document type :
Preprints, Working Papers, ...
Complete list of metadata

Cited literature [40 references]  Display  Hide  Download
Contributor : Marcelino Rodriguez-Cancio Connect in order to contact the contributor
Submitted on : Wednesday, November 23, 2016 - 6:16:39 PM
Last modification on : Saturday, June 25, 2022 - 7:45:33 PM
Long-term archiving on: : Tuesday, March 21, 2017 - 12:52:12 AM


Files produced by the author(s)


  • HAL Id : hal-01401828, version 1


Marcelino Rodriguez-Cancio, Benoit Combemale, Benoit Baudry. Approximate Loop Unrolling. {date}. ⟨hal-01401828⟩



Record views


Files downloads