最近我被要求为我们开发的算法生成MIPS(每秒百万条指令).该算法由一组C风格的函数公开.我们在Dell Axim上运用代码来对不同输入下的性能进行基准测试.
这个问题来自我们的硬件供应商,但我主要是HL软件开发人员,因此我不确定如何回应该请求.也许有类似硬件/软件背景的人可以帮助......
由于我们的算法不是实时的,我认为我们不需要将其量化为MIPS.是否可以简单地引用汇编指令的总数?
如果1为真,那么如何(或者如何测量汇编指令的数量)一般或特别针对ARM/XScale?
可以在WM设备上或通过VS2005中提供的设备仿真器执行2吗?
3可以自动化吗?
非常感谢你的帮助.查尔斯
感谢你的帮助.我认为S.Lott砸了钉子.作为后续行动,我现在有更多问题.
5有关如何测量MIPS的任何建议吗?我听说有人建议运行我们的算法并将其与Dhrystone/Whetstone基准进行比较以计算MIS.
6由于算法不需要实时运行,MIPS真的是一个有用的措施吗?(例如,阶乘(N))有哪些其他方法来量化处理要求?(我已经测量了运行时性能,但这不是一个令人满意的答案.)
7最后,我假设MIPS是粗略的估计,并且将是dep.关于编译器,优化设置等?
我敢打赌,你的硬件供应商正在询问你需要多少MIPS.
与"您需要1,000 MIPS处理器还是2,000 MIPS处理器?"
管理层将其翻译成"MIPS多少?"
硬件提供MIPS.软件消耗MIPS.
你有两个自由度.
处理器固有的MIPS产品.
消耗那么多MIPS的秒数.
如果处理器没有足够的MIPS,您的算法将"慢".
如果处理器有足够的MIPS,您的算法将"快速".
我在引号中加上"快"和"慢",因为你需要有一个性能要求来确定"足够快以满足性能要求"或"太慢以至于不能满足性能要求".
在2,000 MIPS处理器上,您可能需要2秒钟.但是在1000 MIPS处理器上,这会爆炸到不可接受的4秒.
你需要多少个MIPS?
获取处理器的官方MIPS.请参见http://en.wikipedia.org/wiki/Instructions_per_second
在某些数据上运行算法.
测量准确的运行时间.平均一堆样本以减少不确定性.
报告.750 MIPS处理器上的3秒钟 - 很好 - 750 MIPS时为3秒.MIPS是一种速率.时间就是时间.距离是速率*时间的乘积.750 MIPS的3秒是750*300万条指令.
记住速率(每秒指令数)*时间(以秒为单位)为您提供说明.
不要说它是3*750 MIPS.它不是; 这是2250万条指令.