Gcc 在x86上评测为SPARC v8编译的基准

Gcc 在x86上评测为SPARC v8编译的基准,gcc,profiling,sparc,loop-unrolling,Gcc,Profiling,Sparc,Loop Unrolling,我正在尝试对leon3处理器(指令集为SPARC v8)进行一个(小的)改进,作为一个学术练习。在我决定改进什么之前,我想简要介绍几个我想定制改进的基准程序 我没有访问SPARC v8机器的权限 目前,我正在使用“tsim”(一个leon3模拟器)的评估版本,它在功能级别进行评测。这并不是很有用 我尝试过一些奇怪的东西,比如启用循环展开进行编译,然后计算汇编代码中有趣的指令,但gcc拒绝展开循环,可能是因为其中一些循环太深了(例如,4个嵌套的“for”循环) 理想情况下,我要寻找的是一个SPAR

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

我没有访问SPARC v8机器的权限

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

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

理想情况下,我要寻找的是一个SPARC v8模拟器,它运行基准测试并在指令级别对其进行分析(比如:“smul”执行了x次),这样我就可以决定从何处开始尝试改进。当然,如果没有剖析器,我还有其他方法可以做到这一点,我不会介意


有什么想法吗?

如果你真的想深入研究硬件,你会发现一个模拟器非常有用,可以帮助你解决这个问题

我想到了。他们过去有免费的学术许可证,但因为他们是被英特尔收购的,所以你现在需要申请一个,根据我的经验,这需要几周的时间。如果你愿意投资这一次,你肯定会得到一个适合你需要的工具,虽然他们支持LEON2,而不是LEON3,作为一个模型,但是对于评测来说这应该是好的


也有,但由于他们正在大量重新编译,可能很难使用它进行指令级评测。

在Modelsim中模拟处理器可能是一种选择。使用Modelsim,您可以对整个LEON3处理器进行功能模拟。虽然模拟过程会非常缓慢,并且可能会完全超出您的预期,但Aeroflex Gaisler提供了优秀的脚本来使用Modelsim

modelsim的学生版可在以下位置找到:


1)展开可能只有在最里面的循环中才有价值,而且只有在其内容非常轻的情况下才有价值。(您始终可以自己展开循环。)2)cachegrind可以执行此指令计时吗?(我不知道。)Cachegrind在Valgrind上工作,不幸的是,Valgrind不支持SPARC:/我解决这个问题已经两年多了,我最终的解决方法是使用ModelSim。从那以后,我再也没有回来更新这个问题。这应该是正确的答案,我现在标记为正确。