SlideShare a Scribd company logo
1 of 44
Download to read offline
Presented by
Date
Event
How to generate power models for
EAS and IPA
… without talking to a hardware engineerLeo Yan
Daniel Thompson
BKK16-317 March 9, 2016
Linaro Connect BKK16
Agenda
● Background
● Low power states
● Measurement on Hikey
● Generate power model
● Conclusions
Background
● Generating platform-specific parameters for power models are a
prerequisite for deploying EAS and IPA
○ Software engineers need these parameters to work on these features
○ Gaining assistance from hardware engineers is difficult and, for
engineers who don’t work for SoC vendors, impossible
○ It is possible to generate an acceptable (though perhaps not optimal)
model using simple tools
● Today we will focus on CPU and cluster level power modeling
○ Excludes SoC level power modeling (GPU, DDR, ...)
The role of power modeling
Power
Modeling
EAS/IPA Profiling
Generate power
modeling
1
Enable EAS/IPA
2
Enable profiling
environment
3
Check if use bad
power modeling
4
Refine algorithm
5
Refine power
modeling
6
Agenda
● Background
● Low power states
● Measurement on Hikey
● Generate power model
● Conclusions
CPU power states
CPU State PD_CPUx
CPU P-State On
WFI On, internal clock gating
CPU Off Off
CPU P-State
ARM CPUARM CPU0
ACP
ACE
L2 RAM
ARM CPU0
ARM CPU0
SCU
Cluster 0
CLKIN
PDCPU0
Powered Off
Powered On
Clock Gating
CPU WFI State
ARM CPUARM CPU0
ACP
ACE
L2 RAM
ARM CPU0
ARM CPU0: WFI
SCU
Cluster 0
CLKIN
PDCPU0
Powered Off
Powered On
Clock Gating
CPU Off State
ARM CPUARM CPU0
ACP
ACE
L2 RAM
ARM CPU0
ARM CPU0
SCU
Cluster 0
CLKIN
PDCPU0
Powered Off
Powered On
Clock Gating
X
X
Cluster power states
Cluster State PD_CPUx PDCORTEXA53 PD_L2
Cluster P-State On or Off On On
Cluster L2
Retention
Off Off Retention
Cluster Off Off Off Off
Cannot keep
cache coherent
between two
clusters
Cluster P-State
ARM CPUARM CPU0
ACP
ACE
L2 RAM
ARM CPU0
ARM CPU0
SCU
Cluster 0
CLKIN
PDCPU<n>
Powered Off
Powered On
Clock Gating
PDCORTEXTA53
PDL2
X
X
Cluster L2 Retention State
ARM CPUARM CPU0
ACP
ACE
L2 RAM
ARM CPU0
ARM CPU0
SCU
Cluster 0
CLKIN
PDCPU<n>
Powered Off
Powered On
Clock Gating
PDCORTEXTA53
PDL2
X
X
X
Cluster Off State
ARM CPUARM CPU0
ACP
ACE
L2 RAM
ARM CPU0
ARM CPU0
SCU
Cluster 0
CLKIN
PDCPU<n>
Powered Off
Powered On
Clock Gating
PDCORTEXTA53
PDL2
X
X
X
X
Link power states in Linux Kernel
Power State Linux Kernel
CPU P-state P-state
WFI C-state
CPU Off C-state
Cluster P-state P-state
Cluster L2 Retention C-state
Cluster Off C-state
CPUFreq does not distinguish
“CPU P-state” and “Cluster P-
state” status as usually
binding CPU and Cluster
frequency from hardware
design.
But EAS needs to model
these two states separately.
Agenda
● Background
● Low power states
● Measurement on Hikey
● Generate power model
● Conclusions
Hikey PMIC Hierarchy
SoC:
Hi6220
DC IN TO
4.2VDC,
4A
PMIC:
Hi6553
12V VDD_4V2
LX0
LX1
BUCK1_1V05
Ideal measure point,
but hardware design
does not encourage
measurement here
Select CPU’s nearest
measurement point
BUCKs & LDOs
ACPU
R247R7
Connect with ARM energy probe
DC IN
TO 4.2
VDC, 4A
PMIC:
Hi6553
VDD_4V2
0.033Ω
ARM energy probe
Hikey Board
PC: Linux
V+ V-Ground USB
Methodology For Power Measurement
● Use single CPU to measure power
○ All other CPUs will be hot unplugged (CPU off state)
○ CPU0 is left connected
● Use ARM Trusted Firmware to perform system suspend
○ Force cluster and CPU0 to enter specific C-states and P-states
● Measure power data based on different operating points
○ Each OPP implies specific pair of voltage and frequency
○ Measure all C-states and P-states at given OPP
○ Use “dhrystone” to generate 100% CPU utilization for CPU P-state
hikey_afflvl_off
Linux kernel
ARM CPUARM CPU0ARM CPU0ARM CPU0
Setup power state
ARM CPUARM CPU0ARM CPU1
CPU1..7
echo 0 > /sys/devices/system/cpu/cpu[1..7]/online
psci_cpu_off
ARM TF
ARM CPUARM
CPU0
ARM
CPU0
ARM CPU4
echo mem > /sys/power/state
ARM CPU0 psci_system_suspend_enter
Cluster 1
ARM CPUARM
CPU0
ARM
CPU0
Cluster 0
ARM CPU0
SoC
ARM CPUARM
CPU0
ARM
CPU0
ARM
CPU4
Cluster 1
ARM CPUARM
CPU0
ARM
CPU0
Cluster 0
ARM
CPU0
SoC
ARM CPUARM
CPU0
ARM
CPU0
ARM
CPU4
Cluster 1
ARM CPUARM
CPU0
ARM
CPU0
Cluster 0
ARM
CPU0
SoC
Hack low level code to only
power off CPU but leave
cluster on
1
2
ARM CPUARM
CPU0
ARM
CPU0
ARM
CPU4
Cluster 1
ARM CPUARM
CPU0
ARM
CPU0
Cluster 0
ARM
CPU0
SoC
hisi_ipc_cpu_suspend
hisi_ipc_psci_system_off
hisi_ipc_cluster_suspendhikey_affinst_suspend
Cluster and CPU’s Power Data
OPP (MHz) Voltage (v) Cluster Power
Off State
(mW)
Cluster P-State
(mW)
CPU WFI
State
(mW)
CPU P-State
(mW)
208 1.04 344 360 379 429
432 1.04 345 374 387 498
729 1.09 346 393 408 617
960 1.18 352 427 443 794
1200 1.33 367 479 508 1149
Difference is caused by other
components in SoC that share
the same regulator
“Cluster P-state” means all CPUs in
cluster have been powered off but
cluster is powered on
Agenda
● Background
● Low power states
● Measurement on Hikey
● Generate power model
● Conclusions
EAS energy model
CPU0
CPU1
Cluster
Time
C-state
P-state
● Formula: energy = energy_cluster + ∑ energy_CPU in cluster
● C-states: Idle energy, include cpu level and cluster level
● P-states: Busy energy, include cpu level and cluster level
Normalized CPU capacity
● Normalized CPU capacity is a ratio value
○ Ratio between actual performance of CPU and the maximum
performance of CPU in the system
○ Normalized into range [0..1024]
● Normally use “dhrystone” to measure CPU capacity
○ Safe to derive from CPU frequency if all CPUs are homogeneous
static struct capacity_state cap_states_core_a53[] =
{
/* Power per cpu */
{ .cap = 178, .power = 69, }, /* 208MHz */
{ .cap = 369, .power = 124, }, /* 432MHz */
{ .cap = 622, .power = 224, }, /* 729MHz */
{ .cap = 819, .power = 367, }, /* 960MHz */
{ .cap = 1024, .power = 670, }, /* 1.2GHz */
};
Basic method to calculate for power data
ARM CPUARM CPU0
ACP
ACE
L2 RAM
ARM CPU0ARM CPU0
OPP: 729 MHz
SCU
Cluster 0
ARM CPUARM CPU0
ACP
ACE
L2 RAM
ARM CPU0ARM CPU0
SCU
Cluster 0
ARM CPU0
OPP: 729 MHz
Remove cluster level
power consumption
CPU level power
consumption
Power of CPU C-State
OPP
(MHz)
Cluster Power
On State
(mW)
CPU WFI
(mW)
Power of CPU
WFI (mW)
208 360 379 19
432 374 387 13
729 393 408 15
960 427 443 16
1200 479 508 31
static struct idle_state idle_states_core_a53[] =
{
{ .power = 15 }, /* active idle state */
{ .power = 15 }, /* WFI state */
{ .power = 0 }, /* CPU Off state */
{ .power = 0 }, /* Cluster Off state */
};
Select 15mW as middle value for WFI
state’s power data
Power of CPU P-State
OPP
(MHz)
Cluster P-State
(mW)
CPU P-State
(mW)
Power of
CPU P-state
(mW)
208 360 429 69
432 374 498 124
729 393 617 224
960 427 794 367
1200 479 1149 670
static struct capacity_state cap_states_core_a53[] =
{
/* Power per cpu */
{ .cap = 178, .power = 69, }, /* 208MHz */
{ .cap = 369, .power = 124, }, /* 432MHz */
{ .cap = 622, .power = 224, }, /* 729MHz */
{ .cap = 819, .power = 367, }, /* 960MHz */
{ .cap = 1024, .power = 670, }, /* 1.2GHz */
};
CPU P-state is calculated with static
leakage and dynamic power, so should
use Power (CPU P-state) - Power (Cluster
P-state)
Cluster’s active idle state
ARM CPUARM CPU0
ACP
ACE
L2 RAM
ARM CPU0ARM CPU: Off
SCU
Cluster 0
Powered Off
Powered On
Clock Gating
ARM CPUARM CPU0
ACP
ACE
L2 RAM
ARM CPU0ARM CPU: WFI
SCU
Cluster 0
ARM CPUARM CPU0
ACP
ACE
L2 RAM
ARM CPU0ARM CPU: WFI
or Off
SCU
Cluster 0
At CPU level, all CPUs in the cluster are in one of the idle
states (WFI or Off state) and the cluster is not processing
any software.
At cluster level, the cluster remains active.
Is Active idle state a
C-state or a P-state?
The main difference
is if we need consider
it with different OPP...
Power of Cluster C-State
OPP
(MHz)
Cluster Power
Off State
(mW)
Cluster
Power On
State
(mW)
Power of cluster
level active idle
state (mW)
208 344 360 16
432 345 374 29
729 346 393 47
960 352 427 75
1200 367 479 112
static struct idle_state idle_states_cluster_a53[] =
{
{ .power = 47 }, /* active idle state */
{ .power = 47 }, /* WFI state */
{ .power = 47 }, /* CPU Off state */
{ .power = 0 }, /* Cluster Off state */
};
Only in cluster power off state will we
totally power off whole cluster, in other
idle states the cluster actually is powered
on even when all CPUs are powered off.
Power of Cluster P-State
OPP
(MHz)
Cluster Power
Off State
(mW)
Cluster
Power On
State
(mW)
Power of cluster
level active idle
state (mW)
208 344 360 16
432 345 374 29
729 346 393 47
960 352 427 75
1200 367 479 112
static struct capacity_state cap_states_cluster_a53[] =
{
/* Power per cluster */
{ .cap = 178, .power = 16, },
{ .cap = 369, .power = 29, },
{ .cap = 622, .power = 47, },
{ .cap = 819, .power = 75, },
{ .cap = 1024, .power = 112, },
};
static struct idle_state idle_states_cluster_a53[] =
{
{ .power = 47 }, /* active idle state */
{ .power = 47 }, /* WFI state */
{ .power = 47 }, /* CPU Off state */
{ .power = 0 }, /* Cluster Off state */
};
static struct capacity_state cap_states_cluster_a53[] =
{
/* Power per cluster */
{ .cap = 178, .power = 16, },
{ .cap = 369, .power = 29, },
{ .cap = 622, .power = 47, },
{ .cap = 819, .power = 75, },
{ .cap = 1024, .power = 112, },
};
static struct idle_state idle_states_core_a53[] =
{
{ .power = 15 }, /* active idle state */
{ .power = 15 }, /* WFI state */
{ .power = 0 }, /* CPU Off state */
{ .power = 0 }, /* Cluster Off state */
};
static struct capacity_state cap_states_core_a53[] =
{
/* Power per cpu */
{ .cap = 178, .power = 69, }, /* 208MHz */
{ .cap = 369, .power = 124, }, /* 432MHz */
{ .cap = 622, .power = 224, }, /* 729MHz */
{ .cap = 819, .power = 367, }, /* 960MHz */
{ .cap = 1024, .power = 670, }, /* 1.2GHz */
};
Cluster level CPU level
P-State
C-State
Active Idle State
EAS power modeling parameters
Overview for IPA power model
IPA
Thermal
sensor driver
CPU Cooling
Device
CPUFreq
Framework
Get dynamic power
3
Get static power
4
Updated allocated budget
5
Update CPUFreq policy
6
Report temperature,
reach trip points
1
Gather actor’s request budget
2
Power Model for
CPU actor
Power model based on dynamic power and
static leakage
Dynamic power
CPU static leakage
Cluster static leakage
SoC temperature impacts
static leakage
Power model as a linear equation
+power static_power= "capacitance" * (freq * volt^2)
Dynamic power
Y = m * X + b
Can easily calculate best-fit values for
m and b using the LINEST function
found in most spreadsheet programs.
OPP
(MHz)
Voltage
(v)
Cluster Power
Off State (mW)
Cluster P-state
(mW)
Cluster Power
(mW)
F * V^2
208 1.04 344 360 16 225
432 1.04 345 374 29 467
729 1.09 346 393 47 866
960 1.18 352 427 75 1337
1200 1.33 367 479 112 2123
Review cluster power
XY
Linear regression on the cluster power
Intercept gives static power (~5mW)
Gradient gives “capacitance” = 0.051
OPP
(MHz)
Voltage
(v)
Cluster P-state
(mW)
CPU P-state
(mW)
CPU Dynamic
Power (mW)
F * V^2
208 1.04 360 429 69 225
432 1.04 374 498 124 467
729 1.09 393 617 224 866
960 1.18 427 794 367 1337
1200 1.33 479 1149 670 2123
Review CPU power
XY
Linear regression on the CPU power
A negative intercept (static power) makes
no sense physically and strongly
suggests the line is nonlinear. In the graph
we see the highest two OPPs’ power
increase sharply
Intercept (static power) is negative value -27
Gradient (capacitance) = 0.317
Potential solutions to generate a model
● Three possible options
○ Can't have negative static power because get_static_power() cannot
return negative number, but we could force linear regression through zero if we
accept that there will be some flaws in the model.
○ Could correct for temperature. It is likely the highest two OPPs start to curve
upwards as die temperature rises and static leakage increases.
○ Could modify kernel to remove IPA model and use EAS figures directly. These
physical measurements already include a contribution from die temperature...
● We didn’t collect temperature data for Hikey and DT bindings for
EAS are not yet agreed so, for now, linear regression through zero
is the simplest choice.
Linear regression through zero on the CPU
power
Using linear regression through zero
gives worst case error of ~10%
Intercept (static power) is 0
Gradient (capacitance) = 0.298
IPA power coefficients
struct cluster_power_coefficients cluster_data = {
.dyn_coeff = 311,
};
(0.298 + (0.054 / 4 CPUs)) * 1000 = 311
A simplistic power modeling without taking account of static leakage:
1. Given the non-linearity for CPU power data then modeling static power is pointless
2. Updated value for cluster “capacitance” which is now forced through zero as well
3. Error in model can be tolerated in some use cases; dynamic power remains main
contributor to power consumption
4. PID controller’s integral term will partly compensate for temperature drift
Decide sustainable power based on OPP
Temperature increases very
quickly when 8CPUs@1.2GHz,
meaning the power consumption is
above max sustainable level.
Temperature increases slowly
when 8CPUs@960MHz,
system is only very slightly
above sustainable power. When CPU runs at 729MHz the
temperature doesn’t increase.
Its power consumption is less
than the sustainable power.
OPP
(MHz)
Sustainable
power
729 2155
960 3326
1200 5285
Agenda
● Background
● Low power states
● Measurement on Hikey
● Generate power model
● Conclusions
Conclusions
● IPA was very effective on HiKey even with a poor model
○ Increase of ~40% performance compared to step-wise governor
● Allow EAS model to be used for IPA
○ Allows direct link between observed values to power mode
○ Using EAS values directly is convenient for simple systems although it makes it
impossible to explicitly model die temperature effects
● Recommend to record temperature alongside power data
○ If possible enable temperature sensor for SoC before gathering power info
● Other suggestions
○ Use CFS’s CPU utilization for accurate duty cycle and calculate dynamic power
Thanks!
Linaro Premium Services includes the delivery of tailored training courses
for Linaro Club and Core members. This presentation is an abridgement of
material prepared as part our training programme.

More Related Content

What's hot

LAS16-307: Benchmarking Schedutil in Android
LAS16-307: Benchmarking Schedutil in AndroidLAS16-307: Benchmarking Schedutil in Android
LAS16-307: Benchmarking Schedutil in AndroidLinaro
 
The Theory and Implementation of DVFS on Linux
The Theory and Implementation of DVFS on LinuxThe Theory and Implementation of DVFS on Linux
The Theory and Implementation of DVFS on LinuxPicker Weng
 
Scheduling in Android
Scheduling in AndroidScheduling in Android
Scheduling in AndroidOpersys inc.
 
Memory management in Linux kernel
Memory management in Linux kernelMemory management in Linux kernel
Memory management in Linux kernelVadim Nikitin
 
Linux Profiling at Netflix
Linux Profiling at NetflixLinux Profiling at Netflix
Linux Profiling at NetflixBrendan Gregg
 
BPF Internals (eBPF)
BPF Internals (eBPF)BPF Internals (eBPF)
BPF Internals (eBPF)Brendan Gregg
 
Linux Performance Profiling and Monitoring
Linux Performance Profiling and MonitoringLinux Performance Profiling and Monitoring
Linux Performance Profiling and MonitoringGeorg Schönberger
 
OpenHPC: A Comprehensive System Software Stack
OpenHPC: A Comprehensive System Software StackOpenHPC: A Comprehensive System Software Stack
OpenHPC: A Comprehensive System Software Stackinside-BigData.com
 
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
 
IntelON 2021 Processor Benchmarking
IntelON 2021 Processor BenchmarkingIntelON 2021 Processor Benchmarking
IntelON 2021 Processor BenchmarkingBrendan Gregg
 
Linux Performance Tools 2014
Linux Performance Tools 2014Linux Performance Tools 2014
Linux Performance Tools 2014Brendan Gregg
 
Linux 4.x Tracing Tools: Using BPF Superpowers
Linux 4.x Tracing Tools: Using BPF SuperpowersLinux 4.x Tracing Tools: Using BPF Superpowers
Linux 4.x Tracing Tools: Using BPF SuperpowersBrendan Gregg
 
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
 
Prerequisite knowledge for shared memory concurrency
Prerequisite knowledge for shared memory concurrencyPrerequisite knowledge for shared memory concurrency
Prerequisite knowledge for shared memory concurrencyViller Hsiao
 
YOW2018 Cloud Performance Root Cause Analysis at Netflix
YOW2018 Cloud Performance Root Cause Analysis at NetflixYOW2018 Cloud Performance Root Cause Analysis at Netflix
YOW2018 Cloud Performance Root Cause Analysis at NetflixBrendan Gregg
 
LISA2019 Linux Systems Performance
LISA2019 Linux Systems PerformanceLISA2019 Linux Systems Performance
LISA2019 Linux Systems PerformanceBrendan Gregg
 
BPF - in-kernel virtual machine
BPF - in-kernel virtual machineBPF - in-kernel virtual machine
BPF - in-kernel virtual machineAlexei Starovoitov
 
UM2019 Extended BPF: A New Type of Software
UM2019 Extended BPF: A New Type of SoftwareUM2019 Extended BPF: A New Type of Software
UM2019 Extended BPF: A New Type of SoftwareBrendan Gregg
 

What's hot (20)

LAS16-307: Benchmarking Schedutil in Android
LAS16-307: Benchmarking Schedutil in AndroidLAS16-307: Benchmarking Schedutil in Android
LAS16-307: Benchmarking Schedutil in Android
 
The Theory and Implementation of DVFS on Linux
The Theory and Implementation of DVFS on LinuxThe Theory and Implementation of DVFS on Linux
The Theory and Implementation of DVFS on Linux
 
Scheduling in Android
Scheduling in AndroidScheduling in Android
Scheduling in Android
 
Memory management in Linux kernel
Memory management in Linux kernelMemory management in Linux kernel
Memory management in Linux kernel
 
Linux Profiling at Netflix
Linux Profiling at NetflixLinux Profiling at Netflix
Linux Profiling at Netflix
 
BPF Internals (eBPF)
BPF Internals (eBPF)BPF Internals (eBPF)
BPF Internals (eBPF)
 
Linux Performance Profiling and Monitoring
Linux Performance Profiling and MonitoringLinux Performance Profiling and Monitoring
Linux Performance Profiling and Monitoring
 
Linux Network Stack
Linux Network StackLinux Network Stack
Linux Network Stack
 
OpenHPC: A Comprehensive System Software Stack
OpenHPC: A Comprehensive System Software StackOpenHPC: A Comprehensive System Software Stack
OpenHPC: A Comprehensive System Software Stack
 
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
 
IntelON 2021 Processor Benchmarking
IntelON 2021 Processor BenchmarkingIntelON 2021 Processor Benchmarking
IntelON 2021 Processor Benchmarking
 
Linux Performance Tools 2014
Linux Performance Tools 2014Linux Performance Tools 2014
Linux Performance Tools 2014
 
Linux 4.x Tracing Tools: Using BPF Superpowers
Linux 4.x Tracing Tools: Using BPF SuperpowersLinux 4.x Tracing Tools: Using BPF Superpowers
Linux 4.x Tracing Tools: Using BPF Superpowers
 
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)
 
Prerequisite knowledge for shared memory concurrency
Prerequisite knowledge for shared memory concurrencyPrerequisite knowledge for shared memory concurrency
Prerequisite knowledge for shared memory concurrency
 
YOW2018 Cloud Performance Root Cause Analysis at Netflix
YOW2018 Cloud Performance Root Cause Analysis at NetflixYOW2018 Cloud Performance Root Cause Analysis at Netflix
YOW2018 Cloud Performance Root Cause Analysis at Netflix
 
LISA2019 Linux Systems Performance
LISA2019 Linux Systems PerformanceLISA2019 Linux Systems Performance
LISA2019 Linux Systems Performance
 
PCI Drivers
PCI DriversPCI Drivers
PCI Drivers
 
BPF - in-kernel virtual machine
BPF - in-kernel virtual machineBPF - in-kernel virtual machine
BPF - in-kernel virtual machine
 
UM2019 Extended BPF: A New Type of Software
UM2019 Extended BPF: A New Type of SoftwareUM2019 Extended BPF: A New Type of Software
UM2019 Extended BPF: A New Type of Software
 

Similar to BKK16-317 How to generate power models for EAS and IPA

Computer Architecture and Organization
Computer Architecture and OrganizationComputer Architecture and Organization
Computer Architecture and Organizationssuserdfc773
 
How to achieve 95%+ Accurate power measurement during architecture exploration?
How to achieve 95%+ Accurate power measurement during architecture exploration? How to achieve 95%+ Accurate power measurement during architecture exploration?
How to achieve 95%+ Accurate power measurement during architecture exploration? Deepak Shankar
 
Q4.11: Sched_mc on dual / quad cores
Q4.11: Sched_mc on dual / quad coresQ4.11: Sched_mc on dual / quad cores
Q4.11: Sched_mc on dual / quad coresLinaro
 
Where Did My Cpu Go?
Where Did My Cpu Go?Where Did My Cpu Go?
Where Did My Cpu Go?Enkitec
 
The Hidden Face of Cost-Based Optimizer: PL/SQL Specific Statistics
The Hidden Face of Cost-Based Optimizer: PL/SQL Specific StatisticsThe Hidden Face of Cost-Based Optimizer: PL/SQL Specific Statistics
The Hidden Face of Cost-Based Optimizer: PL/SQL Specific StatisticsMichael Rosenblum
 
在Aix6.1上安装11g r2 rac grid infrastructure集群
在Aix6.1上安装11g r2 rac grid infrastructure集群在Aix6.1上安装11g r2 rac grid infrastructure集群
在Aix6.1上安装11g r2 rac grid infrastructure集群maclean liu
 
LCA13: CPUIDLE: One driver to rule them all?
LCA13: CPUIDLE: One driver to rule them all?LCA13: CPUIDLE: One driver to rule them all?
LCA13: CPUIDLE: One driver to rule them all?Linaro
 
ISCA2021 Tutorial-Methods for Characterization and Analysis of Voltage Margin...
ISCA2021 Tutorial-Methods for Characterization and Analysis of Voltage Margin...ISCA2021 Tutorial-Methods for Characterization and Analysis of Voltage Margin...
ISCA2021 Tutorial-Methods for Characterization and Analysis of Voltage Margin...Behzad Salami
 
Vpu technology &gpgpu computing
Vpu technology &gpgpu computingVpu technology &gpgpu computing
Vpu technology &gpgpu computingArka Ghosh
 
Vpu technology &gpgpu computing
Vpu technology &gpgpu computingVpu technology &gpgpu computing
Vpu technology &gpgpu computingArka Ghosh
 
Vpu technology &gpgpu computing
Vpu technology &gpgpu computingVpu technology &gpgpu computing
Vpu technology &gpgpu computingArka Ghosh
 
BKK16-311 EAS Upstream Stategy
BKK16-311 EAS Upstream StategyBKK16-311 EAS Upstream Stategy
BKK16-311 EAS Upstream StategyLinaro
 
IT Essentials (Version 7.0) - ITE Practice Final Exam Answers
IT Essentials (Version 7.0) - ITE Practice Final Exam AnswersIT Essentials (Version 7.0) - ITE Practice Final Exam Answers
IT Essentials (Version 7.0) - ITE Practice Final Exam AnswersITExamAnswers.net
 
Six-Core AMD Opteron EE Processor
Six-Core AMD Opteron EE ProcessorSix-Core AMD Opteron EE Processor
Six-Core AMD Opteron EE ProcessorAMD
 
Project ACRN schedule framework introduction
Project ACRN schedule framework introductionProject ACRN schedule framework introduction
Project ACRN schedule framework introductionProject ACRN
 
20171206 PGconf.ASIA LT gstore_fdw
20171206 PGconf.ASIA LT gstore_fdw20171206 PGconf.ASIA LT gstore_fdw
20171206 PGconf.ASIA LT gstore_fdwKohei KaiGai
 

Similar to BKK16-317 How to generate power models for EAS and IPA (20)

Computer Architecture and Organization
Computer Architecture and OrganizationComputer Architecture and Organization
Computer Architecture and Organization
 
How to achieve 95%+ Accurate power measurement during architecture exploration?
How to achieve 95%+ Accurate power measurement during architecture exploration? How to achieve 95%+ Accurate power measurement during architecture exploration?
How to achieve 95%+ Accurate power measurement during architecture exploration?
 
Q4.11: Sched_mc on dual / quad cores
Q4.11: Sched_mc on dual / quad coresQ4.11: Sched_mc on dual / quad cores
Q4.11: Sched_mc on dual / quad cores
 
Linux_swspnd_v0.3_pub1
Linux_swspnd_v0.3_pub1Linux_swspnd_v0.3_pub1
Linux_swspnd_v0.3_pub1
 
Where Did My Cpu Go?
Where Did My Cpu Go?Where Did My Cpu Go?
Where Did My Cpu Go?
 
The Hidden Face of Cost-Based Optimizer: PL/SQL Specific Statistics
The Hidden Face of Cost-Based Optimizer: PL/SQL Specific StatisticsThe Hidden Face of Cost-Based Optimizer: PL/SQL Specific Statistics
The Hidden Face of Cost-Based Optimizer: PL/SQL Specific Statistics
 
在Aix6.1上安装11g r2 rac grid infrastructure集群
在Aix6.1上安装11g r2 rac grid infrastructure集群在Aix6.1上安装11g r2 rac grid infrastructure集群
在Aix6.1上安装11g r2 rac grid infrastructure集群
 
LCA13: CPUIDLE: One driver to rule them all?
LCA13: CPUIDLE: One driver to rule them all?LCA13: CPUIDLE: One driver to rule them all?
LCA13: CPUIDLE: One driver to rule them all?
 
ISCA2021 Tutorial-Methods for Characterization and Analysis of Voltage Margin...
ISCA2021 Tutorial-Methods for Characterization and Analysis of Voltage Margin...ISCA2021 Tutorial-Methods for Characterization and Analysis of Voltage Margin...
ISCA2021 Tutorial-Methods for Characterization and Analysis of Voltage Margin...
 
PowerManagement
PowerManagementPowerManagement
PowerManagement
 
Balancing Power & Performance Webinar
Balancing Power & Performance WebinarBalancing Power & Performance Webinar
Balancing Power & Performance Webinar
 
Vpu technology &gpgpu computing
Vpu technology &gpgpu computingVpu technology &gpgpu computing
Vpu technology &gpgpu computing
 
Vpu technology &gpgpu computing
Vpu technology &gpgpu computingVpu technology &gpgpu computing
Vpu technology &gpgpu computing
 
Vpu technology &gpgpu computing
Vpu technology &gpgpu computingVpu technology &gpgpu computing
Vpu technology &gpgpu computing
 
BKK16-311 EAS Upstream Stategy
BKK16-311 EAS Upstream StategyBKK16-311 EAS Upstream Stategy
BKK16-311 EAS Upstream Stategy
 
IT Essentials (Version 7.0) - ITE Practice Final Exam Answers
IT Essentials (Version 7.0) - ITE Practice Final Exam AnswersIT Essentials (Version 7.0) - ITE Practice Final Exam Answers
IT Essentials (Version 7.0) - ITE Practice Final Exam Answers
 
Altera trcak g
Altera  trcak gAltera  trcak g
Altera trcak g
 
Six-Core AMD Opteron EE Processor
Six-Core AMD Opteron EE ProcessorSix-Core AMD Opteron EE Processor
Six-Core AMD Opteron EE Processor
 
Project ACRN schedule framework introduction
Project ACRN schedule framework introductionProject ACRN schedule framework introduction
Project ACRN schedule framework introduction
 
20171206 PGconf.ASIA LT gstore_fdw
20171206 PGconf.ASIA LT gstore_fdw20171206 PGconf.ASIA LT gstore_fdw
20171206 PGconf.ASIA LT gstore_fdw
 

More from 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
 

More from 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
 

Recently uploaded

Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 

Recently uploaded (20)

Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 

BKK16-317 How to generate power models for EAS and IPA

  • 1. Presented by Date Event How to generate power models for EAS and IPA … without talking to a hardware engineerLeo Yan Daniel Thompson BKK16-317 March 9, 2016 Linaro Connect BKK16
  • 2. Agenda ● Background ● Low power states ● Measurement on Hikey ● Generate power model ● Conclusions
  • 3. Background ● Generating platform-specific parameters for power models are a prerequisite for deploying EAS and IPA ○ Software engineers need these parameters to work on these features ○ Gaining assistance from hardware engineers is difficult and, for engineers who don’t work for SoC vendors, impossible ○ It is possible to generate an acceptable (though perhaps not optimal) model using simple tools ● Today we will focus on CPU and cluster level power modeling ○ Excludes SoC level power modeling (GPU, DDR, ...)
  • 4. The role of power modeling Power Modeling EAS/IPA Profiling Generate power modeling 1 Enable EAS/IPA 2 Enable profiling environment 3 Check if use bad power modeling 4 Refine algorithm 5 Refine power modeling 6
  • 5. Agenda ● Background ● Low power states ● Measurement on Hikey ● Generate power model ● Conclusions
  • 6. CPU power states CPU State PD_CPUx CPU P-State On WFI On, internal clock gating CPU Off Off
  • 7. CPU P-State ARM CPUARM CPU0 ACP ACE L2 RAM ARM CPU0 ARM CPU0 SCU Cluster 0 CLKIN PDCPU0 Powered Off Powered On Clock Gating
  • 8. CPU WFI State ARM CPUARM CPU0 ACP ACE L2 RAM ARM CPU0 ARM CPU0: WFI SCU Cluster 0 CLKIN PDCPU0 Powered Off Powered On Clock Gating
  • 9. CPU Off State ARM CPUARM CPU0 ACP ACE L2 RAM ARM CPU0 ARM CPU0 SCU Cluster 0 CLKIN PDCPU0 Powered Off Powered On Clock Gating X X
  • 10. Cluster power states Cluster State PD_CPUx PDCORTEXA53 PD_L2 Cluster P-State On or Off On On Cluster L2 Retention Off Off Retention Cluster Off Off Off Off Cannot keep cache coherent between two clusters
  • 11. Cluster P-State ARM CPUARM CPU0 ACP ACE L2 RAM ARM CPU0 ARM CPU0 SCU Cluster 0 CLKIN PDCPU<n> Powered Off Powered On Clock Gating PDCORTEXTA53 PDL2 X X
  • 12. Cluster L2 Retention State ARM CPUARM CPU0 ACP ACE L2 RAM ARM CPU0 ARM CPU0 SCU Cluster 0 CLKIN PDCPU<n> Powered Off Powered On Clock Gating PDCORTEXTA53 PDL2 X X X
  • 13. Cluster Off State ARM CPUARM CPU0 ACP ACE L2 RAM ARM CPU0 ARM CPU0 SCU Cluster 0 CLKIN PDCPU<n> Powered Off Powered On Clock Gating PDCORTEXTA53 PDL2 X X X X
  • 14. Link power states in Linux Kernel Power State Linux Kernel CPU P-state P-state WFI C-state CPU Off C-state Cluster P-state P-state Cluster L2 Retention C-state Cluster Off C-state CPUFreq does not distinguish “CPU P-state” and “Cluster P- state” status as usually binding CPU and Cluster frequency from hardware design. But EAS needs to model these two states separately.
  • 15. Agenda ● Background ● Low power states ● Measurement on Hikey ● Generate power model ● Conclusions
  • 16. Hikey PMIC Hierarchy SoC: Hi6220 DC IN TO 4.2VDC, 4A PMIC: Hi6553 12V VDD_4V2 LX0 LX1 BUCK1_1V05 Ideal measure point, but hardware design does not encourage measurement here Select CPU’s nearest measurement point BUCKs & LDOs ACPU R247R7
  • 17. Connect with ARM energy probe DC IN TO 4.2 VDC, 4A PMIC: Hi6553 VDD_4V2 0.033Ω ARM energy probe Hikey Board PC: Linux V+ V-Ground USB
  • 18. Methodology For Power Measurement ● Use single CPU to measure power ○ All other CPUs will be hot unplugged (CPU off state) ○ CPU0 is left connected ● Use ARM Trusted Firmware to perform system suspend ○ Force cluster and CPU0 to enter specific C-states and P-states ● Measure power data based on different operating points ○ Each OPP implies specific pair of voltage and frequency ○ Measure all C-states and P-states at given OPP ○ Use “dhrystone” to generate 100% CPU utilization for CPU P-state
  • 19. hikey_afflvl_off Linux kernel ARM CPUARM CPU0ARM CPU0ARM CPU0 Setup power state ARM CPUARM CPU0ARM CPU1 CPU1..7 echo 0 > /sys/devices/system/cpu/cpu[1..7]/online psci_cpu_off ARM TF ARM CPUARM CPU0 ARM CPU0 ARM CPU4 echo mem > /sys/power/state ARM CPU0 psci_system_suspend_enter Cluster 1 ARM CPUARM CPU0 ARM CPU0 Cluster 0 ARM CPU0 SoC ARM CPUARM CPU0 ARM CPU0 ARM CPU4 Cluster 1 ARM CPUARM CPU0 ARM CPU0 Cluster 0 ARM CPU0 SoC ARM CPUARM CPU0 ARM CPU0 ARM CPU4 Cluster 1 ARM CPUARM CPU0 ARM CPU0 Cluster 0 ARM CPU0 SoC Hack low level code to only power off CPU but leave cluster on 1 2 ARM CPUARM CPU0 ARM CPU0 ARM CPU4 Cluster 1 ARM CPUARM CPU0 ARM CPU0 Cluster 0 ARM CPU0 SoC hisi_ipc_cpu_suspend hisi_ipc_psci_system_off hisi_ipc_cluster_suspendhikey_affinst_suspend
  • 20. Cluster and CPU’s Power Data OPP (MHz) Voltage (v) Cluster Power Off State (mW) Cluster P-State (mW) CPU WFI State (mW) CPU P-State (mW) 208 1.04 344 360 379 429 432 1.04 345 374 387 498 729 1.09 346 393 408 617 960 1.18 352 427 443 794 1200 1.33 367 479 508 1149 Difference is caused by other components in SoC that share the same regulator “Cluster P-state” means all CPUs in cluster have been powered off but cluster is powered on
  • 21. Agenda ● Background ● Low power states ● Measurement on Hikey ● Generate power model ● Conclusions
  • 22. EAS energy model CPU0 CPU1 Cluster Time C-state P-state ● Formula: energy = energy_cluster + ∑ energy_CPU in cluster ● C-states: Idle energy, include cpu level and cluster level ● P-states: Busy energy, include cpu level and cluster level
  • 23. Normalized CPU capacity ● Normalized CPU capacity is a ratio value ○ Ratio between actual performance of CPU and the maximum performance of CPU in the system ○ Normalized into range [0..1024] ● Normally use “dhrystone” to measure CPU capacity ○ Safe to derive from CPU frequency if all CPUs are homogeneous static struct capacity_state cap_states_core_a53[] = { /* Power per cpu */ { .cap = 178, .power = 69, }, /* 208MHz */ { .cap = 369, .power = 124, }, /* 432MHz */ { .cap = 622, .power = 224, }, /* 729MHz */ { .cap = 819, .power = 367, }, /* 960MHz */ { .cap = 1024, .power = 670, }, /* 1.2GHz */ };
  • 24. Basic method to calculate for power data ARM CPUARM CPU0 ACP ACE L2 RAM ARM CPU0ARM CPU0 OPP: 729 MHz SCU Cluster 0 ARM CPUARM CPU0 ACP ACE L2 RAM ARM CPU0ARM CPU0 SCU Cluster 0 ARM CPU0 OPP: 729 MHz Remove cluster level power consumption CPU level power consumption
  • 25. Power of CPU C-State OPP (MHz) Cluster Power On State (mW) CPU WFI (mW) Power of CPU WFI (mW) 208 360 379 19 432 374 387 13 729 393 408 15 960 427 443 16 1200 479 508 31 static struct idle_state idle_states_core_a53[] = { { .power = 15 }, /* active idle state */ { .power = 15 }, /* WFI state */ { .power = 0 }, /* CPU Off state */ { .power = 0 }, /* Cluster Off state */ }; Select 15mW as middle value for WFI state’s power data
  • 26. Power of CPU P-State OPP (MHz) Cluster P-State (mW) CPU P-State (mW) Power of CPU P-state (mW) 208 360 429 69 432 374 498 124 729 393 617 224 960 427 794 367 1200 479 1149 670 static struct capacity_state cap_states_core_a53[] = { /* Power per cpu */ { .cap = 178, .power = 69, }, /* 208MHz */ { .cap = 369, .power = 124, }, /* 432MHz */ { .cap = 622, .power = 224, }, /* 729MHz */ { .cap = 819, .power = 367, }, /* 960MHz */ { .cap = 1024, .power = 670, }, /* 1.2GHz */ }; CPU P-state is calculated with static leakage and dynamic power, so should use Power (CPU P-state) - Power (Cluster P-state)
  • 27. Cluster’s active idle state ARM CPUARM CPU0 ACP ACE L2 RAM ARM CPU0ARM CPU: Off SCU Cluster 0 Powered Off Powered On Clock Gating ARM CPUARM CPU0 ACP ACE L2 RAM ARM CPU0ARM CPU: WFI SCU Cluster 0 ARM CPUARM CPU0 ACP ACE L2 RAM ARM CPU0ARM CPU: WFI or Off SCU Cluster 0 At CPU level, all CPUs in the cluster are in one of the idle states (WFI or Off state) and the cluster is not processing any software. At cluster level, the cluster remains active. Is Active idle state a C-state or a P-state? The main difference is if we need consider it with different OPP...
  • 28. Power of Cluster C-State OPP (MHz) Cluster Power Off State (mW) Cluster Power On State (mW) Power of cluster level active idle state (mW) 208 344 360 16 432 345 374 29 729 346 393 47 960 352 427 75 1200 367 479 112 static struct idle_state idle_states_cluster_a53[] = { { .power = 47 }, /* active idle state */ { .power = 47 }, /* WFI state */ { .power = 47 }, /* CPU Off state */ { .power = 0 }, /* Cluster Off state */ }; Only in cluster power off state will we totally power off whole cluster, in other idle states the cluster actually is powered on even when all CPUs are powered off.
  • 29. Power of Cluster P-State OPP (MHz) Cluster Power Off State (mW) Cluster Power On State (mW) Power of cluster level active idle state (mW) 208 344 360 16 432 345 374 29 729 346 393 47 960 352 427 75 1200 367 479 112 static struct capacity_state cap_states_cluster_a53[] = { /* Power per cluster */ { .cap = 178, .power = 16, }, { .cap = 369, .power = 29, }, { .cap = 622, .power = 47, }, { .cap = 819, .power = 75, }, { .cap = 1024, .power = 112, }, };
  • 30. static struct idle_state idle_states_cluster_a53[] = { { .power = 47 }, /* active idle state */ { .power = 47 }, /* WFI state */ { .power = 47 }, /* CPU Off state */ { .power = 0 }, /* Cluster Off state */ }; static struct capacity_state cap_states_cluster_a53[] = { /* Power per cluster */ { .cap = 178, .power = 16, }, { .cap = 369, .power = 29, }, { .cap = 622, .power = 47, }, { .cap = 819, .power = 75, }, { .cap = 1024, .power = 112, }, }; static struct idle_state idle_states_core_a53[] = { { .power = 15 }, /* active idle state */ { .power = 15 }, /* WFI state */ { .power = 0 }, /* CPU Off state */ { .power = 0 }, /* Cluster Off state */ }; static struct capacity_state cap_states_core_a53[] = { /* Power per cpu */ { .cap = 178, .power = 69, }, /* 208MHz */ { .cap = 369, .power = 124, }, /* 432MHz */ { .cap = 622, .power = 224, }, /* 729MHz */ { .cap = 819, .power = 367, }, /* 960MHz */ { .cap = 1024, .power = 670, }, /* 1.2GHz */ }; Cluster level CPU level P-State C-State Active Idle State EAS power modeling parameters
  • 31. Overview for IPA power model IPA Thermal sensor driver CPU Cooling Device CPUFreq Framework Get dynamic power 3 Get static power 4 Updated allocated budget 5 Update CPUFreq policy 6 Report temperature, reach trip points 1 Gather actor’s request budget 2 Power Model for CPU actor
  • 32. Power model based on dynamic power and static leakage Dynamic power CPU static leakage Cluster static leakage SoC temperature impacts static leakage
  • 33. Power model as a linear equation +power static_power= "capacitance" * (freq * volt^2) Dynamic power Y = m * X + b Can easily calculate best-fit values for m and b using the LINEST function found in most spreadsheet programs.
  • 34. OPP (MHz) Voltage (v) Cluster Power Off State (mW) Cluster P-state (mW) Cluster Power (mW) F * V^2 208 1.04 344 360 16 225 432 1.04 345 374 29 467 729 1.09 346 393 47 866 960 1.18 352 427 75 1337 1200 1.33 367 479 112 2123 Review cluster power XY
  • 35. Linear regression on the cluster power Intercept gives static power (~5mW) Gradient gives “capacitance” = 0.051
  • 36. OPP (MHz) Voltage (v) Cluster P-state (mW) CPU P-state (mW) CPU Dynamic Power (mW) F * V^2 208 1.04 360 429 69 225 432 1.04 374 498 124 467 729 1.09 393 617 224 866 960 1.18 427 794 367 1337 1200 1.33 479 1149 670 2123 Review CPU power XY
  • 37. Linear regression on the CPU power A negative intercept (static power) makes no sense physically and strongly suggests the line is nonlinear. In the graph we see the highest two OPPs’ power increase sharply Intercept (static power) is negative value -27 Gradient (capacitance) = 0.317
  • 38. Potential solutions to generate a model ● Three possible options ○ Can't have negative static power because get_static_power() cannot return negative number, but we could force linear regression through zero if we accept that there will be some flaws in the model. ○ Could correct for temperature. It is likely the highest two OPPs start to curve upwards as die temperature rises and static leakage increases. ○ Could modify kernel to remove IPA model and use EAS figures directly. These physical measurements already include a contribution from die temperature... ● We didn’t collect temperature data for Hikey and DT bindings for EAS are not yet agreed so, for now, linear regression through zero is the simplest choice.
  • 39. Linear regression through zero on the CPU power Using linear regression through zero gives worst case error of ~10% Intercept (static power) is 0 Gradient (capacitance) = 0.298
  • 40. IPA power coefficients struct cluster_power_coefficients cluster_data = { .dyn_coeff = 311, }; (0.298 + (0.054 / 4 CPUs)) * 1000 = 311 A simplistic power modeling without taking account of static leakage: 1. Given the non-linearity for CPU power data then modeling static power is pointless 2. Updated value for cluster “capacitance” which is now forced through zero as well 3. Error in model can be tolerated in some use cases; dynamic power remains main contributor to power consumption 4. PID controller’s integral term will partly compensate for temperature drift
  • 41. Decide sustainable power based on OPP Temperature increases very quickly when 8CPUs@1.2GHz, meaning the power consumption is above max sustainable level. Temperature increases slowly when 8CPUs@960MHz, system is only very slightly above sustainable power. When CPU runs at 729MHz the temperature doesn’t increase. Its power consumption is less than the sustainable power. OPP (MHz) Sustainable power 729 2155 960 3326 1200 5285
  • 42. Agenda ● Background ● Low power states ● Measurement on Hikey ● Generate power model ● Conclusions
  • 43. Conclusions ● IPA was very effective on HiKey even with a poor model ○ Increase of ~40% performance compared to step-wise governor ● Allow EAS model to be used for IPA ○ Allows direct link between observed values to power mode ○ Using EAS values directly is convenient for simple systems although it makes it impossible to explicitly model die temperature effects ● Recommend to record temperature alongside power data ○ If possible enable temperature sensor for SoC before gathering power info ● Other suggestions ○ Use CFS’s CPU utilization for accurate duty cycle and calculate dynamic power
  • 44. Thanks! Linaro Premium Services includes the delivery of tailored training courses for Linaro Club and Core members. This presentation is an abridgement of material prepared as part our training programme.