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 metadatas

Cited literature [40 references]  Display  Hide  Download

https://hal.inria.fr/hal-01401828
Contributor : Marcelino Rodriguez-Cancio <>
Submitted on : Wednesday, November 23, 2016 - 6:16:39 PM
Last modification on : Friday, January 11, 2019 - 4:22:54 PM
Long-term archiving on : Tuesday, March 21, 2017 - 12:52:12 AM

File

technical-paper-main.pdf
Files produced by the author(s)

Identifiers

  • HAL Id : hal-01401828, version 1

Citation

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

Share

Metrics

Record views

1254

Files downloads

557