大家好
我在这里遇到一个真正的问题,花了近几周的时间进行搜索,但没有得出结论
我正在尝试在 gem5 上运行已编译的 C++ 代码(二进制文件),以测量我使用 python 制作的某些架构所消耗的时间,并进行比较以显示统计信息等。
使用需要少量时间完成的二进制文件看起来没问题,但是当二进制文件需要花费 2 秒(例如)时,模拟时间会非常长
如何解决这个问题,我需要尽可能优化模拟时间
我认为这很容易,但直到现在我还无法弄清楚:\
到目前为止我达到的是:
- 在快速模式下构建 gem5,但这在模拟时间中与优化模式没有任何区别
- 但是,在优化模式下使用快进。直到现在我才完成
请帮忙!
最佳答案
一些建议:
- 如果程序不涉及复杂的内存交互,您可以使用经典内存模型。这比 Ruby 模型更快。
- 将您的应用程序快进到真正计算开始的位置。您提到它对您不起作用。要检查的一件事是:如果您使用 Ruby 内存模型,它不支持快进。它适用于经典内存模型。 http://www.m5sim.org/General_Memory_System
- 您可能感兴趣的另一件事是 Simpoints,它可以描述应用程序的重要部分,以便您运行这些部分而不是完整的应用程序。当然,您可能希望稍后运行完整的应用程序,但这可以为您提供跨架构的良好一阶比较。检查http://gem5.org/Simpoints
关于time - gem5模拟时间高,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37442750/