TY - JOUR
T1 - Compiling for power with scalapipe
AU - Wingbermuehle, Joseph G.
AU - Cytron, Ron K.
AU - Chamberlain, Roger D.
PY - 2013
Y1 - 2013
N2 - In the world of mobile and embedded devices, most of which are battery powered, optimizing computations for low energy is becoming increasingly important. One approach to diminished energy consumption is the use of dedicated hardware logic (rather than general-purpose processors) to execute some portion of the application load. Due to the diversity of applications that one may run on the same device, field-programmable gate arrays (FPGAs) are an attractive target since they can readily be reconfigured to implement different functions and are known to provide significant energy savings in certain domains. Unfortunately, FPGAs are difficult to program, typically requiring expertise in hardware description languages. Here we analyze the potential energy benefits from offloading computations to an FPGA device when starting from a high-level language expression of an application in ScalaPipe [1], which is a domain-specific language embedded in the Scala programming language [2] for creating streaming applications on heterogeneous systems consisting of general-purpose processors and FPGAs. We explore the effect of several synthesis optimizations on improving energy usage without sacrificing application performance, concluding that it is possible to reduce energy consumption significantly for computations even when expressed in a high-level language. Here we investigate total energy consumption, which is a combination of the power use and application run time. All of the optimizations considered improve performance, but some also increase power use, which can be a net loss in energy depending on the application.
AB - In the world of mobile and embedded devices, most of which are battery powered, optimizing computations for low energy is becoming increasingly important. One approach to diminished energy consumption is the use of dedicated hardware logic (rather than general-purpose processors) to execute some portion of the application load. Due to the diversity of applications that one may run on the same device, field-programmable gate arrays (FPGAs) are an attractive target since they can readily be reconfigured to implement different functions and are known to provide significant energy savings in certain domains. Unfortunately, FPGAs are difficult to program, typically requiring expertise in hardware description languages. Here we analyze the potential energy benefits from offloading computations to an FPGA device when starting from a high-level language expression of an application in ScalaPipe [1], which is a domain-specific language embedded in the Scala programming language [2] for creating streaming applications on heterogeneous systems consisting of general-purpose processors and FPGAs. We explore the effect of several synthesis optimizations on improving energy usage without sacrificing application performance, concluding that it is possible to reduce energy consumption significantly for computations even when expressed in a high-level language. Here we investigate total energy consumption, which is a combination of the power use and application run time. All of the optimizations considered improve performance, but some also increase power use, which can be a net loss in energy depending on the application.
KW - Embedded systems
KW - Energy
KW - FPGA
KW - High-level synthesis
UR - https://www.scopus.com/pages/publications/84886101217
U2 - 10.1016/j.sysarc.2013.05.021
DO - 10.1016/j.sysarc.2013.05.021
M3 - Article
AN - SCOPUS:84886101217
SN - 1383-7621
VL - 59
SP - 615
EP - 625
JO - Journal of Systems Architecture
JF - Journal of Systems Architecture
IS - 8
ER -