654 research outputs found
ALUPower: Data Dependent Power Consumption in GPUs
Existing architectural power models for GPUs count activities such as executing floating point or integer instructions, but do not consider the data values processed. While data value dependent power consumption can often be neglected when performing architectural simulations of high performance Out-of-Order (OoO) CPUs, we show that this approach is invalid for estimating the power consumption of GPUs. The throughput processing approach of GPUs reduces the amount of control logic and shifts the area and power budget towards functional units and register files. This makes accurate estimations of the power consumption of functional units even more crucial than in OoO CPUs. Using measurements from actual GPUs, we show that the processed data values influence the energy consumption of GPUs significantly. For example, the power consumption of one kernel varies between 155 and 257 Watt depending on the processed values. Existing architectural simulators are not able to model the influence of the data values on power consumption. RTL and gate level simulators usually consider data values in their power estimates but require detailed modeling of the employed units and are extremely slow. We first describe how the power consumption of GPU functional units can be measured and characterized using microbenchmarks. Then measurement results are presented and several opportunities for energy reduction by software developers or compilers are described. Finally, we demonstrate a simple and fast power macro model to estimate the power consumption of functional units and provide a significant improvement in accuracy compared to previously used constant energy per instruction models.EC/H2020/688759/EU/Low-Power Parallel Computing on GPUs 2/LPGPU
Evolutionary Design of the Memory Subsystem
The memory hierarchy has a high impact on the performance and power
consumption in the system. Moreover, current embedded systems, included in
mobile devices, are specifically designed to run multimedia applications, which
are memory intensive. This increases the pressure on the memory subsystem and
affects the performance and energy consumption. In this regard, the thermal
problems, performance degradation and high energy consumption, can cause
irreversible damage to the devices. We address the optimization of the whole
memory subsystem with three approaches integrated as a single methodology.
Firstly, the thermal impact of register file is analyzed and optimized.
Secondly, the cache memory is addressed by optimizing cache configuration
according to running applications and improving both performance and power
consumption. Finally, we simplify the design and evaluation process of
general-purpose and customized dynamic memory manager, in the main memory. To
this aim, we apply different evolutionary algorithms in combination with memory
simulators and profiling tools. This way, we are able to evaluate the quality
of each candidate solution and take advantage of the exploration of solutions
given by the optimization algorithm.We also provide an experimental experience
where our proposal is assessed using well-known benchmark applications
Compiler-Driven Power Optimizations in the Register File of Processor-Based Systems
The complexity of the register file is currently one of the
main factors on determining the cycle time of high
performance wide-issue microprocessors due to its
access time and size. Both parameters are directly
related to the number of read and write ports of the
register file and can be managed from a code
compilation-level. Therefore, it is a priority goal to
reduce this complexity in order to allow the efficient
implementation of complex superscalar machines. This
work presents a modified register assignment and a
banked architecture which efficiently reduce the number
of required ports. Also, the effect of the loop unrollling
optimization performed by the compiler is analyzed and
several power-efficient modifications to this mechanism
are proposed. Both register assignment and loop
unrolling mechanisms are modified to improve the
energy savings while avoiding a hard performance
impact
Improving Energy Consumption Of Java Programs
Information and Communications Technologies (ICT) amounts for 10% of the world energy which will keep on growing in the future and 3% of the overall carbon footprint which is now more than the level of CO2 emission as that of the aviation industry. For many past years, the focus was on hardware to optimize the energy consumption of ICT systems. This includes dynamic adaptation of hardware techniques such as fine-grain clock gating, power gating, and dynamic voltage/frequency scaling. However, recent demands of exascale computation, as well as the increasing carbon footprint, require new breakthroughs to make ICT systems more energy-efficient. This is not possible by only making the hardware energy-efficient. As a result, the focus is shifting on software now. Software is one of the most critical bottlenecks while trying to optimize the energy consumption of any ICT system.
Software energy consumption can be optimized in several ways like choosing the energy-efficient option in a programming language, using an energy-efficient programming language or choosing an energy-efficient compiling option. In this work, we concentrate on the energy-efficient options and command-line options to optimize software energy consumption. Today’s programming languages provide software developers with several options to perform the same task. For example, in Java, an Array can be copied to other Array either manually or using Java methods. However, not every option available is energy-efficient and the software developers lack the knowledge to choose the best energy-efficient option. We perform various analyses to decide on choosing the best option for different components of Java programming language. These components include data types, operators, control statements, String, exceptions, objects, and Arrays.
Java has different command-line options that can be used to tune the JVM. These options can significantly affect the energy behavior of Java applications. We conduct a comprehensive study to evaluate the energy efficiency of Java command-line options. We first stabilize the idle energy consumption of two ICT systems and then evaluate the active energy consumption of SPECjvm2008 benchmarks using different JDKs (Open and Oracle) and Java command-line options. The Java command-line options include client, server, Xbatch, Xcomp, Xfuture, Xint, Xmixed, Xrs, AggressiveOpts, AggressiveHeap, Inline, AlwaysPreTouch, Xnoclassgc, UseSerialGC, UseParallelGC, UseConcMarkSweepGC, and UseG1GC.
Next, we present Java Energy Profiler and Optimizer (JEPO) tool to help software developers to write energy-efficient code. This tool is an Eclipse IDE plugin and provides energy efficiency suggestions for Java programming language. It can provide suggestions dynamically while writing code or statically to refactor already written code. For providing suggestions, it analyzes each line of Java file and matches it to the pool of suggestions. JEPO can also help the software developers to automatically measure energy consumption at method granularity to determine the energy-hungry Java methods in software. We hope our findings and tool can help software developers to write energy-efficient code in the future
Embedded Systems Energy Characterization using non-Intrusive Instrumentation
Research Report RR2006-37, LIP - ENS LyonThis research report presents a non intrusive methodology for building embedded systems energy consumption models. The method is based on measurement on real hardware in order to get a quantitative approach that takes into account the full architecture. Based on these measurements, data are grouped into class of instructions and events. These classes can then be reused in software simulators and in high-level source code transformation cost functions for optimizing compilers. The computed power model is much more simpler than previous power models while being accurate at the platform level. The methodology is illustrated using experimental results made on an ARM Integrator platform for which an accurate and full system energy model is build
Energy Complexity for Sorting Algorithms in Java
This study extends the concept of time complexity to energy, i.e., energy
complexity, by showing a strong correlation between time complexity and energy
consumption for sorting algorithms: Bubble Sort, Counting Sort, Merge Sort and
Quick Sort, written in Java and run on single kernels. We investigate the
correlation between wall time and time complexity, as well as the correlation
between energy consumption and wall time. The primary finding is that time
complexity can be used as a guideline to estimate the energy consumption of
O(n*n), O(nlog(n)) and O(n + k) sorting algorithms. The secondary finding is
that the inputs producing the theoretical worst cases for Merge Sort and Bubble
Sort did not produce the worst case wall time nor the worst case energy
consumption
A template-based methodology for efficient microprocessor and FPGA accelerator co-design
Embedded applications usually require Software/Hardware (SW/HW) designs to meet the hard timing constraints and the required design flexibility. Exhaustive exploration for SW/HW designs is a very time consuming task, while the adhoc approaches and the use of partially automatic tools usually lead to less efficient designs. To support a more efficient codesign process for FPGA platforms we propose a systematic methodology to map an application to SW/HW platform with a custom HW accelerator and a microprocessor core. The methodology mapping steps are expressed through parametric templates for the SW/HW Communication Organization, the Foreground (FG) Memory Management and the Data Path (DP) Mapping. Several performance-area tradeoff design Pareto points are produced by instantiating the templates. A real-time bioimaging application is mapped on a FPGA to evaluate the gains of our approach, i.e. 44,8% on performance compared with pure SW designs and 58% on area compared with pure HW designs
An Early-Stage Statement-Level Metric for Energy Characterization of Embedded Processors
Abstract This work presents an early stage statement-level metric for energy characterization of embedded processors. Definition and the framework for metric evaluation are provided. In particular, such a metric is based on an existing assembly-level analysis and some profiling activities performed on a given C benchmark, and it is related to the average energy consumption of a generic C statement, for a given target processor. Its evaluation is performed with a one-time effort and, once available, it can be used to rapidly estimate the energy consumption of a given C function for all the considered processors. Two reference embedded processors are then considered in order to show an example of usage of the proposed metric and framework
Energyware engineering: techniques and tools for green software development
Tese de Doutoramento em Informática (MAP-i)Energy consumption is nowadays one of the most important concerns worldwide. While
hardware is generally seen as the main culprit for a computer’s energy usage, software
too has a tremendous impact on the energy spent, as it can cancel the efficiency introduced
by the hardware. Green Computing is not a newfield of study, but the focus has been,
until recently, on hardware. While there has been advancements in Green Software techniques,
there is still not enough support for software developers so they can make their
code more energy-aware, with various studies arguing there is both a lack of knowledge
and lack of tools for energy-aware development.
This thesis intends to tackle these two problems and aims at further pushing
forward research on Green Software. This software energy consumption issue is faced
as a software engineering question. By using systematic, disciplined, and quantifiable
approaches to the development, operation, and maintenance of software we defined several
techniques, methodologies, and tools within this document. These focus on providing
software developers more knowledge and tools to help with energy-aware software
development, or Energyware Engineering.
Insights are provided on the energy influence of several stages performed during
a software’s development process. We look at the energy efficiency of various popular
programming languages, understanding which are the most appropriate if a developer’s
concern is energy consumption. A detailed study on the energy profiles of different
Java data structures is also presented, alongwith a technique and tool, further providing
more knowledge on what energy efficient alternatives a developer has to choose from. To
help developers with the lack of tools, we defined and implemented a technique to detect
energy inefficient fragments within the source code of a software system. This technique
and tool has been shown to help developers improve the energy efficiency of their programs,
and even outperforming a runtime profiler. Finally, answers are provided to common questions and misconceptions within
this field of research, such as the relationship between time and energy, and howone can
improve their software’s energy consumption.
This thesis provides a great effort to help support both research and education on
this topic, helps continue to grow green software out of its infancy, and contributes to
solving the lack of knowledge and tools which exist for Energyware Engineering.Hoje em dia o consumo energético é uma das maiores preocupações a nível global. Apesar
do hardware ser, de umaforma geral, o principal culpado para o consumo de energia
num computador, o software tem também um impacto significativo na energia consumida,
pois pode anular, em parte, a eficiência introduzida pelo hardware. Embora
Green Computing não seja uma área de investigação nova, o foco tem sido, até recentemente,
na componente de hardware. Embora as técnicas de Green Software tenham
vindo a evoluir, não há ainda suporte suficiente para que os programadores possam
produzir código com consciencialização energética. De facto existemvários estudos que
defendem que existe tanto uma falta de conhecimento como uma escassez de ferramentas
para o desenvolvimento energeticamente consciente.
Esta tese pretende abordar estes dois problemas e tem como foco promover avanços
em green software. O tópico do consumo de energia é abordado duma perspectiva
de engenharia de software. Através do uso de abordagens sistemáticas, disciplinadas
e quantificáveis no processo de desenvolvimento, operação e manutencão de software,
foi possível a definição de novas metodologias e ferramentas, apresentadas neste documento.
Estas ferramentas e metodologias têm como foco dotar de conhecimento e
ferramentas os programadores de software, de modo a suportar um desenvolvimento
energeticamente consciente, ou Energyware Engineering.
Deste trabalho resulta a compreensão sobre a influência energética a ser usada
durante as diferentes fases do processo de desenvolvimento de software. Observamos as
linguagens de programação mais populares sobre um ponto de vista de eficiência energética,
percebendo quais as mais apropriadas caso o programador tenha uma preocupação
com o consumo energético. Apresentamos também um estudo detalhado sobre perfis energéticos de diferentes
estruturas de dados em Java, acompanhado por técnicas e ferramentas, fornecendo
conhecimento relativo a quais as alternativas energeticamente eficientes que os programadores
dispõem. Por forma a ajudar os programadores, definimos e implementamos
uma técnica para detetar fragmentos energicamente ineficientes dentro do código fonte
de um sistema de software. Esta técnica e ferramenta têm demonstrado ajudar programadores
a melhorarem a eficiência energética dos seus programas e em algum casos
superando um runtime profiler.
Por fim, são dadas respostas a questões e conceções erradamente formuladas dentro
desta área de investigação, tais como o relacionamento entre tempo e energia e como
é possível melhorar o consumo de energia do software.
Foi empregue nesta tese um esforço árduo de suporte tanto na investigação como
na educação relativo a este tópico, ajudando à maturação e crescimento de green computing,
contribuindo para a resolução da lacuna de conhecimento e ferramentas para
suporte a Energyware Engineering.This work is partially funded by FCT – Foundation for Science and Technology, the
Portuguese Ministry of Science, Technology and Higher Education, through national funds,
and co-financed by the European Social Fund (ESF) through the Operacional Programme for
Human Capital (POCH), with scholarship reference SFRH/BD/112733/2015. Additionally,
funding was also provided the ERDF – European Regional Development Fund – through
the Operational Programmes for Competitiveness and Internationalisation COMPETE and
COMPETE 2020, and by the Portuguese Government through FCT project Green Software
Lab (ref. POCI-01-0145-FEDER-016718), by the project GreenSSCM - Green Software for
Space Missions Control, a project financed by the Innovation Agency, SA, Northern Regional
Operational Programme, Financial Incentive Grant Agreement under the Incentive Research
and Development System, Project No. 38973, and by the Luso-American Foundation in
collaboration with the National Science Foundation with grant FLAD/NSF ref. 300/2015 and
ref. 275/2016
- …