accel-sim部分代码阅读笔记

tracer_nvbit工具

路径accel-sim-framework/util/tracer_nvbit
Makefile中编译了trace生成的工具,类似于intel pin中的pintool
关键脚本run_hw_trace.py

目录说明

gpu-app-collection项目,里面有多个文件夹(bin、data_dirs、src,app-specific-gpgpu-sim-options),还有很多脚本。
run_hw_trace.py会运行指定的benchmark suit(如rodinia),然后将各个banchmark的输出文件存放在hw_run/traces中。

每个benchmark suit中有多个workload(例如rodinia的backprop-rodinia-2.0-ft、lud-rodinia-2.0-ft等等)。
以backprop为例,backprop-rodinia-2.0-ft文件夹下面有多个文件
其中一个是traces文件夹,里面存放的就是它的trace文件。该trace文件夹下包含3个文件,其中.trace文件是最原始的trace文件,它在批处理之后就被删除了,取而代之的是.traceg文件;kernelslist文件类似,会在批处理后变成kernelslist.g文件。

1- kernel traces files with .trace extension (one file per kernel), e.g. kernel-1.trace, kernel-2.trace, etc.
2- kernelslist (one file), this contains the kernel files list that have been traced along with the CUDA memcpy commands
3- stats.csv (one file), this contains the statistcs of the kernels, e.g. how many kernels traced, traced intructions, etc.

backprop-rodinia-2.0-ft文件夹有一个run.sh,里面设置了多个环境变量(CUDA_VERSION、CUDA_VISIBLE_DEVICES、TRACES_FOLDER、CUDA_INJECTION64_PATH),然后,运行post-traces-processing对trace文件进行了预处理,生成.traceg文件,还会生成一个kernelslist.g文件。

run.sh内容
1、设置环境变量
2、运行预处理程序
3、删除原始的.trace和kernelslist文件
ps:run.sh是run_hw_trace.py自动生成的

trace格式(https://github.com/accel-sim/accel-sim-framework/blob/release/util/tracer_nvbit/README.md):

traces format = threadblock_x threadblock_y threadblock_z warpid_tb PC mask dest_num [reg_dests] opcode src_num [reg_srcs] mem_width [adrrescompress?] [mem_addresses]

中括号的是可选的,

run_hw_trace.py

代码引入了common库(accel-sim-framework/util/job_launching/common.py)
common.load_defined_yamls函数,该函数加载了一个define-all-apps.yml文件(accel-sim-framework/util/job_launching/apps/define-all-apps.yml)。
define-all-apps.yml文件中定义了各个benchmark的可执行文件路径、数据路径、运行参数以及mem大小等等。模板如下:

  execs:
      - <exec_name_1>:
          - args: <commandline arg_list 1> # Leave blank if no arguments
            <optional> accel-sim-mem: <xG>
          - args: <commandline arg_list 2>
          ...
      - <exec_name_2>
          ...
      ...
# If you have a bunch of random benchmarks in random places, then a "suite" can be just one benchmark

accel-sim.out

该文件为最终的目标文件,根据makefile,它建立在trace-driven、trace-parser、gpgpu-sim、makedirs、$(BUILD_DIR)/main.o、version等目标文件的基础上。

util/job_launching文件夹

run_simulations.py文件

这个文件是运行accel-sim的脚本文件
1、里面有两个变量:options.simulator_dir和running_sim_dir。其中:

  • simulator_dir为为gpgpusim的路径,路径为./accel-sim-framework/gpu-simulator/bin/release/accel-sim.out;
  • running_sim_dir变量为accel-sim.out的副本的路径,路径为“./accel-sim-framework/sim_run_11.0/gpgpu-sim-builds”+版本号
    2、options.launcher不知道是什么变量
    3、有一个循环,通过调用config.run函数配置各个benchamark
    4、注释里的Torque应该是一个调度程序。

Torque是一个开源的PBS作业调度应用软件,被广泛应用于高性能服务集群中实 现作业的调度管理

config.run

get_stats.py

文件:accel-sim-framework/util/job_launching/get_stats.py
该文件好像是在对结果进行统计,其中./stats/example_stats.yml 是默认的配置文件,该配置文件定义了我们需要统计的信息。
accel-sim-framework/util/plotting/correl_mappings.py文件中定义了各个统计信息的名字映射。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值