gem5学习(13):使用默认配置脚本——Using the default configuration scripts

这篇具有很好参考价值的文章主要介绍了gem5学习(13):使用默认配置脚本——Using the default configuration scripts。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、A tour of the directory structure

1、boot/

2、common/

3、dram/

4、example/

5、learning_gem5/

6、network/

7、nvm/

8、ruby/

9、splash2/

10、topologies/

二、Using se.py and fs.py

三、Some common options se.py and fs.py


在这个教程中,将探讨如何使用gem5附带的默认配置脚本。

gem5附带了许多配置脚本,使用户快速使用gem5。但是在使用gem5进行计算机体系结构研究时,应该充分了解正在模拟的系统。这个教程就是指导用户了解系统中的默认配置脚本的重要选项和部分内容。

前面介绍的是从头开始创建自己的脚本,这样可以自定义系统参数。但是例如完整的ARM或x86系统等架构非常复杂,难以用我们自己创建的方法进行设置。所以gem5的开发人员提供了许多脚本来启动构建系统的过程。

一、A tour of the directory structure

可以用tree命令在config目录中查看当前目录文件结构。

tree
configs/boot:
bbench-gb.rcS  bbench-ics.rcS  hack_back_ckpt.rcS  halt.sh

configs/common:
Benchmarks.py   Caches.py  cpu2000.py    FileSystemConfig.py  GPUTLBConfig.py   HMC.py       MemConfig.py   Options.py     Simulation.py
CacheConfig.py  cores      CpuConfig.py  FSConfig.py          GPUTLBOptions.py  __init__.py  ObjectList.py  SimpleOpts.py  SysPaths.py

configs/dist:
sw.py

configs/dram:
lat_mem_rd.py  low_power_sweep.py  sweep.py

configs/example:
apu_se.py  etrace_replay.py  garnet_synth_traffic.py  hmctest.py    hsaTopology.py  memtest.py  read_config.py  ruby_direct_test.py      ruby_mem_test.py     sc_main.py
arm        fs.py             hmc_hello.py             hmc_tgen.cfg  memcheck.py     noc_config  riscv           ruby_gpu_random_test.py  ruby_random_test.py  se.py

configs/learning_gem5:
part1  part2  part3  README

configs/network:
__init__.py  Network.py

configs/nvm:
sweep_hybrid.py  sweep.py

configs/ruby:
AMD_Base_Constructor.py  CHI.py        Garnet_standalone.py  __init__.py              MESI_Three_Level.py  MI_example.py      MOESI_CMP_directory.py  MOESI_hammer.py
CHI_config.py            CntrlBase.py  GPU_VIPER.py          MESI_Three_Level_HTM.py  MESI_Two_Level.py    MOESI_AMD_Base.py  MOESI_CMP_token.py      Ruby.py

configs/splash2:
cluster.py  run.py

configs/topologies:
BaseTopology.py  Cluster.py  CrossbarGarnet.py  Crossbar.py  CustomMesh.py  __init__.py  MeshDirCorners_XY.py  Mesh_westfirst.py  Mesh_XY.py  Pt2Pt.py

其中对每个目录进行详细解释说明。

1、boot/

这些是在完整系统模式下使用的 rcS 文件。这些文件在Linux启动后由模拟器加载,并由shell执行。其中大部分用于在完整系统模式下控制基准测试。有些是实用函数,例如 hack_back_ckpt.rcS。这些文件在完整系统模拟章节中会更详细地介绍。

gem5学习(13):使用默认配置脚本——Using the default configuration scripts,gem5学习,学习

2、common/

该目录包含了一些辅助脚本和函数,用于创建模拟系统。例如,Caches.py类似于前几章中创建的caches.py和caches_opts.py文件。

  • Options.py包含了各种可以在命令行上设置的选项,比如CPU的数量、系统时钟等等。如果想要更改的选项已经有命令行参数,可以在这个文件中进行查看。
  • CacheConfig.py包含了用于设置经典内存系统缓存参数的选项和函数。
  • MemConfig.py提供了一些辅助函数,用于设置内存系统。
  • FSConfig.py包含了设置多种不同类型系统的完整系统仿真所需的函数。完整系统仿真中有进一步的讨论。
  • Simulation.py包含了许多辅助函数,用于设置和运行gem5。该文件中的许多代码用于管理保存和恢复检查点。下面examples/目录中的示例配置文件使用该文件中的函数来执行gem5仿真。该文件相当复杂,但也允许以灵活的方式运行仿真。

gem5学习(13):使用默认配置脚本——Using the default configuration scripts,gem5学习,学习

3、dram/

这个文件夹中主要是用于测试DRAM的脚本。

gem5学习(13):使用默认配置脚本——Using the default configuration scripts,gem5学习,学习

4、example/

该目录包含一些示例gem5配置脚本,可以直接使用来运行gem5。特别是se.py和fs.py非常有用。关于这些文件的更多信息可以在下一节中找到。此外,该目录还包含一些其他实用的配置脚本。

gem5学习(13):使用默认配置脚本——Using the default configuration scripts,gem5学习,学习

gem5学习(13):使用默认配置脚本——Using the default configuration scripts,gem5学习,学习

5、learning_gem5/

该目录包含了learning_gem5教程中的所有gem5配置脚本。

gem5学习(13):使用默认配置脚本——Using the default configuration scripts,gem5学习,学习

6、network/

该目录包含了HeteroGarnet网络的配置脚本。

相关教程:gem5: HeteroGarnet (Garnet 3.0)

gem5学习(13):使用默认配置脚本——Using the default configuration scripts,gem5学习,学习

7、nvm/

该目录包含使用NVM接口的示例脚本。

gem5学习(13):使用默认配置脚本——Using the default configuration scripts,gem5学习,学习

8、ruby/

该目录包含了Ruby及其包含的缓存一致性协议的配置脚本。

相关教程:gem5: Introduction

gem5学习(13):使用默认配置脚本——Using the default configuration scripts,gem5学习,学习

9、splash2/

该目录包含了用于运行splash2基准套件的脚本,其中包含了一些选项用于配置模拟系统。

gem5学习(13):使用默认配置脚本——Using the default configuration scripts,gem5学习,学习

10、topologies/

该目录包含了在创建Ruby缓存层次结构时可使用的拓扑结构的实现。有关详细信息,请参阅Ruby章节。

gem5学习(13):使用默认配置脚本——Using the default configuration scripts,gem5学习,学习

其中还有一些没有详细说明的,deprecated/目录是已经启用。

二、Using se.py and fs.py

在本节中,将讨论一些可以通过命令行传递给se.py和fs.py的常见选项。有关如何运行完整系统仿真的详细信息,请参阅完整系统仿真:gem5: X86 Full-System Tutorial。在这里,只将讨论这两个文件中共有的选项。

本节讨论的大多数选项都可以在Options.py中找到,并在函数addCommonOptions中注册。本节不详细介绍所有选项。要查看所有选项,请使用--help运行配置脚本,或阅读脚本的源代码。

首先,简单地运行hello world程序,不使用任何参数:

build/X86/gem5.debug configs/deprecated/example/se.py --cmd=tests/test-progs/hello/bin/x86/linux/hello

gem5学习(13):使用默认配置脚本——Using the default configuration scripts,gem5学习,学习

默认情况下,gem5使用原子CPU和原子内存访问,因此没有报告真实的时间数据!要确认这一点,可以查看m5out/config.ini文件。CPU显示在第51行:

gem5学习(13):使用默认配置脚本——Using the default configuration scripts,gem5学习,学习

为了实际以timing mode模式运行gem5,指定一个CPU类型。在此过程中,还可以为L1缓存指定大小。

build/X86/gem5.debug configs/deprecated/example/se.py --cmd=tests/test-progs/hello/bin/x86/linux/hello --cpu-type=TimingSimpleCPU --l1d_size=64kB --l1i_size=16kB

gem5学习(13):使用默认配置脚本——Using the default configuration scripts,gem5学习,学习

检查config.ini文件,确保这些选项正确地传播到最终的系统中。在m5out/config.ini中搜索“cache”,没有创建任何缓存。因为尽管指定了缓存的大小,但没有指定系统应该使用缓存,所以没有被创建。正确的命令行【在最后加入--caches】:

build/X86/gem5.debug configs/deprecated/example/se.py --cmd=tests/test-progs/hello/bin/x86/linux/hello --cpu-type=TimingSimpleCPU --l1d_size=64kB --l1i_size=16kB --caches

gem5学习(13):使用默认配置脚本——Using the default configuration scripts,gem5学习,学习

三、Some common options se.py and fs.py

打印所有可能的选项:

build/X86/gem5.debug configs/deprecated/example/se.py --help

教程中只列出了一部分比较重要的:

--cpu-type=CPU_TYPE

        要运行的CPU类型。这是一个重要的参数,必须设置。默认值是atomic,不执行定时仿真。

--sys-clock=SYS_CLOCK

        系统速度运行的时钟。

--cpu-clock=CPU_CLOCK

        CPU速度运行的时钟,与上面的系统时钟是分开的。

--mem-type=MEM_TYPE

        要使用的内存类型。选项包括不同的DDR内存和Ruby内存控制器。

--caches

        使用经典缓存进行仿真。

--l2cache

        如果使用经典缓存,则使用L2缓存进行仿真。

--ruby

        将Ruby作为缓存系统仿真,而不是使用经典缓存。

-m TICKS, --abs-max-tick=TICKS

        运行到指定的绝对模拟时钟,包括从恢复的检查点中计算的时钟。如果只想模拟一定量的模拟时间,需要使用这个参数。

-I MAXINSTS, --maxinsts=MAXINSTS

        要模拟的总指令数(默认为无限)。如果您想在执行一定数量的指令后停止仿真,需要使用这个参数。

-c CMD, --cmd=CMD

        以系统调用仿真模式运行的二进制文件。

-o OPTIONS, --options=OPTIONS

        传递给二进制文件的选项,整个字符串要用引号括起来。当运行需要选项的命令时,需要使用这个参数。可以通过此变量传递参数和选项(例如,--whatever)。

--output=OUTPUT

        将stdout重定向到文件。如果想将模拟应用程序的输出重定向到文件而不是打印到终端上,需要使用这个参数。注意:要重定向gem5的输出,必须在配置脚本之前传递一个参数。

--errout=ERROUT

        将stderr重定向到文件。类似于上面的操作。文章来源地址https://www.toymoban.com/news/detail-794526.html

到了这里,关于gem5学习(13):使用默认配置脚本——Using the default configuration scripts的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • gem5学习(23):经典缓存——Classic Caches

    目录 一、Interconnects 1、Crossbars 二、Debugging 官网教程:gem5: Classic caches 默认缓存是一个带有MSHR(未命中状态保持寄存器)和WB(写缓冲区)的非阻塞缓存,用于读取和写入未命中。缓存还可以启用预取(通常在最后一级缓存中)。 在gem5中实现了多种可能的替换策略和索引策

    2024年02月19日
    浏览(41)
  • gem5学习(22):经典内存系统的一致性——Classic Memory System coherence

    官网教程:gem5: Classic memory system coherence M5 2.0b4引入了一个经过大量重写和简化的缓存模型,包括一个新的一致性协议。一致性协议是用于确保多个缓存之间的数据一致性的规则和机制。这意味着在多个缓存中存储的数据将保持一致,以避免数据不一致的问题。 (在此之前的

    2024年02月19日
    浏览(50)
  • 服务器上使用docker搭建gem5-gcn3环境

    3步:拉取镜像,编译gcn,测试square 1、拉取镜像 默认主机有梯子/代理,根据官网步骤 gem5 gpu:AMD VEGA GPU 报错: 解决,需要在github上设置一下token信息,参考链接 关于容器注册表支持。设置步骤: 重新拉取镜像, 报错: Error response from daemon: manifest unknown,清单未知。去gem

    2024年02月02日
    浏览(56)
  • CUDA配置环境(三):nvcc fatal : Could not set up the environment for Microsoft Visual Studio using 已解决

    在QT编写CUDA代码,在已经配好.pro文件中的代码,并且CUDA安装没有问题,还可以在VS2017中正常运行CUDA程序时,一开始debug的时候我遇到了以下问题: Could not set up the environment for Microsoft Visual Studio using, 我在网上找了好久的解决办法,国外的社区还有国内的社区,都没有详细可

    2024年02月03日
    浏览(54)
  • 快手极速版薅羊毛+脚本+抓包教程+环境变量配置 保姆级别教程 (2022/5/13 更新)

    快手极速版薅羊毛是基于青龙面板的 首先你要有自己的青龙面板 没有青龙面板的可以看下我以前的文章,很简单的(有服务器的话2分钟搭建完毕) 那么下面开始进入正题! 复制上面这段代码,打开你的青龙面板 然后填写名称 命令 以及时间 名称 随意填 命令 填写 上面那段

    2024年02月04日
    浏览(126)
  • pip报错:Consider using the `--user` option or check the permissions

      报错内容: 错误:由于环境错误,无法安装软件包:[WinError 5]拒绝访问。:’d: pythonjdkscriptspip。exe’ 考虑使用–user选项或检查权限。 安装时加上 --user 即可 ModuleNotFoundError: No module named \\\'pip\\\': 如何安全更新pip 1、python -m pip install --upgrade pip python的全局角度进行更新pip,

    2024年02月13日
    浏览(40)
  • eNSP学习——静态路由及默认路由基本配置

    目录 知识背景 实验目的 实验步骤 实验内容 实验拓扑 实验编址 实验前期准备 实验步骤 1、基本配置(按照实验编址设置好对应的IP地址)  2、是实现主机之间的通信 3、实现全网全通来增强网络的可靠性 4、使用默认路由实现简单的网络优化 需要各种设备的配置命令可以点

    2024年04月26日
    浏览(38)
  • 安装python库报错:Consider using the `--user` option or check the permissions.

    昨天在服务器上训练ResNet,导包出现了一些小问题: 1)安装tqdm库的时候,出现 Consider using the ‘–user’ option or check the permissions.访问python下的site-package权限不够。添加‘–user’即可,再次尝试使用以下命令 问题解决。 2)使用torch和torchvision的时候出现异常,Invoked with: typi

    2024年02月08日
    浏览(53)
  • 在windows下安装ruby使用gem

    ruby下载地址 选择合适的版本进行下载和安装: 在安装的时候,请勾选 Add Ruby executables to your PATH 这个选项,添加环境变量: 安装Ruby成功后,还可以安装一下msys2: 以用 gem 安装 wpscan 为例,直接在命令行中输入 搜索wpscan包: 安装: 国外的源访问太慢,我们换国内的源 查看

    2024年02月14日
    浏览(38)
  • The project is using an incompatible version of the Android Gradle plugin.

    积极主动,以终为始 The project is using an incompatible version (AGP 7.4.1) of the Android Gradle plugin. Latest supported version is AGP 7.2.0 AGP(Android Gradle Plugin) - Android Gradle 插件 在Android开发过程中,可能会遇到上面的这个Android Gradle Plugin版本不匹配的问题。网上可能告诉你了一些解决方案。但是本

    2024年02月11日
    浏览(85)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包