项目简介
本项目是基于Fused_ps构建的域功率建模方案,Fused_ps是用于对能源驱动型计算机进行建模的全系统模拟器。项目通过开发电源域记录器,记录系统中每个电源域的功率数据,帮助深入了解不同组件的功耗及其对整个系统能源效率的影响,为硬件 - 软件协同设计和设计空间探索提供有价值的见解。
项目的主要特性和功能
- 全系统模拟:基于Fused_ps准确模拟能源可用性、功耗和执行之间的相互作用。
- 电源域监控:对系统中不同电源域的组件进行功耗监控和记录。
- 通用建模方法:通过创建PowerModelChannel和PowerModelBridge并进行必要的绑定,实现对各组件的功耗记录。
- 数据记录:使用CSV格式记录功耗数据,便于后续处理。
- 结果可视化:提供Python脚本,可对功耗数据进行处理和可视化,生成多种图表。
安装使用步骤
安装
- 复制仓库到本地。
- 进入项目目录:
shell cd DomainPowerModeling
- 更新项目的子模块:
shell git submodule update --init --recursive
- 使用cmake分两步创建Makefile:
- 第一步:安装依赖:
shell mkdir build cd build cmake ./ -DINSTALL_DEPENDENCIES=ON -DINSTALL_SYSTEMC=ON
- 第二步:清理cmake生成的文件并重新创建Makefile:
shell rm -rf * cmake ../ -DINSTALL_SYSTEMC=ON -DINSTALL_DEPENDENCIES=ON
- 构建项目:
shell make
- 运行项目:
shell ./DomainPowerModeling
使用
- 在项目中包含必要的头文件: ```cpp
include
2. 创建PowerDomainLogger类的实例:
cpp
power_domain_logger 3. 为实例分配内存:
cpp
power_domain_logger4. 启动功率记录过程:
cpp
处理和可视化结果
- 安装所需的Python库:
shell pip install pandas pip install matplotlib
- 运行
total_power.py
脚本,获取指定文件夹内CSV文件的事件功率、静态功率和总功率随时间变化的图表(需在代码中修改文件夹位置):shell python3 python_scripts/total_power.py number_of_rows
- 运行
domain_bar_chart.py
和domain_pie_chart.py
脚本,根据上一步的CSV文件生成饼图和堆叠条形图,展示总功耗和随时间的功耗贡献:shell python3 python_scripts/domain_bar_chart.py python3 python_scripts/domain_pie_chart.py
- 运行
plot_all.py
脚本,对每个组件的子目录生成状态日志、事件日志、事件饼图和事件功率图表,需传入文件夹路径和CSV文件的行数:shell python3 plot_all.py path_to_folder number_of_rows
- 运行
plot_state.py
脚本,获取状态饼图:shell python3 plot_state.py
- 运行
module_current.py
和total_current.py
脚本,对每个电源域的domain_currents
报告中的文件夹生成每个电源域的总电流和每个模块的电流消耗图表:shell python3 module_current.py python3 total_current.py
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】