【问题标题】:Profiling a benchmark compiled for the SPARC v8 on an x86在 x86 上分析为 SPARC v8 编译的基准
【发布时间】:2011-08-24 23:00:31
【问题描述】:

我正在尝试对 leon3 处理器(指令集是 SPARC v8)进行(小)改进,以进行学术练习。在决定要改进什么之前,我想简要介绍几个我想要对其进行改进的基准程序。

我无权访问 SPARC v8 机器。

目前,我正在使用“tsim”(leon3 模拟器)的评估版本,它在功能级别进行分析。这并不是那么有用。

我尝试过一些奇怪的东西,比如在启用循环展开的情况下进行编译,然后计算汇编代码中有趣的指令,但 gcc 拒绝展开循环,可能是因为其中一些循环太深(例如 4 个嵌套的“for”循环) .

理想情况下,我正在寻找的是一个 SPARC v8 模拟器,它运行基准测试并在指令级别对其进行分析(例如:'smul' 执行 x 次),以便我可以决定从哪里开始尝试改进。当然,如果不是分析器,如果有其他方法可以做到这一点,我不会介意。

有什么想法吗?

【问题讨论】:

  • 1) 展开可能只有在最内层循环才值得,而且只有当它的内容非常轻量时才值得。 (你总是可以自己展开循环。) 2) cachegrind 可以做这个指令计时吗? (我不知道。)
  • Cachegrind 在 Valgrind 上工作,不幸的是它不支持 SPARC。 ://

标签: gcc profiling sparc loop-unrolling


【解决方案1】:

如果您真的想深入研究硬件,您会发现一个有用的模拟器可以帮助您。

Simics 浮现在脑海中。他们曾经有免费的学术许可证,但由于他们被英特尔收购,你现在需要申请一个,根据我的经验,这需要几周时间。如果您愿意这次投资,您肯定会得到一个适合您需求的工具,尽管它们支持 LEON2,而不是 LEON3,作为模型,但对于分析,这应该没问题。

Qemu 也有 LEON support,但由于它们正在大量重新编译,因此可能很难使用它进行指令级分析。

【讨论】:

    【解决方案2】:

    在 Modelsim 中模拟处理器可能是一种选择。使用 Modelsim,您可以对完整的 LEON3 处理器进行功能仿真。虽然模拟会很慢并且可能完全超出您的目的,但 Aeroflex Gaisler 提供了与 Modelsim 配合使用的出色脚本。

    modelsim 的学生版可以在这里找到:

    http://www.mentor.com/company/higher_ed/modelsim-student-edition

    【讨论】:

    • 解决这个问题已经2年多了,我最终解决的方法是使用ModelSim。从那以后,我再也没有回来更新这个问题。这应该是正确的答案,我现在标记它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多