2021-11-11

PMCS

4.1下载软件(假设板连接到互联网)
(使用板本身)导航到目录。/home/odroid

将实验平台软件下载到该目录中:

 wget http://www.powmon.ecs.soton.ac.uk/downloads/experiment-platform-software/experimental-platform-software-2016-02-09.tar.gz

4.2下载软件(船上没有互联网连接)
将实验平台软件下载到其他计算机上,然后使用内存棒全面复制到板(目录中)。要将内存棒安装在板上,请使用该存储器来识别音量的名称并将其安装到目录中。例如:/home/odroidfdiskmount

sudo fdisk -l
sudo mount /dev/### /media/usb

是音量标识符和 /媒体/usb 是将其安装到的目录。

将文件从内存粘在目录上:/home/odroid

cp /media/usb/experimental-platform-software-2016-02-09.tar.gz /home/odroid/

4.3解 压缩

tar zxvf experimental-platform-software-2016-02-09.tar.gz

5允许访问 PMC
要使软件能够读取 PMC,需要插入一个可加载内核模块,以便用户空间访问它们。

导航到目录并运行以下命令:/home/odroid/experimental-platform-software/datalogging_code

sudo insmod perf.ko
这将我们的可加载内核模块 (LKM) 插入内核,使我们的软件能够从用户空间读取和写入与 PMC 相关的注册。

注意:这需要每次董事会启动时完成。

6运行实验软件工具
实验软件有两个主要功能:

PMC 探索- 以单个频率和核心掩码运行工作负载(和记录数据),但在许多 PMC 事件之间切换以了解和比较所有这些事件。它由执行流程每个阶段的三个关键脚本组成:
run_pmc_explore_experiment.py: 在 ODROID-XU3 板上运行实验并记录数据
run_pmc_explore_processing.py: 对实验数据进行后期处理(可在 ODROID-XU3 上运行,或在实验数据传输后在其他机器上运行)。它生成图表来检查实验的一致性。
run_pmc_explore_analysis.py: (专门用于构建电源模型。记录实验数据只需要前两个州。分析 PMC 事件、输出图表,并选择用于模型的 PMC 事件。这是功率建模软件的一部分,而不是实验平台软件。
模型构建- 运行工作负载(和记录数据),以多个频率和核心掩蔽器单个选择 PMC。它由执行流程每个阶段的三个关键脚本组成:
run_model_building_experiment.py: 在 ODROID-XU3 板上运行实验并记录数据
run_model_building_processing.py: 对实验数据进行后期处理(可在 ODROID-XU3 上运行,或在实验数据传输后在其他机器上运行)。
run_pmc_explore_analysis.py: (专门用于构建电源模型。记录实验数据只需要前两个州。使用选定的 PMC 构建功率模型。这是电源建模软件的一部分,而不是实验平台软件。
阶段 1 和 2 的每个功能是实验平台软件的一部分:它们可用于许多目的进行实验(在 ODROID-XU3 和 ODROID-XU4 上)。两个实验功能的第三阶段实施自动建模方法,是功率建模软件的一部分:它可以将第二阶段的输出作为输入,或者可以轻松地适应使用不同的实验设置在其他平台上工作。

6.1PMC 探索实验
6.1.1运行实验
一旦奥德罗伊德-XU3板启动,切换到目录。/home/odroid/experimental-platform-software

请记住,确保 LKM 自上次重新启动以来已插入,如第5节中之前所述。perf.ko

实验设置需要首先设置。由于要设置的参数量很大,因此这在脚本本身中完成。run_pmc_explore_experiment.py

打开文本编辑器中的脚本(例如 nano):run_model_building_experiment.py

nano run_pmc_explore_experiment.py
可能更改的主要参数位于"用户参数"注释下,如下所示:

---------------------

USER PARAMETERS START

---------------------

which_cluster = Cluster.A15
#which_cluster = Cluster.A7
#which_cluster = Cluster.BOTH

datalog_pmcs_A7 = [
[‘0x01’, ‘0x02’, ‘0x03’, ‘0x04’],
[‘0x05’, ‘0x06’, ‘0x07’, ‘0x08’],
[‘0x09’, ‘0x0A’, ‘0x0B’, ‘0x0C’],
[‘0x0D’, ‘0x0E’, ‘0x0F’, ‘0x10’],
[‘0x11’, ‘0x12’, ‘0x13’, ‘0x14’],
[‘0x15’, ‘0x16’, ‘0x17’, ‘0x18’],
[‘0x19’, ‘0x1D’, ‘0x60’, ‘0x61’],
[‘0x86’, ‘0x87’, ‘0xC0’, ‘0xC1’],
[‘0xC2’, ‘0xC3’, ‘0xC4’, ‘0xC5’],
[‘0xC9’, ‘0xCA’, ‘0x00’, ‘0x00’]]

datalog_pmcs_A15 = [
[‘0x01’, ‘0x02’, ‘0x03’, ‘0x04’, ‘0x05’, ‘0x08’],
[‘0x09’, ‘0x0A’, ‘0x0B’, ‘0x10’, ‘0x11’, ‘0x12’],
[‘0x13’, ‘0x14’, ‘0x15’, ‘0x16’, ‘0x17’, ‘0x18’],
[‘0x19’, ‘0x1A’, ‘0x1B’, ‘0x1C’, ‘0x1D’, ‘0x40’],
[‘0x41’, ‘0x42’, ‘0x43’, ‘0x46’, ‘0x47’, ‘0x48’],
[‘0x4C’, ‘0x4D’, ‘0x50’, ‘0x51’, ‘0x52’, ‘0x53’],
[‘0x56’, ‘0x57’, ‘0x58’, ‘0x60’, ‘0x61’, ‘0x62’],
[‘0x63’, ‘0x64’, ‘0x65’, ‘0x66’, ‘0x67’, ‘0x68’],
[‘0x69’, ‘0x6A’, ‘0x6C’, ‘0x6D’, ‘0x6E’, ‘0x70’],
[‘0x71’, ‘0x72’, ‘0x73’, ‘0x74’, ‘0x75’, ‘0x76’],
[‘0x78’, ‘0x79’, ‘0x7A’, ‘0x7C’, ‘0x7D’, ‘0x7E’]]

-------------------

USER PARAMETERS END

-------------------

大多数默认值已设置为适当的值。下面提供了参数的快速描述:

which_cluster
可以采取三个值: , 或 .如果被选中,实验将确保重复执行工作负载,以捕获 Cortex-A15 上的所有 PMC 事件(而不确保捕获所有 Cortex-A7 事件)。工作负载只能在任何 Corttex-A15 CPU 上运行。Cortex-A7 捕获为皮层 A7 指定的所有事件,而不考虑皮层-A15。工作负载只能在 Cortex-A7 内核上运行。 确保运行该实验以捕获为 Cortex-A7 和 Cortex-A15 指定的所有 PMC,并且调度器可以自由使用任何内核来运行工作负载。Cluster.A15Cluster.A7Cluster.BOTHCluster.A15Cluster.BOTH
datalog_pmcs_A7
指定为皮层-A7 集群收集的 PMC。Cortex-A7 只能同时记录四个 PMC 事件(除了单独记录的周期计数 [0x11])。如果设置为或,实验将重复文件中指定的工作负载的运行,并每次切换 PMC。内部列表应始终为四个元素长。外部列表应始终包含至少一个内部列表。which_clusterCluster.A7Cluster.BOTHworkloads-list.csv
datalog_pmcs_A15
为皮层-A15 星团收集的 PMC。Cortex-A15 CPU 可以同时记录六个 PMC 事件(除了周期计数)。因此,内部列表必须始终是六个元素的长度。PMC 事件使用其六价值的字符串字来指定。
基准/工作负载需要安装在板上,文件需要编辑,以便实验软件知道要运行哪些,以及如何运行它们,请参阅工作负载workloads-list.csv

.
每个工作负载将运行 50 秒,并且重复用于需要运行的 PMC 事件集数。所有工作负载的运行速度均为 CPU 时钟速度为 1000 MHz(用于皮层-A15 和皮层-A7)。实验时间可按:

50
×
n
o
.
W
o
r
k
l
o
一个
d
s
×
P
M
C
r
e
p
e
一个
t
s
使用默认设置(如上图所示),估计的实验时间将是
5500
秒数(略高于 1 小时 30 分钟),如果文件中指定了 10 个工作负载。workload-list.csv

一旦参数被设置,它只是一个使用以下命令运行实验的情况:

sudo python run_pmc_explore_experiment.py
(您将被提示密码,即)。odroid-813

要强制实验停止运行,请键入并写信给停止数据记录过程:Crtl+C1datalog-stopfile.txt

echo “1” > datalog-stopfile.txt
注意:一旦实验完成运行,终端偶尔会停止运行此程序后的行为正常(例如未显示键入字符,提示未出现在新线路上)。要解决这个问题,键入:

stty sane
实验完成后,它将为该实验创建一个文件夹。记下此文件夹的名称。我们将以这些说明的其余部分为例。数量最多的文件夹将是运行的最后一个实验。Power_Experiment_PMC_Explore_###

6.1.2处理数据
实验结束后,需要处理记录的数据。数据处理将数据记录和工作负载执行的数据相结合,为每个工作负载生成故障。

sudo python run_pmc_explore_processing.py -d Power_Experiment_PMC_Explore_###
实验文件夹的名称在哪里Power_Experiment_PMC_Explore_###

CSV 文件档和图段显示实验摘要(给出不同运行之间的一致性的想法)可以在实验文件夹中找到。

6.1.3分析(用于功率建模)
参见第7节和第8.1节

6.2模型建筑实验
模型构建实验软件采用 PMC 中选定的 PMC 系列进行探索分析并运行实验以收集数据以制定模型本身。它也可用于为其他目的收集数据:它记录固定的 PMC 集,同时在任何给定的频率和核心掩码列表中运行工作负载。

6.2.1运行实验
一旦 ODROID-XU3 板启动,切换到目录。/home/odroid/experimental-platform-software

一旦奥德罗伊德-XU3板启动,切换到目录。/home/odroid/experimental-platform-software

请记住,确保 LKM 自上次重新启动以来已插入,如第5节中之前所述。perf.ko

实验设置需要首先设置。由于要设置的参数量很大,因此这在脚本本身中完成。run_model_building_experiment.py

打开文本编辑器中的脚本(例如 nano):run_model_building_experiment.py

nano run_model_building_experiment.py
可能更改的主要参数位于"用户参数"注释下,如下所示:

---------------------

USER PARAMETERS START

---------------------

fast_experiment = False #if true, only runs first workload except for 800 MHz (A7) and 1000 MHz (A15)

#core_masks = [‘4,5,6,7’, ‘4,5,6,7:4,5,6,7’, ‘4,5,6,7:4,5,6,7:4,5,6,7’, ‘4,5,6,7:4,5,6,7:4,5,6,7:4,5,6,7’] #List of core masks
core_masks = [‘4,5,6,7’]

maximum_workload_duration = 30 #Duration to run each workload in seconds
frequencies_MHz_A7 = [1000] #shorter list automatically extended to the same length as the other (A7 or A15)
frequencies_MHz_A15 = [200, 400, 600, 800, 1000, 1200, 1400, 1600, 1800]
workload_list_filename = ‘workload-list.csv’
datalog_pmcs_A7 = [‘0x01’, ‘0x02’, ‘0x03’, ‘0x04’] # needs to have 4 items
datalog_pmcs_A15 = [‘0x01’, ‘0x02’, ‘0x03’, ‘0x04’, ‘0x05’, ‘0x06’] # needs to have 6 items

-------------------

USER PARAMETERS END

-------------------

大多数默认值已设置为适当的值。下面提供了参数的快速描述:

fast_experiment
默认是错误的。设置为真实时,只有工作负载列表文件中的第一个工作负载(例如)在所有指定频率运行。工作负载的完整列表仅在 Cortex-A15 上的 Cortex-A7 上运行(这两个频率应分别在列表中和列表中)。只需在一个频率运行工作负载,在所有指定频率运行一个工作负载(即在这些操作点获得静态功率的想法),实验时间大大缩短。我们的功率模型构建软件能够构建与这些数据准确的功率模型,因为它的模型配方分解静态和动态功率。idle800 MHz1000 MHzfrequencies_MHz_A7frequencies_MHz_A15
core_maks
请参阅频率和核心掩码。上述默认值意味着调度器可以自由分配任何 Cortex-A15 核心(核心 4-7)上的工作负载。
maximum_workload_duration
将确切的时间设置为数秒以运行工作负载(而不仅仅是最大值)。工作负载被放入一个无限的循环中,当时间过去时,该循环被中止。
frequencies_MHz_A7
查看频率和核心掩码
frequencies_MHz_A15
请参阅频率和核心掩码。
workload_list_filename
指定要运行的工作负载列表的文件名。工作负载包含有关如何指定应运行哪些工作负载的说明。
datalog_pmcs_A7
指定为皮层-A7 集群收集的 PMC。Cortex-A7 只能同时记录四个 PMC 事件(除了单独记录的周期计数 [0x11])。因此,它应该有整整四个要素。PMC 事件使用其六价值的字符串字来指定。
datalog_pmcs_A15
指定为皮层-A15 星团收集的 PMC。Cortex-A15 CPU 可以同时记录六个 PMC 事件(除了周期计数)。因此,列表必须始终是六个元素的长度。PMC 事件使用其六价值的字符串字来指定。
基准/工作负载需要安装在板上,文件需要编辑,以便实验软件知道要运行哪些,以及如何运行它们,请参阅工作负载workloads-list.csv

.
一旦参数被设置,它只是一个使用以下命令运行实验的情况:

sudo python run_model_building_experiment.py
(您将被提示密码,即)。odroid-813

这个实验大约需要20分钟。为了迫使实验停止运行,键入并写到:Crtl+C1datalog-stopfile.txt

echo “1” > datalog-stopfile.txt
注意:一旦实验完成运行,终端在运行此程序后偶尔会停止正常运行(例如未显示键入字符、提示未显示在新线路上)。要解决这个问题,键入:

stty sane
实验完成后,它将为该实验创建一个文件夹。记下此文件夹的名称。我们将以这些说明的其余部分为例。数量最多的文件夹将是运行的最后一个实验。Power_Experiment_Model_Building_###

实验结束后,需要处理记录的数据。数据处理将数据记录和工作负载执行的数据相结合,为每个工作负载生成故障。

sudo python run_model_building_processing.py -d Power_Experiment_Model_Building_###
实验文件夹的名称在哪里Power_Experiment_Model_Building_###

7安装模型构建(分析)软件
前几个部分描述了如何获得可用于许多目的的实验数据。本节描述了如何安装使用此数据构建运行时间电源模型的软件。此软件可以安装在主板本身或笔记本电脑/台式计算机上(前提是实验文件已从板上复制)。该软件实现了我们的通用模型构建方法,并可以轻松地适应使用从不同平台收集的数据。这些说明假定该软件将安装在 ODROID-XU3 板上并直接运行。

如果在 ODROID-XU3 板上工作,则导航到目录。/home/odroid/

下载软件工具 (Power Model Analysis

功率模型分析-2016-02-09.tar.gz):

wget http://www.powmon.ecs.soton.ac.uk/downloads/analysis-software/power-model-analysis-2016-02-09.tar.gz
提取:

tar zxvf power-model-analysis-2016-02-09.tar.gz
8运行模型构建(分析)软件工具
8.1PMC 勘探分析(选择 PMC)
该软件使用来自实验平台PMC探索软件的输出(在第6.1节中描述),以分析每个PMC事件,并选择在电源模型中使用的最佳事件。

切换到文件夹。power-model-analysis

运行 PMC 分析的命令是:

python run_pmc_explore_analysis.py -d …/Power_Experiment_PMC_Explore_### -c A15 -n 10 -i pmc_breakdown_gen.csv
-d是处理实验数据的目录

-c指定集群 (A15 或 A7)

-n是要选择的 PMC 数量

-i是主输入文件的名称(如果使用我们的实验软件)。pmc_breakdown_gen.csv

这把一个文件夹命名。它包含文件和图表,显示相关矩阵、分层聚类分析结果(带登点图)和按顺序选择的 PMC 列表(。Analyse_and_Choose_PMCsComplete_Power_A15_df_event_selection.csv)

8.2模型建筑
构建和验证功率模型的软件与实验软件是分开的。它使用来自"模型构建"实验脚本(而不是"PMC 探索"脚本)中的实验数据。

更改为软件所在的目录。/home/odroid/power-model-analysis/

脚本采用已处理的数据(确切地说是文件),并使用它来构建和验证电源模型。run_model_building_analyse.pyexperiment_breakdown.csv

运行以下命令来构建和验证模型:

sudo python run_model_building_analyse.py -d …/experimental-platform-software/Power_Experiment_Model_Building_####/ -c A15 -n 7 -k 10
-d 参数指定了实验目录。-c 参数指定了构建模型的组集(它可以是 a 或,具体取决于实验运行为哪个聚类)。-n 参数指定了用于所选计数器(包括周期计数器)的事件计数器数量。(例如,如果使用 Cortex-A15 和 5 如果皮层-A7,假设使用所有可用的计数器)。作为一个实验,您可以降低此值,并查看模型的准确性如何使用更少的 PMC 事件。-k 参数应为 10(它告诉程序执行与 k=10 的交叉验证)。A7A15

脚本从模型和输入数据中取出生成的参数并运行模型,计算每个模型系数对总体功率预测的贡献。它需要两个文件作为参数:run_model.py

Model_Building_Analyse_Experiment_Build/build_and_val_chosen_params.csv指定系数的文件 (-p)
Model_Building_Analyse_Experiment_Build/build_and_val_data.csv文件,提供处理的实验数据 (-i)
sudo python run_model.py -p …/experimental-platform-software/Power_Experiment_Model_Building_###/Model_Building_Analyse_Experiment_Build/build_and_val_chosen_params.csv -i …/experimental-platform-software/Power_Experiment_Model_Building_###/Model_Building_Analyse_Experiment_Build/build_and_val_data.csv
跑:

sudo python model_building_results.py -d …/experimental-platform-software/Power_Experiment_Model_Building_###/
此脚本显示重要统计数据并生成可拖动并放入网页以查看结果的文件夹。

您可以将文件夹从 ODROID 板复制到笔记本电脑,并使用基于 Web 的结果查看器更详细地查看结果。Model_Results_Summary

运行以下命令并查看驱动器的名称:

sudo fdisk -l
将内存棒插入 ODROID 板。

再次上一个命令。记忆棒是显示的新项目。

使用命令安装内存棒:

sudo mount /dev/sdbX /media/usb
记忆棒的内容现在可以在。/media/usb

复制Model_Results_Summary directory to the memory stick.

sudo cp -avr /home/odroid/experimental-platform-software/Power_Experiment_Model_Building_002/Model_Results_Summary /media/usb/
卸下记忆棒:

sudo unmount /media/usb/
取出内存棒并将其插入笔记本电脑。

您可以使用我们的基于 Web 的查看器查看模型的结果,将此文件夹中的文件(而不是文件夹本身)拖入此网页。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值