ARM Cortex A8基准测试:有人可以帮我理解这些数字吗?


=_=
2025-03-12 08:58:16 (11天前)



轻量级
</跨度>
。起初我得到的速度基准并没有多大意义,所以我开始阅读有关管道危险,双重问题的能力等等。我仍然对一些pu感到困惑

3 条回复
  1. 0# 庸人自扰1 | 2019-08-31 10-32



    哇,你的结果非常准确:




    • 32位整数Q乘法成本为4个周期,而float为2。


    • 32位整数Q增加成本1个周期,而float需要2个。



    不错的实验。



    也许你已经知道了,但在编写NEON时要小心:




    • 当NEON工作繁重时,不要使用ARM访问内存


    • 不要将VFP指令与NEON混合使用。 (那些共享的除外)


    • 不访问S寄存器。


    • 不要从NEON寄存器传输到ARM



    所有这些都将导致巨大的打嗝。



    祝好运!



    PS:我宁愿优化A9(稍微不同的周期时间),因为几乎所有新设备都带有A9。 ARM的A9时序图更具可读性。 :-)


  2. 1# 句号了哦哦 | 2019-08-31 10-32



    我会猜测(因为我没有方便的文档链接)你正在遇到管道问题。我知道现在称为VFPU的FPU - err具有与CPU执行循环的整数数学部分不同的管道长度。我看到第二个算术运算依赖于第一个算法操作将阻止任何一个管道,并可能暴露你所看到的差异。



    另外,我认为乘法不是1周期指令用于整数,而是2-5周期取决于第二个值的msb - 这里有2个周期,因为数字大小可以解释这个差异。要验证这一点,请从较大的乘号开始,看看它是否会在较大的尺寸上减慢。



    我还要验证您的代码是否都适合1缓存页面,以消除这种可能性。



    我还要查看上面关于双重执行的部分,因为当事物是交叉依赖时,那里也会发生各种各样的管道停顿。


登录 后才能参与评论