【发布时间】: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