SlideShare une entreprise Scribd logo
1  sur  28
Télécharger pour lire hors ligne
1 
How to build an energy model 
for your SoC 
Linaro Connect CLU14, Burlingame,CA. 
Morten Rasmussen
Why do you need an energy model? 
 Most of the Linux kernel is blissfully unaware of SoC power 
management features: 
 P-states, clock domains, C-states, power domains, ... 
 Only largely autonomous subsystems are aware of some of these 
details (cpufreq, cpuidle, …) 
 The plan is to change that by coordinating task scheduling, frequency 
scaling, and idle-state selection to improve power management. 
 Energy saving techniques must be applied under the right 
circumstances which vary between SoCs. 
 The kernel must therefore have a better understanding of 
power(energy)/performance trade-offs for the particular SoC to make 
the right decisions. 
 An energy model can provide that information. 
 As a bonus, the energy model may also be used by tools to quick 
energy estimates based on execution traces. 
2
Modelling limitations 
 Model are never accurate, but we only need enough detail 
to make the right decisions most of the time. 
 The model will be used by critical code paths in the kernel, 
so it has to be as simple as possible. 
 Only considers cpus, no memory or peripherals. 
3
A simplified system view 
4 
G 
cpu0 cpu1 
Shared HW 
G G 
G 
cpu2 cpu3 
Shared HW 
G G 
Power 
G G G G 
Clock source Clock source 
G Clock gating 
G Power gating 
Power domain
Energy consumption simplified 
5 
Px 
time 
power 
Py 
Transition 
energy 
Cz 
Busy 
Transition 
Idle 
Busy energy Busy energy 
Idle energy
Scheduler Topology Hierarchy 
6 
0 1 2 3 
Cluster/package 
P-states 
Cluster/package 
Disclaimer: This a simplified view of 
the sched_domain hiearchy. 
Struct sched_group 
Energy model tables Per-core C-states 
C-states
Energy model data 
 P-states: 
 Compute capacity: Performance score normalize to highest P-state of 
fastest cpu in the system (1024). Choose benchmark carefully. 
Preferably use a suite of benchmarks. 
 Power: Busy power = energy/second. Normalized to any reference, but 
must be consistent across all cpus. 
 C-states: 
 Power: Idle power = energy/second. Normalized. 
 Wake-up energy. Energy consumed during P->C + C->P state 
transitions. Unit must be consistent with power numbers. 
 Note: 
7 
 Power numbers should only include power consumption associated 
with the group where the tables are attached, i.e. per-core P-state 
power should only include power consumed by the core itself, shared 
HW is accounted for in the table belonging to the level above.
Energy model data 
0 1 
8 
C-states 
power wu (state) 
10 6 (C1) 
... ... ... 
Cluster 
P-states 
P-states C-states 
power wu (state) 
0 0 (WFI) 
... ... ... 
capacity power (freq) 
358 2967 (350) 
... ... ... 
1024 4905 (1000) 
capacity power (freq) 
358 187 (350) 
... ... ... 
1024 1024 (1000) 
CPU
Energy model algorithm 
9 
for_each_domain(cpu, sd) { 
sg = sched_group_of(cpu) 
energy_before = curr_util(sg) * busy_power(sg) 
+ (1-curr_util(sg)) * idle_power(sg) 
energy_after = new_util(sg) * busy_power(sg) 
+ (1-new_util(sg)) * idle_power(sg) 
+ (1-new_util(sg)) * wakeups * wakeup_energy(sg) 
energy_diff += energy_before - energy_after 
if (energy_before == energy_after) 
break; 
} 
return energy_diff
Backups 
10
11 
Platform performance/energy 
data/model in scheduler or 
user-space 
Energy-Aware Workshop @ Kernel Summit 2014, Chicago 
Morten Rasmussen
Sub-topics 
 Techniques for reducing energy consumption vary between 
platforms: 
 Race-to-idle 
 Task packing 
 P- and C-state constraints (Turbo Mode, package C-states, …) 
 … but they are not universally all good. Most likely only to a 
certain extend. 
 We need to know when to apply each of the techniques for a 
particular platform. 
 Proposals: 
12 
 Tunable heuristics for each technique that can controlled by somebody 
else (user-space?), basically passing the problems to others. 
 Provide in-kernel performance/energy model that can estimate the 
impact of scheduling decisions.
Backup/More stuff 
13
Model Validation: ARM TC2, sysbench 
14 
Correlation (Pearson): 
A15 = 0.93 
A7 = 0.96
Model Validation: ARM TC2, periodic 
15 
Correlation (Pearson): 
A15 = 0.17 
A7 = -0.01
Model Validation: ARM TC2, Android audio 
16 
Correlation (Pearson): 
A15 = 0.03 
A7 = 0.48
Model Validation: ARM TC2, Android 
bbench 
17 
Correlation (Pearson): 
A15 = 0.67 
A7 = 0.80
Old slides 
18
Motivation 
 Energy cost driven task placement (load-balancing) 
19 
 Focus on the actual goal of the energy-aware scheduling activities: 
 Saving energy while achieving (near) optimum performance. 
 Energy benefit of scheduling decision clear when made. 
 Assuming energy cost estimates are fairly accurate. 
 Introduce a simple energy model to estimate costs and guide 
scheduling decisions. 
 Requested by maintainers at the KS workshop. 
 Gives the right amount of packing and spreading. 
 May simplify balancing decision logic. 
 Strong focus on saving energy in load balancing algorithms. 
 big.LITTLE support comes naturally and almost for free. 
 This just one part of the energy efficiency work. 
 Several related sessions this week.
Energy Load Balancing 
 The idea (a bit simplified): 
20 
 Let the resulting energy consumption guide all balancing decisions: 
 if (energy_diff(task, src_cpu, dst_cpu) > 0) { 
move_task(task, src_cpu, dst_cpu); 
} else { 
/* Try some other task */ 
} 
 Ideally, we should get the optimum balance if we try all combinations 
of tasks and cpus. 
 In reality it is not that simple. We can't try all combinations, but we 
can get fairly close for most scenarios. 
 If the energy model is accurate enough we get packing and spreading 
implicitly and only when it saves energy 
 Should work for any system. SMP and big.LITTLE (with a few 
extensions).
Power and Energy 
 Goal: Save energy, not power. Power 
21 
Time 
Energy 
ecpu=P⋅t , t=inst 
cc 
ecpu=P(cc) inst 
cc 
ecpu=P(cc)( 
insttask 
cc + 
Work 
instidle 
cc ) 
ecpu=etask+eidle 
Compute capacity (~ freq * uarch) 
= Energy/inst: This is what we try to minimize. 
ecpu=Pbusy (cc) 
insttask 
cc +Pidle 
instidle 
cc 
If we have cpuidle support we get: 
~ utilization 
Tracked load 
Time 
Time in runnable state 
~ utilization* 
We have to add an additional leakage energy term to reflect that it is better not wake cpus 
unnecessarily.
Simple Energy Model 
 cpu_energy = power(cc) * util/cc 
22 
+ idle_power * (1-(util/cc)) 
+ leakage_energy 
 cluster_energy = 
c_active_power * c_util 
+ c_idle_power * (1-c_util) 
 util = Scale invariant cpu utilization (Tracked load). 
 cc = Current compute capacity (depends on freq and uarch). 
 power(cc) = Busy power (fully loaded) at current capacity from table. 
 idle_power = Idle power consumption (~WFI). 
 leakage_energy = Constant representing the cost of waking the cpu. 
 c_util = Cluster utilization. Depends on max(util/cc) ratio of its cpus. 
 c_active_power = Cluster active power. 
 c_idle_power = Cluster idle power.
Compute Capacity and Power 
 Processor specific table expressing power and compute 
capacity at each P-state. 
 The sched domain hierarchy is in a good position to hold this type of 
information. 
 Example (entirely made up): 
23 
Capacity Power 
0.2 0.4 
0.4 0.9 
0.6 1.5 
0.8 2.2 
1.0 3.2 
Capacity Power 
0.4 1.6 
0.8 4.4 
1.2 9.0 
1.6 15.0 
2.0 23.0 
Little Big 
idle 0.1 
leakage 0.1 
Equal compute capacity 
idle 0.3 
leakage 0.5 
Little Big 
cluster 
active 2.4 6.0 
idle 0.0 0.0
energy_diff() 
 Balancing two cpus: 
24 
def energy_diff(tload, scpu, dcpu): 
# Estimate the next compute capacity (P-state) 
s_new_cc = find_cpu_cap(scpu, cpu_util(scpu)) 
# energy model cost for task on source cpu 
s_task_energy = tload/s_new_cc * cpu_cc_power(scpu, s_new_cc) 
if nr_running(scpu) == 1: 
s_task_energy += cpu_leakage_energy[cpu_type[scpu]] 
# Estimate destination cpu cc after adding the task 
d_new_cc = find_cpu_cc(dcpu, cpu_util(dcpu)+tload) 
# energy model cost for task on destination cpu 
d_task_energy = tload/d_new_cc * cpu_cc_power(dcpu, d_new_cc) 
if nr_running(dcpu) == 0: 
d_task_energy += cpu_leakage_energy[cpu_type[dcpu]] 
return s_task_energy - d_task_energy 
 Balancing sched domains is slightly more complicated as it 
involves cluster power as well.
Example 
After EA load balance: 
25 
cpu rq util cap cc_power leak power 
0 {0.2} 0.2 0.2 0.4 0.1 0.5 
1 {0.1} 0.1 0.2 0.4 0.1 0.35 
energy_diff() 
2 {} 0.0 0.2 0.4 0.1 0.1 
= 0.075* 
cluster - 1.0 - 2.4 - 2.4 
Total 3.35 
0.55 
saved 
cpu rq util cap cc_power leak power 
0 {0.2, 0.1} 0.3 0.4 0.9 0.1 0.8 
1 {} 0.0 0.4 0.9 0.1 0.1 
2 {} 0.0 0.4 0.9 0.1 0.1 
cluster - 0.75 - 2.4 - 1.8 
Total 2.8 
* energy_diff() ignores cluster power and other tasks to keep computations cheap and simple. 
Better accuracy can be added if necessary.
Is the energy model too simple? 
 It is essential that the energy model is fast and is easy to use for load-balancing. 
26 
 The scheduler is a critical path and already complex enough. 
 Python model tests 
 Disclaimer: These numbers have not been validated in any way. 
 Test configuration: 3+3 big.LITTLE, 1000 random balance scenarios. 
 Rand/Opt: Random balance energy (starting point) worse than best possible balance 
energy (brute-force). 
 EA/Opt: Energy model based balance energy worse than best possible balance energy. 
 EA == Opt: Scenarios where EA found best possible balance. 
Tasks Rand/Opt EA/Opt EA == Opt 
2 7.86% 0.09% 72.60% 
3 7.79% 0.15% 64.80% 
4 9.39% 0.45% 62.00% 
5 10.02% 1.15% 51.10% 
6 11.44% 2.23% 38.30%
What is next? 
 Early prototype to validate the idea. Initial focus getting 
energy_diff() working on simple SMP system. 
 Post on LKML very soon. 
 Open Issues 
 Exposing power/capacity tables to kernel. Essential to make the right 
decisions. 
 Plumbing: Where do the tables come from? DT? 
 Next steps: 
27 
 Scale invariance: Requirement for the energy model to work. 
 Fix cpu_power/compute capacity use in scheduler. 
 Tooling and benchmarks (covered in another session) 
 Idle integration (covered in another session)
Questions? 
28

Contenu connexe

Tendances

LAS16-307: Benchmarking Schedutil in Android
LAS16-307: Benchmarking Schedutil in AndroidLAS16-307: Benchmarking Schedutil in Android
LAS16-307: Benchmarking Schedutil in AndroidLinaro
 
ACPI Debugging from Linux Kernel
ACPI Debugging from Linux KernelACPI Debugging from Linux Kernel
ACPI Debugging from Linux KernelSUSE Labs Taipei
 
HKG15-107: ACPI Power Management on ARM64 Servers (v2)
HKG15-107: ACPI Power Management on ARM64 Servers (v2)HKG15-107: ACPI Power Management on ARM64 Servers (v2)
HKG15-107: ACPI Power Management on ARM64 Servers (v2)Linaro
 
Process Scheduler and Balancer in Linux Kernel
Process Scheduler and Balancer in Linux KernelProcess Scheduler and Balancer in Linux Kernel
Process Scheduler and Balancer in Linux KernelHaifeng Li
 
BPF Internals (eBPF)
BPF Internals (eBPF)BPF Internals (eBPF)
BPF Internals (eBPF)Brendan Gregg
 
LAS16-200: SCMI - System Management and Control Interface
LAS16-200:  SCMI - System Management and Control InterfaceLAS16-200:  SCMI - System Management and Control Interface
LAS16-200: SCMI - System Management and Control InterfaceLinaro
 
malloc & vmalloc in Linux
malloc & vmalloc in Linuxmalloc & vmalloc in Linux
malloc & vmalloc in LinuxAdrian Huang
 
HKG15-505: Power Management interactions with OP-TEE and Trusted Firmware
HKG15-505: Power Management interactions with OP-TEE and Trusted FirmwareHKG15-505: Power Management interactions with OP-TEE and Trusted Firmware
HKG15-505: Power Management interactions with OP-TEE and Trusted FirmwareLinaro
 
semaphore & mutex.pdf
semaphore & mutex.pdfsemaphore & mutex.pdf
semaphore & mutex.pdfAdrian Huang
 
Rootlinux17: Hypervisors on ARM - Overview and Design Choices by Julien Grall...
Rootlinux17: Hypervisors on ARM - Overview and Design Choices by Julien Grall...Rootlinux17: Hypervisors on ARM - Overview and Design Choices by Julien Grall...
Rootlinux17: Hypervisors on ARM - Overview and Design Choices by Julien Grall...The Linux Foundation
 
Continguous Memory Allocator in the Linux Kernel
Continguous Memory Allocator in the Linux KernelContinguous Memory Allocator in the Linux Kernel
Continguous Memory Allocator in the Linux KernelKernel TLV
 
Kernel Recipes 2017 - Understanding the Linux kernel via ftrace - Steven Rostedt
Kernel Recipes 2017 - Understanding the Linux kernel via ftrace - Steven RostedtKernel Recipes 2017 - Understanding the Linux kernel via ftrace - Steven Rostedt
Kernel Recipes 2017 - Understanding the Linux kernel via ftrace - Steven RostedtAnne Nicolas
 
Arm device tree and linux device drivers
Arm device tree and linux device driversArm device tree and linux device drivers
Arm device tree and linux device driversHoucheng Lin
 
eBPF Trace from Kernel to Userspace
eBPF Trace from Kernel to UserspaceeBPF Trace from Kernel to Userspace
eBPF Trace from Kernel to UserspaceSUSE Labs Taipei
 
Linux Preempt-RT Internals
Linux Preempt-RT InternalsLinux Preempt-RT Internals
Linux Preempt-RT Internals哲豪 康哲豪
 
Reverse Mapping (rmap) in Linux Kernel
Reverse Mapping (rmap) in Linux KernelReverse Mapping (rmap) in Linux Kernel
Reverse Mapping (rmap) in Linux KernelAdrian Huang
 
Linux Kernel Module - For NLKB
Linux Kernel Module - For NLKBLinux Kernel Module - For NLKB
Linux Kernel Module - For NLKBshimosawa
 

Tendances (20)

LAS16-307: Benchmarking Schedutil in Android
LAS16-307: Benchmarking Schedutil in AndroidLAS16-307: Benchmarking Schedutil in Android
LAS16-307: Benchmarking Schedutil in Android
 
ACPI Debugging from Linux Kernel
ACPI Debugging from Linux KernelACPI Debugging from Linux Kernel
ACPI Debugging from Linux Kernel
 
HKG15-107: ACPI Power Management on ARM64 Servers (v2)
HKG15-107: ACPI Power Management on ARM64 Servers (v2)HKG15-107: ACPI Power Management on ARM64 Servers (v2)
HKG15-107: ACPI Power Management on ARM64 Servers (v2)
 
Process Scheduler and Balancer in Linux Kernel
Process Scheduler and Balancer in Linux KernelProcess Scheduler and Balancer in Linux Kernel
Process Scheduler and Balancer in Linux Kernel
 
BPF Internals (eBPF)
BPF Internals (eBPF)BPF Internals (eBPF)
BPF Internals (eBPF)
 
LAS16-200: SCMI - System Management and Control Interface
LAS16-200:  SCMI - System Management and Control InterfaceLAS16-200:  SCMI - System Management and Control Interface
LAS16-200: SCMI - System Management and Control Interface
 
malloc & vmalloc in Linux
malloc & vmalloc in Linuxmalloc & vmalloc in Linux
malloc & vmalloc in Linux
 
HKG15-505: Power Management interactions with OP-TEE and Trusted Firmware
HKG15-505: Power Management interactions with OP-TEE and Trusted FirmwareHKG15-505: Power Management interactions with OP-TEE and Trusted Firmware
HKG15-505: Power Management interactions with OP-TEE and Trusted Firmware
 
semaphore & mutex.pdf
semaphore & mutex.pdfsemaphore & mutex.pdf
semaphore & mutex.pdf
 
Rootlinux17: Hypervisors on ARM - Overview and Design Choices by Julien Grall...
Rootlinux17: Hypervisors on ARM - Overview and Design Choices by Julien Grall...Rootlinux17: Hypervisors on ARM - Overview and Design Choices by Julien Grall...
Rootlinux17: Hypervisors on ARM - Overview and Design Choices by Julien Grall...
 
Continguous Memory Allocator in the Linux Kernel
Continguous Memory Allocator in the Linux KernelContinguous Memory Allocator in the Linux Kernel
Continguous Memory Allocator in the Linux Kernel
 
Memory model
Memory modelMemory model
Memory model
 
Kernel Recipes 2017 - Understanding the Linux kernel via ftrace - Steven Rostedt
Kernel Recipes 2017 - Understanding the Linux kernel via ftrace - Steven RostedtKernel Recipes 2017 - Understanding the Linux kernel via ftrace - Steven Rostedt
Kernel Recipes 2017 - Understanding the Linux kernel via ftrace - Steven Rostedt
 
Making Linux do Hard Real-time
Making Linux do Hard Real-timeMaking Linux do Hard Real-time
Making Linux do Hard Real-time
 
Arm device tree and linux device drivers
Arm device tree and linux device driversArm device tree and linux device drivers
Arm device tree and linux device drivers
 
Qemu Pcie
Qemu PcieQemu Pcie
Qemu Pcie
 
eBPF Trace from Kernel to Userspace
eBPF Trace from Kernel to UserspaceeBPF Trace from Kernel to Userspace
eBPF Trace from Kernel to Userspace
 
Linux Preempt-RT Internals
Linux Preempt-RT InternalsLinux Preempt-RT Internals
Linux Preempt-RT Internals
 
Reverse Mapping (rmap) in Linux Kernel
Reverse Mapping (rmap) in Linux KernelReverse Mapping (rmap) in Linux Kernel
Reverse Mapping (rmap) in Linux Kernel
 
Linux Kernel Module - For NLKB
Linux Kernel Module - For NLKBLinux Kernel Module - For NLKB
Linux Kernel Module - For NLKB
 

En vedette

LCA14: LCA14-415: ACPI Power Management
LCA14: LCA14-415: ACPI Power ManagementLCA14: LCA14-415: ACPI Power Management
LCA14: LCA14-415: ACPI Power ManagementLinaro
 
LCU14 114- Upstreaming 201
LCU14 114- Upstreaming 201LCU14 114- Upstreaming 201
LCU14 114- Upstreaming 201Linaro
 
Analysis of leakage current calculation for nanoscale MOSFET and FinFET
Analysis of leakage current calculation for nanoscale MOSFET and FinFETAnalysis of leakage current calculation for nanoscale MOSFET and FinFET
Analysis of leakage current calculation for nanoscale MOSFET and FinFETIJTET Journal
 
LAS16-310: Introducing the first 96Boards TV Platform: Poplar by Hisilicon
LAS16-310: Introducing the first 96Boards TV Platform: Poplar by HisiliconLAS16-310: Introducing the first 96Boards TV Platform: Poplar by Hisilicon
LAS16-310: Introducing the first 96Boards TV Platform: Poplar by HisiliconLinaro
 
Introduction of ram ddr3
Introduction of ram ddr3Introduction of ram ddr3
Introduction of ram ddr3Technocratz
 
Lcu14 101- coresight overview
Lcu14 101- coresight overviewLcu14 101- coresight overview
Lcu14 101- coresight overviewLinaro
 
BKK16-311 EAS Upstream Stategy
BKK16-311 EAS Upstream StategyBKK16-311 EAS Upstream Stategy
BKK16-311 EAS Upstream StategyLinaro
 

En vedette (8)

LCA14: LCA14-415: ACPI Power Management
LCA14: LCA14-415: ACPI Power ManagementLCA14: LCA14-415: ACPI Power Management
LCA14: LCA14-415: ACPI Power Management
 
LCU14 114- Upstreaming 201
LCU14 114- Upstreaming 201LCU14 114- Upstreaming 201
LCU14 114- Upstreaming 201
 
SOC Power Estimation
SOC Power EstimationSOC Power Estimation
SOC Power Estimation
 
Analysis of leakage current calculation for nanoscale MOSFET and FinFET
Analysis of leakage current calculation for nanoscale MOSFET and FinFETAnalysis of leakage current calculation for nanoscale MOSFET and FinFET
Analysis of leakage current calculation for nanoscale MOSFET and FinFET
 
LAS16-310: Introducing the first 96Boards TV Platform: Poplar by Hisilicon
LAS16-310: Introducing the first 96Boards TV Platform: Poplar by HisiliconLAS16-310: Introducing the first 96Boards TV Platform: Poplar by Hisilicon
LAS16-310: Introducing the first 96Boards TV Platform: Poplar by Hisilicon
 
Introduction of ram ddr3
Introduction of ram ddr3Introduction of ram ddr3
Introduction of ram ddr3
 
Lcu14 101- coresight overview
Lcu14 101- coresight overviewLcu14 101- coresight overview
Lcu14 101- coresight overview
 
BKK16-311 EAS Upstream Stategy
BKK16-311 EAS Upstream StategyBKK16-311 EAS Upstream Stategy
BKK16-311 EAS Upstream Stategy
 

Similaire à LCU14-410: How to build an Energy Model for your SoC

LCU13: Power-efficient scheduling, and the latest news from the kernel summit
LCU13: Power-efficient scheduling, and the latest news from the kernel summitLCU13: Power-efficient scheduling, and the latest news from the kernel summit
LCU13: Power-efficient scheduling, and the latest news from the kernel summitLinaro
 
Economic Dispatch of Generated Power Using Modified Lambda-Iteration Method
Economic Dispatch of Generated Power Using Modified Lambda-Iteration MethodEconomic Dispatch of Generated Power Using Modified Lambda-Iteration Method
Economic Dispatch of Generated Power Using Modified Lambda-Iteration MethodIOSR Journals
 
Compiler optimization techniques
Compiler optimization techniquesCompiler optimization techniques
Compiler optimization techniquesHardik Devani
 
BKK16-TR08 How to generate power models for EAS and IPA
BKK16-TR08 How to generate power models for EAS and IPABKK16-TR08 How to generate power models for EAS and IPA
BKK16-TR08 How to generate power models for EAS and IPALinaro
 
On the-joint-optimization-of-performance-and-power-consumption-in-data-centers
On the-joint-optimization-of-performance-and-power-consumption-in-data-centersOn the-joint-optimization-of-performance-and-power-consumption-in-data-centers
On the-joint-optimization-of-performance-and-power-consumption-in-data-centersCemal Ardil
 
System-wide Energy Optimization for Multiple DVS Components and Real-time Tasks
System-wide Energy Optimization for Multiple DVS Components and Real-time TasksSystem-wide Energy Optimization for Multiple DVS Components and Real-time Tasks
System-wide Energy Optimization for Multiple DVS Components and Real-time TasksHeechul Yun
 
Optimization of Economic Load Dispatch with Unit Commitment on Multi Machine
Optimization of Economic Load Dispatch with Unit Commitment on Multi MachineOptimization of Economic Load Dispatch with Unit Commitment on Multi Machine
Optimization of Economic Load Dispatch with Unit Commitment on Multi MachineIJAPEJOURNAL
 
Map-Reduce for Machine Learning on Multicore
Map-Reduce for Machine Learning on MulticoreMap-Reduce for Machine Learning on Multicore
Map-Reduce for Machine Learning on Multicoreillidan2004
 
Oracle ebs capacity_analysisusingstatisticalmethods
Oracle ebs capacity_analysisusingstatisticalmethodsOracle ebs capacity_analysisusingstatisticalmethods
Oracle ebs capacity_analysisusingstatisticalmethodsAjith Narayanan
 
A Study on Task Scheduling in Could Data Centers for Energy Efficacy
A Study on Task Scheduling in Could Data Centers for Energy Efficacy A Study on Task Scheduling in Could Data Centers for Energy Efficacy
A Study on Task Scheduling in Could Data Centers for Energy Efficacy Ehsan Sharifi
 
Run-time power management in cloud and containerized environments
Run-time power management in cloud and containerized environmentsRun-time power management in cloud and containerized environments
Run-time power management in cloud and containerized environmentsNECST Lab @ Politecnico di Milano
 
Learning
LearningLearning
Learningbutest
 
AWS re:Invent 2016: Deep Dive on Amazon EC2 Instances, Featuring Performance ...
AWS re:Invent 2016: Deep Dive on Amazon EC2 Instances, Featuring Performance ...AWS re:Invent 2016: Deep Dive on Amazon EC2 Instances, Featuring Performance ...
AWS re:Invent 2016: Deep Dive on Amazon EC2 Instances, Featuring Performance ...Amazon Web Services
 
Combining both Plug-in Vehicles and Renewable Energy Resources for Unit Commi...
Combining both Plug-in Vehicles and Renewable Energy Resources for Unit Commi...Combining both Plug-in Vehicles and Renewable Energy Resources for Unit Commi...
Combining both Plug-in Vehicles and Renewable Energy Resources for Unit Commi...IOSR Journals
 
Operation cost reduction in unit commitment problem using improved quantum bi...
Operation cost reduction in unit commitment problem using improved quantum bi...Operation cost reduction in unit commitment problem using improved quantum bi...
Operation cost reduction in unit commitment problem using improved quantum bi...IJECEIAES
 
Why is my_oracle_e-biz_database_slow_a_million_dollar_question
Why is my_oracle_e-biz_database_slow_a_million_dollar_questionWhy is my_oracle_e-biz_database_slow_a_million_dollar_question
Why is my_oracle_e-biz_database_slow_a_million_dollar_questionAjith Narayanan
 
AWS re:Invent 2016: [JK REPEAT] Deep Dive on Amazon EC2 Instances, Featuring ...
AWS re:Invent 2016: [JK REPEAT] Deep Dive on Amazon EC2 Instances, Featuring ...AWS re:Invent 2016: [JK REPEAT] Deep Dive on Amazon EC2 Instances, Featuring ...
AWS re:Invent 2016: [JK REPEAT] Deep Dive on Amazon EC2 Instances, Featuring ...Amazon Web Services
 

Similaire à LCU14-410: How to build an Energy Model for your SoC (20)

LCU13: Power-efficient scheduling, and the latest news from the kernel summit
LCU13: Power-efficient scheduling, and the latest news from the kernel summitLCU13: Power-efficient scheduling, and the latest news from the kernel summit
LCU13: Power-efficient scheduling, and the latest news from the kernel summit
 
Green scheduling
Green schedulingGreen scheduling
Green scheduling
 
Economic Dispatch of Generated Power Using Modified Lambda-Iteration Method
Economic Dispatch of Generated Power Using Modified Lambda-Iteration MethodEconomic Dispatch of Generated Power Using Modified Lambda-Iteration Method
Economic Dispatch of Generated Power Using Modified Lambda-Iteration Method
 
Compiler optimization techniques
Compiler optimization techniquesCompiler optimization techniques
Compiler optimization techniques
 
Economic dipatch
Economic dipatch Economic dipatch
Economic dipatch
 
BKK16-TR08 How to generate power models for EAS and IPA
BKK16-TR08 How to generate power models for EAS and IPABKK16-TR08 How to generate power models for EAS and IPA
BKK16-TR08 How to generate power models for EAS and IPA
 
On the-joint-optimization-of-performance-and-power-consumption-in-data-centers
On the-joint-optimization-of-performance-and-power-consumption-in-data-centersOn the-joint-optimization-of-performance-and-power-consumption-in-data-centers
On the-joint-optimization-of-performance-and-power-consumption-in-data-centers
 
System-wide Energy Optimization for Multiple DVS Components and Real-time Tasks
System-wide Energy Optimization for Multiple DVS Components and Real-time TasksSystem-wide Energy Optimization for Multiple DVS Components and Real-time Tasks
System-wide Energy Optimization for Multiple DVS Components and Real-time Tasks
 
Optimization of Economic Load Dispatch with Unit Commitment on Multi Machine
Optimization of Economic Load Dispatch with Unit Commitment on Multi MachineOptimization of Economic Load Dispatch with Unit Commitment on Multi Machine
Optimization of Economic Load Dispatch with Unit Commitment on Multi Machine
 
Map-Reduce for Machine Learning on Multicore
Map-Reduce for Machine Learning on MulticoreMap-Reduce for Machine Learning on Multicore
Map-Reduce for Machine Learning on Multicore
 
Oracle ebs capacity_analysisusingstatisticalmethods
Oracle ebs capacity_analysisusingstatisticalmethodsOracle ebs capacity_analysisusingstatisticalmethods
Oracle ebs capacity_analysisusingstatisticalmethods
 
A Study on Task Scheduling in Could Data Centers for Energy Efficacy
A Study on Task Scheduling in Could Data Centers for Energy Efficacy A Study on Task Scheduling in Could Data Centers for Energy Efficacy
A Study on Task Scheduling in Could Data Centers for Energy Efficacy
 
Run-time power management in cloud and containerized environments
Run-time power management in cloud and containerized environmentsRun-time power management in cloud and containerized environments
Run-time power management in cloud and containerized environments
 
Energy saving policies final
Energy saving policies finalEnergy saving policies final
Energy saving policies final
 
Learning
LearningLearning
Learning
 
AWS re:Invent 2016: Deep Dive on Amazon EC2 Instances, Featuring Performance ...
AWS re:Invent 2016: Deep Dive on Amazon EC2 Instances, Featuring Performance ...AWS re:Invent 2016: Deep Dive on Amazon EC2 Instances, Featuring Performance ...
AWS re:Invent 2016: Deep Dive on Amazon EC2 Instances, Featuring Performance ...
 
Combining both Plug-in Vehicles and Renewable Energy Resources for Unit Commi...
Combining both Plug-in Vehicles and Renewable Energy Resources for Unit Commi...Combining both Plug-in Vehicles and Renewable Energy Resources for Unit Commi...
Combining both Plug-in Vehicles and Renewable Energy Resources for Unit Commi...
 
Operation cost reduction in unit commitment problem using improved quantum bi...
Operation cost reduction in unit commitment problem using improved quantum bi...Operation cost reduction in unit commitment problem using improved quantum bi...
Operation cost reduction in unit commitment problem using improved quantum bi...
 
Why is my_oracle_e-biz_database_slow_a_million_dollar_question
Why is my_oracle_e-biz_database_slow_a_million_dollar_questionWhy is my_oracle_e-biz_database_slow_a_million_dollar_question
Why is my_oracle_e-biz_database_slow_a_million_dollar_question
 
AWS re:Invent 2016: [JK REPEAT] Deep Dive on Amazon EC2 Instances, Featuring ...
AWS re:Invent 2016: [JK REPEAT] Deep Dive on Amazon EC2 Instances, Featuring ...AWS re:Invent 2016: [JK REPEAT] Deep Dive on Amazon EC2 Instances, Featuring ...
AWS re:Invent 2016: [JK REPEAT] Deep Dive on Amazon EC2 Instances, Featuring ...
 

Plus de Linaro

Deep Learning Neural Network Acceleration at the Edge - Andrea Gallo
Deep Learning Neural Network Acceleration at the Edge - Andrea GalloDeep Learning Neural Network Acceleration at the Edge - Andrea Gallo
Deep Learning Neural Network Acceleration at the Edge - Andrea GalloLinaro
 
Arm Architecture HPC Workshop Santa Clara 2018 - Kanta Vekaria
Arm Architecture HPC Workshop Santa Clara 2018 - Kanta VekariaArm Architecture HPC Workshop Santa Clara 2018 - Kanta Vekaria
Arm Architecture HPC Workshop Santa Clara 2018 - Kanta VekariaLinaro
 
Huawei’s requirements for the ARM based HPC solution readiness - Joshua Mora
Huawei’s requirements for the ARM based HPC solution readiness - Joshua MoraHuawei’s requirements for the ARM based HPC solution readiness - Joshua Mora
Huawei’s requirements for the ARM based HPC solution readiness - Joshua MoraLinaro
 
Bud17 113: distribution ci using qemu and open qa
Bud17 113: distribution ci using qemu and open qaBud17 113: distribution ci using qemu and open qa
Bud17 113: distribution ci using qemu and open qaLinaro
 
OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018
OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018
OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018Linaro
 
HPC network stack on ARM - Linaro HPC Workshop 2018
HPC network stack on ARM - Linaro HPC Workshop 2018HPC network stack on ARM - Linaro HPC Workshop 2018
HPC network stack on ARM - Linaro HPC Workshop 2018Linaro
 
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...Linaro
 
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...Linaro
 
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...Linaro
 
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...Linaro
 
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainlineHKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainlineLinaro
 
HKG18-100K1 - George Grey: Opening Keynote
HKG18-100K1 - George Grey: Opening KeynoteHKG18-100K1 - George Grey: Opening Keynote
HKG18-100K1 - George Grey: Opening KeynoteLinaro
 
HKG18-318 - OpenAMP Workshop
HKG18-318 - OpenAMP WorkshopHKG18-318 - OpenAMP Workshop
HKG18-318 - OpenAMP WorkshopLinaro
 
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainlineHKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainlineLinaro
 
HKG18-315 - Why the ecosystem is a wonderful thing, warts and all
HKG18-315 - Why the ecosystem is a wonderful thing, warts and allHKG18-315 - Why the ecosystem is a wonderful thing, warts and all
HKG18-315 - Why the ecosystem is a wonderful thing, warts and allLinaro
 
HKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
HKG18- 115 - Partitioning ARM Systems with the Jailhouse HypervisorHKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
HKG18- 115 - Partitioning ARM Systems with the Jailhouse HypervisorLinaro
 
HKG18-TR08 - Upstreaming SVE in QEMU
HKG18-TR08 - Upstreaming SVE in QEMUHKG18-TR08 - Upstreaming SVE in QEMU
HKG18-TR08 - Upstreaming SVE in QEMULinaro
 
HKG18-113- Secure Data Path work with i.MX8M
HKG18-113- Secure Data Path work with i.MX8MHKG18-113- Secure Data Path work with i.MX8M
HKG18-113- Secure Data Path work with i.MX8MLinaro
 
HKG18-120 - Devicetree Schema Documentation and Validation
HKG18-120 - Devicetree Schema Documentation and Validation HKG18-120 - Devicetree Schema Documentation and Validation
HKG18-120 - Devicetree Schema Documentation and Validation Linaro
 
HKG18-223 - Trusted FirmwareM: Trusted boot
HKG18-223 - Trusted FirmwareM: Trusted bootHKG18-223 - Trusted FirmwareM: Trusted boot
HKG18-223 - Trusted FirmwareM: Trusted bootLinaro
 

Plus de Linaro (20)

Deep Learning Neural Network Acceleration at the Edge - Andrea Gallo
Deep Learning Neural Network Acceleration at the Edge - Andrea GalloDeep Learning Neural Network Acceleration at the Edge - Andrea Gallo
Deep Learning Neural Network Acceleration at the Edge - Andrea Gallo
 
Arm Architecture HPC Workshop Santa Clara 2018 - Kanta Vekaria
Arm Architecture HPC Workshop Santa Clara 2018 - Kanta VekariaArm Architecture HPC Workshop Santa Clara 2018 - Kanta Vekaria
Arm Architecture HPC Workshop Santa Clara 2018 - Kanta Vekaria
 
Huawei’s requirements for the ARM based HPC solution readiness - Joshua Mora
Huawei’s requirements for the ARM based HPC solution readiness - Joshua MoraHuawei’s requirements for the ARM based HPC solution readiness - Joshua Mora
Huawei’s requirements for the ARM based HPC solution readiness - Joshua Mora
 
Bud17 113: distribution ci using qemu and open qa
Bud17 113: distribution ci using qemu and open qaBud17 113: distribution ci using qemu and open qa
Bud17 113: distribution ci using qemu and open qa
 
OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018
OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018
OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018
 
HPC network stack on ARM - Linaro HPC Workshop 2018
HPC network stack on ARM - Linaro HPC Workshop 2018HPC network stack on ARM - Linaro HPC Workshop 2018
HPC network stack on ARM - Linaro HPC Workshop 2018
 
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...
 
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...
 
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...
 
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...
 
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainlineHKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
 
HKG18-100K1 - George Grey: Opening Keynote
HKG18-100K1 - George Grey: Opening KeynoteHKG18-100K1 - George Grey: Opening Keynote
HKG18-100K1 - George Grey: Opening Keynote
 
HKG18-318 - OpenAMP Workshop
HKG18-318 - OpenAMP WorkshopHKG18-318 - OpenAMP Workshop
HKG18-318 - OpenAMP Workshop
 
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainlineHKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
 
HKG18-315 - Why the ecosystem is a wonderful thing, warts and all
HKG18-315 - Why the ecosystem is a wonderful thing, warts and allHKG18-315 - Why the ecosystem is a wonderful thing, warts and all
HKG18-315 - Why the ecosystem is a wonderful thing, warts and all
 
HKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
HKG18- 115 - Partitioning ARM Systems with the Jailhouse HypervisorHKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
HKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
 
HKG18-TR08 - Upstreaming SVE in QEMU
HKG18-TR08 - Upstreaming SVE in QEMUHKG18-TR08 - Upstreaming SVE in QEMU
HKG18-TR08 - Upstreaming SVE in QEMU
 
HKG18-113- Secure Data Path work with i.MX8M
HKG18-113- Secure Data Path work with i.MX8MHKG18-113- Secure Data Path work with i.MX8M
HKG18-113- Secure Data Path work with i.MX8M
 
HKG18-120 - Devicetree Schema Documentation and Validation
HKG18-120 - Devicetree Schema Documentation and Validation HKG18-120 - Devicetree Schema Documentation and Validation
HKG18-120 - Devicetree Schema Documentation and Validation
 
HKG18-223 - Trusted FirmwareM: Trusted boot
HKG18-223 - Trusted FirmwareM: Trusted bootHKG18-223 - Trusted FirmwareM: Trusted boot
HKG18-223 - Trusted FirmwareM: Trusted boot
 

Dernier

How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 

Dernier (20)

Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 

LCU14-410: How to build an Energy Model for your SoC

  • 1. 1 How to build an energy model for your SoC Linaro Connect CLU14, Burlingame,CA. Morten Rasmussen
  • 2. Why do you need an energy model?  Most of the Linux kernel is blissfully unaware of SoC power management features:  P-states, clock domains, C-states, power domains, ...  Only largely autonomous subsystems are aware of some of these details (cpufreq, cpuidle, …)  The plan is to change that by coordinating task scheduling, frequency scaling, and idle-state selection to improve power management.  Energy saving techniques must be applied under the right circumstances which vary between SoCs.  The kernel must therefore have a better understanding of power(energy)/performance trade-offs for the particular SoC to make the right decisions.  An energy model can provide that information.  As a bonus, the energy model may also be used by tools to quick energy estimates based on execution traces. 2
  • 3. Modelling limitations  Model are never accurate, but we only need enough detail to make the right decisions most of the time.  The model will be used by critical code paths in the kernel, so it has to be as simple as possible.  Only considers cpus, no memory or peripherals. 3
  • 4. A simplified system view 4 G cpu0 cpu1 Shared HW G G G cpu2 cpu3 Shared HW G G Power G G G G Clock source Clock source G Clock gating G Power gating Power domain
  • 5. Energy consumption simplified 5 Px time power Py Transition energy Cz Busy Transition Idle Busy energy Busy energy Idle energy
  • 6. Scheduler Topology Hierarchy 6 0 1 2 3 Cluster/package P-states Cluster/package Disclaimer: This a simplified view of the sched_domain hiearchy. Struct sched_group Energy model tables Per-core C-states C-states
  • 7. Energy model data  P-states:  Compute capacity: Performance score normalize to highest P-state of fastest cpu in the system (1024). Choose benchmark carefully. Preferably use a suite of benchmarks.  Power: Busy power = energy/second. Normalized to any reference, but must be consistent across all cpus.  C-states:  Power: Idle power = energy/second. Normalized.  Wake-up energy. Energy consumed during P->C + C->P state transitions. Unit must be consistent with power numbers.  Note: 7  Power numbers should only include power consumption associated with the group where the tables are attached, i.e. per-core P-state power should only include power consumed by the core itself, shared HW is accounted for in the table belonging to the level above.
  • 8. Energy model data 0 1 8 C-states power wu (state) 10 6 (C1) ... ... ... Cluster P-states P-states C-states power wu (state) 0 0 (WFI) ... ... ... capacity power (freq) 358 2967 (350) ... ... ... 1024 4905 (1000) capacity power (freq) 358 187 (350) ... ... ... 1024 1024 (1000) CPU
  • 9. Energy model algorithm 9 for_each_domain(cpu, sd) { sg = sched_group_of(cpu) energy_before = curr_util(sg) * busy_power(sg) + (1-curr_util(sg)) * idle_power(sg) energy_after = new_util(sg) * busy_power(sg) + (1-new_util(sg)) * idle_power(sg) + (1-new_util(sg)) * wakeups * wakeup_energy(sg) energy_diff += energy_before - energy_after if (energy_before == energy_after) break; } return energy_diff
  • 11. 11 Platform performance/energy data/model in scheduler or user-space Energy-Aware Workshop @ Kernel Summit 2014, Chicago Morten Rasmussen
  • 12. Sub-topics  Techniques for reducing energy consumption vary between platforms:  Race-to-idle  Task packing  P- and C-state constraints (Turbo Mode, package C-states, …)  … but they are not universally all good. Most likely only to a certain extend.  We need to know when to apply each of the techniques for a particular platform.  Proposals: 12  Tunable heuristics for each technique that can controlled by somebody else (user-space?), basically passing the problems to others.  Provide in-kernel performance/energy model that can estimate the impact of scheduling decisions.
  • 14. Model Validation: ARM TC2, sysbench 14 Correlation (Pearson): A15 = 0.93 A7 = 0.96
  • 15. Model Validation: ARM TC2, periodic 15 Correlation (Pearson): A15 = 0.17 A7 = -0.01
  • 16. Model Validation: ARM TC2, Android audio 16 Correlation (Pearson): A15 = 0.03 A7 = 0.48
  • 17. Model Validation: ARM TC2, Android bbench 17 Correlation (Pearson): A15 = 0.67 A7 = 0.80
  • 19. Motivation  Energy cost driven task placement (load-balancing) 19  Focus on the actual goal of the energy-aware scheduling activities:  Saving energy while achieving (near) optimum performance.  Energy benefit of scheduling decision clear when made.  Assuming energy cost estimates are fairly accurate.  Introduce a simple energy model to estimate costs and guide scheduling decisions.  Requested by maintainers at the KS workshop.  Gives the right amount of packing and spreading.  May simplify balancing decision logic.  Strong focus on saving energy in load balancing algorithms.  big.LITTLE support comes naturally and almost for free.  This just one part of the energy efficiency work.  Several related sessions this week.
  • 20. Energy Load Balancing  The idea (a bit simplified): 20  Let the resulting energy consumption guide all balancing decisions:  if (energy_diff(task, src_cpu, dst_cpu) > 0) { move_task(task, src_cpu, dst_cpu); } else { /* Try some other task */ }  Ideally, we should get the optimum balance if we try all combinations of tasks and cpus.  In reality it is not that simple. We can't try all combinations, but we can get fairly close for most scenarios.  If the energy model is accurate enough we get packing and spreading implicitly and only when it saves energy  Should work for any system. SMP and big.LITTLE (with a few extensions).
  • 21. Power and Energy  Goal: Save energy, not power. Power 21 Time Energy ecpu=P⋅t , t=inst cc ecpu=P(cc) inst cc ecpu=P(cc)( insttask cc + Work instidle cc ) ecpu=etask+eidle Compute capacity (~ freq * uarch) = Energy/inst: This is what we try to minimize. ecpu=Pbusy (cc) insttask cc +Pidle instidle cc If we have cpuidle support we get: ~ utilization Tracked load Time Time in runnable state ~ utilization* We have to add an additional leakage energy term to reflect that it is better not wake cpus unnecessarily.
  • 22. Simple Energy Model  cpu_energy = power(cc) * util/cc 22 + idle_power * (1-(util/cc)) + leakage_energy  cluster_energy = c_active_power * c_util + c_idle_power * (1-c_util)  util = Scale invariant cpu utilization (Tracked load).  cc = Current compute capacity (depends on freq and uarch).  power(cc) = Busy power (fully loaded) at current capacity from table.  idle_power = Idle power consumption (~WFI).  leakage_energy = Constant representing the cost of waking the cpu.  c_util = Cluster utilization. Depends on max(util/cc) ratio of its cpus.  c_active_power = Cluster active power.  c_idle_power = Cluster idle power.
  • 23. Compute Capacity and Power  Processor specific table expressing power and compute capacity at each P-state.  The sched domain hierarchy is in a good position to hold this type of information.  Example (entirely made up): 23 Capacity Power 0.2 0.4 0.4 0.9 0.6 1.5 0.8 2.2 1.0 3.2 Capacity Power 0.4 1.6 0.8 4.4 1.2 9.0 1.6 15.0 2.0 23.0 Little Big idle 0.1 leakage 0.1 Equal compute capacity idle 0.3 leakage 0.5 Little Big cluster active 2.4 6.0 idle 0.0 0.0
  • 24. energy_diff()  Balancing two cpus: 24 def energy_diff(tload, scpu, dcpu): # Estimate the next compute capacity (P-state) s_new_cc = find_cpu_cap(scpu, cpu_util(scpu)) # energy model cost for task on source cpu s_task_energy = tload/s_new_cc * cpu_cc_power(scpu, s_new_cc) if nr_running(scpu) == 1: s_task_energy += cpu_leakage_energy[cpu_type[scpu]] # Estimate destination cpu cc after adding the task d_new_cc = find_cpu_cc(dcpu, cpu_util(dcpu)+tload) # energy model cost for task on destination cpu d_task_energy = tload/d_new_cc * cpu_cc_power(dcpu, d_new_cc) if nr_running(dcpu) == 0: d_task_energy += cpu_leakage_energy[cpu_type[dcpu]] return s_task_energy - d_task_energy  Balancing sched domains is slightly more complicated as it involves cluster power as well.
  • 25. Example After EA load balance: 25 cpu rq util cap cc_power leak power 0 {0.2} 0.2 0.2 0.4 0.1 0.5 1 {0.1} 0.1 0.2 0.4 0.1 0.35 energy_diff() 2 {} 0.0 0.2 0.4 0.1 0.1 = 0.075* cluster - 1.0 - 2.4 - 2.4 Total 3.35 0.55 saved cpu rq util cap cc_power leak power 0 {0.2, 0.1} 0.3 0.4 0.9 0.1 0.8 1 {} 0.0 0.4 0.9 0.1 0.1 2 {} 0.0 0.4 0.9 0.1 0.1 cluster - 0.75 - 2.4 - 1.8 Total 2.8 * energy_diff() ignores cluster power and other tasks to keep computations cheap and simple. Better accuracy can be added if necessary.
  • 26. Is the energy model too simple?  It is essential that the energy model is fast and is easy to use for load-balancing. 26  The scheduler is a critical path and already complex enough.  Python model tests  Disclaimer: These numbers have not been validated in any way.  Test configuration: 3+3 big.LITTLE, 1000 random balance scenarios.  Rand/Opt: Random balance energy (starting point) worse than best possible balance energy (brute-force).  EA/Opt: Energy model based balance energy worse than best possible balance energy.  EA == Opt: Scenarios where EA found best possible balance. Tasks Rand/Opt EA/Opt EA == Opt 2 7.86% 0.09% 72.60% 3 7.79% 0.15% 64.80% 4 9.39% 0.45% 62.00% 5 10.02% 1.15% 51.10% 6 11.44% 2.23% 38.30%
  • 27. What is next?  Early prototype to validate the idea. Initial focus getting energy_diff() working on simple SMP system.  Post on LKML very soon.  Open Issues  Exposing power/capacity tables to kernel. Essential to make the right decisions.  Plumbing: Where do the tables come from? DT?  Next steps: 27  Scale invariance: Requirement for the energy model to work.  Fix cpu_power/compute capacity use in scheduler.  Tooling and benchmarks (covered in another session)  Idle integration (covered in another session)