DAMOV
收藏DAMOV 数据集概述
数据集简介
DAMOV 是一个用于评估现代应用程序中数据移动瓶颈的基准套件和方法论框架。该套件包含144个函数,代表了不同的数据移动瓶颈来源,并可作为未来数据移动缓解研究的基准集。这些应用程序来自16个广泛使用的基准套件或框架,包括BWA、Chai、Darknet、GASE、Hardware Effects、Hashjoin、HPCC、HPCG、Ligra、PARSEC、Parboil、PolyBench、Phoenix、Rodinia、SPLASH-2和STREAM。
数据集结构
数据集的结构如下:
. +-- README.md +-- get_workloads.sh +-- simulator/ | +-- command_files/ | +-- ramulator/ | +-- ramulator-configs/ | +-- scripts/ | +-- src/ | +-- templates/ +-- workloads/ | +-- Darknet/ | +-- GASE-master/ | +-- PolyBench-ACC/ | +-- STREAM/ | +-- bwa/ | +-- chai-cpu/ | +-- hardware-effects/ | +-- hpcc/ | +-- hpcg/ | +-- ligra/ | +-- multicore-hashjoins-0.1/ | +-- parboil/ | +-- parsec-3.0/ | +-- phoenix/ | +-- rodinia_3.1/
数据集使用
安装依赖
DAMOV 框架需要 ZSim 和 Ramulator 的依赖:
- Ramulator 需要 C++11 编译器(如 clang++、g++-5)。
- ZSim 需要 gcc >=4.6、pin、scons、libconfig、libhdf5、libelfg0。提供了
setup.sh和compile.sh脚本来简化 ZSim 的安装。
安装模拟器
cd simulator sudo sh ./scripts/setup.sh sh ./scripts/compile.sh cd ../
下载工作负载
sh get_workloads.sh
该脚本将下载所有工作负载并存储在 ./workloads 文件夹中。如果脚本无法正常工作,可以从以下链接直接下载工作负载:https://mega.nz/file/Mz51xJyY#J_ai3_Pl5kVvFETurKmBuMIrOagUK4sadyahOzUYQVE
编译应用程序
每个应用程序文件夹中提供了 compile.py 脚本,用于编译应用程序、解压缩数据集并设置模拟器命令文件中定义的预期文件名。
例如,编译 STREAM 应用程序:
cd workloads/STREAM/ python compile.py cd ../../
模拟框架
DAMOV 模拟框架 DAMOV-SIM 集成了 ZSim CPU 模拟器和 Ramulator 内存模拟器,用于模拟核心微架构、缓存层次结构、一致性协议、预取器以及 DRAM 架构、内存控制器和内存访问。
模拟器配置
ZSim 可以模拟三种类型的 PIM 核心:
OOO:乱序核心。Timing:简单的一发顺序核心。Accelerator:数据流加速器模型。
提供了多个模板文件用于配置不同的主机和 PIM 系统。
运行应用程序
以 STREAM Add 应用程序为例,运行主机模拟:
./build/opt/zsim config_files/host_ooo/no_prefetch/stream/4/Add_Add.cfg
运行 PIM 模拟:
./build/opt/zsim config_files/pim_ooo/stream/4/Add_Add.cfg
新应用程序的模拟
运行新应用程序的模拟需要三个步骤:
- 使用
zsim_hooks.h中的钩子对代码进行插桩。 - 创建 ZSim 配置文件。
- 运行 ZSim。
引用
如果使用该数据集,请引用以下论文:
@article{oliveira2021damov, title={{DAMOV: A New Methodology and Benchmark Suite for Evaluating Data Movement Bottlenecks}}, author={Oliveira, Geraldo F and G{o}mez-Luna, Juan and Orosa, Lois and Ghose, Saugata and Vijaykumar, Nandita and Fernandez, Ivan and Sadrosadati, Mohammad and Mutlu, Onur}, journal={IEEE Access}, year={2021}, }



