Publication:
Program vectorization for reducing energy consumption in embedded systems

Thumbnail Image
Authors
Cruz-Ayoroa, Arnaldo J.
Embargoed Until
Advisor
Jiménez-Cedeño, Manuel
College
College of Engineering
Department
Department of Electrical and Computer Engineering
Degree Level
M.S.
Publisher
Date
2014
Abstract
When it comes to software optimization, speedup is the rst goal that comes to mind. However, as the integration level of electronic circuits continues its exponential growth, power reduction has also become an important goal. In recent years, the proliferation of mobile devices has also been a driver for reducing energy consumption in embedded systems. Although hardware engineers are already well acquainted with design techniques for low power consumption, software power reduction is still a vastly unexplored topic particularly in the area of compilation; even though, ultimately, software is the main responsible of making ecient use of the hardware. This work proposes a machine learning driven optimization ow that uses a highlevel characterization approach on a program's source code and training with optimization protability measurements to predict whether to apply a particular optimization if energy consumption is expected to be reduced. The optimization studied in this work is called vectorization, which was found to be not only powerful for reducing execution time, but when applied correctly to also reduce power and energy consumption. Experiments were conducted on an implementation of the popular ARM Cortex-A8. Nevertheless, this methodology is not limited to this particular embedded architecture. A predictor was trained which ii decided whether vectorization would have a benecial or detrimental impact with 74% precision, resulting in an average of 64% decrease in energy consumption and only 5% increase in energy in the case of mis-predictions.

Cuando se trata el tema de optimización de software, la primera idea que viene a la mente es la reducción en el tiempo de ejecución. Sin embargo, a medida que el nivel de integración en los circuitos integrados continua un crecimiento exponencial, la reducción de potencia también se convirtió en una meta importante. En años recientes, el consumo energético también ha ganado importancia debido principalmente a la proliferación de dispositivos móviles. Los ingenieros de hardware están familiarizados con técnicas de diseño para bajo consumo de potencia. Sin embargo, este tema ha sido poco explorado en el campo de la compilación, aun cuando el software es finalmente el responsable de hacer uso eficiente del hardware. Este trabajo propone un sistema de compilación guiado por técnicas de aprendizaje automático que utiliza una caracterización de alto nivel del código fuente de un programa y entrenamiento con medidas de beneficio por optimización, para predecir si aplicar una optimización en particular resultara en una reducción en el consumo energético. La optimización estudiada en este trabajo se llama vectorización, la cual encontramos que puede ser efectiva en reducir no solamente el tiempo de ejecución, sino que también cuando es aplicada correctamente puede reducir el consumo de potencia y energía. Los experimentos fueron realizados en una implementación del reconocido ARM Cortex-A8, aunque la metodología no esta limitada a esta arquitectura embebida. Logramos entrenar un predictor con la capacidad de decidir si aplicar vectorización tendrá un impacto beneficioso o perjudicial con una precisión de 74%, alcanzando una reducción promedio en energía de 64% y solo 5% de incremento en energía en los casos de predicción errónea.
Keywords
Reducing energy consumption,
embedded systems
Cite
Cruz-Ayoroa, A. J. (2014). Program vectorization for reducing energy consumption in embedded systems [Thesis]. Retrieved from https://hdl.handle.net/20.500.11801/2171