最近有人要求我为我们开发的算法生成 MIPS(每秒百万条指令)。该算法由一组 C 风格的函数公开。我们在戴尔 Axim 上练习了代码,以对不同输入下的性能进行基准测试。

这个问题来自我们的硬件供应商,但我主要是一名 HL 软件开发人员,所以我不确定如何回应请求。也许具有类似硬件/软件背景的人可以提供帮助...

  • 由于我们的算法不是实时的,我认为我们不需要将其量化为 MIPS。是否可以简单地引用汇编指令的总数?
  • 如果 1 为真,您一般如何或专门针对 ARM/XScale 执行此操作(即如何测量汇编指令的数量)?
  • 2 可以在 WM 设备上执行还是通过 VS2005 中提供的设备模拟器执行?
  • 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 秒的时间。但是在 1,000 MIPS 处理器上,这会爆炸到无法接受的 4 秒。

    您需要多少 MIPS?
  • 为您的处理器获取官方 MIPS。见 http://en.wikipedia.org/wiki/Instructions_per_second
  • 在一些数据上运行你的算法。
  • 测量准确的运行时间。平均一堆样本以减少不确定性。
  • 报告。 750 MIPS 处理器上的 3 秒是——嗯—— 750 MIPS 下的 3 秒。 MIPS 是一个比率。时间就是时间。距离是速率 * 时间的乘积。 750 MIPS 的 3 秒是 750*3 百万条指令。

  • 记住速率(以每秒指令数为单位)* 时间(以秒为单位)为您提供指令。

    别说是3*750 MIPS。它不是;这是 22.5 亿条指令。

    关于arm - 如何计算 ARM 处理器算法的 MIPS,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/678771/

    10-13 06:20