【问题标题】:How to Increase the simulation speed of a gem5 run如何提高 gem5 运行的模拟速度
【发布时间】:2020-01-22 12:46:41
【问题描述】:

我希望在 gem5 环境中模拟一个非常重要的程序。

我为指定的 ISA 交叉编译了三个文件:

  • main.c
  • my_library.c
  • my_library.h

我使用命令

build/ARM/gem5.opt configs/example/se.py --cpu-type=TimingSimpleCPU -c test/test-progs/hello/src/my_binary

但是有没有办法,也许是 se.py 脚本的一个参数可以让我的模拟进行得更快?

【问题讨论】:

    标签: gem5


    【解决方案1】:

    默认命令通常是最快的可用命令(因此模拟精度最低)。

    gem5.fast 构建

    通过禁用一些与调试相关的宏,.fast 构建的运行速度可以提高约 20%,而不会损失模拟精度:

    scons -j `nproc` build/ARM/gem5.fast
    build/ARM/gem5.fast configs/example/se.py --cpu-type=TimingSimpleCPU \
      -c test/test-progs/hello/src/my_binary
    

    加速是通过以下方式实现的:

    所以一般来说.fast 是不值得的,如果您正在开发模拟器,但前提是您已经完成了您可能拥有的任何补丁,并且只需要使用不同的参数尽可能快地运行数百个模拟。

    TODO 最好对上述哪些更改对运行时最重要以及链接时间是否真的被 LTO 显着减慢进行基准测试。

    gem5 性能分析分析

    我不知道是否对 gem5 进行了适当的性能分析以访问模拟的哪些部分很慢,以及是否有任何方法可以轻松改进它。有人必须在某个时候这样做并将其发布到:https://gem5.atlassian.net/browse/GEM5

    降低模拟精度的选项

    如果没有--cpu-type=TimingSimpleCPU ,模拟也会更快但精度更低:

    build/ARM/gem5.opt configs/example/se.py -c test/test-progs/hello/src/my_binary
    

    它使用更简单的内存模型AtomicSimpleCPU

    其他精度较低但速度更快的选项包括:

    • KVM,但截至 2020 年支持还不完善,您需要 ARM 主机来运行模拟
    • Gabe 的 FastModel 集成将于 2020 年合并,但它需要 ARM 的 FastModel 许可,我认为这对个人来说太贵了

    另外,如果有人要在 gem5 中实现二进制翻译,这就是 QEMU 的快速运行方式,那么这将是一个了不起的选择。

    相关

    Gem5 system requirements for decent performance

    【讨论】:

      猜你喜欢
      • 2015-06-04
      • 1970-01-01
      • 1970-01-01
      • 2014-01-03
      • 2019-08-07
      • 2013-01-10
      • 2016-01-09
      • 1970-01-01
      • 2021-11-07
      相关资源
      最近更新 更多