微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 在Cortex-A8平台下memcpy ARM/NEON汇编性能的测试

在Cortex-A8平台下memcpy ARM/NEON汇编性能的测试

时间:11-10 来源:互联网 点击:
  1. 以评价一种实现的平均性能,也就是适应性。

  2. ARM的实现

  3. NEON的实现

  4. 小结

  5. 同一种的实现,在不同的硬件平台上都有不同的表现。没有一种实现在所有平台上是最好的。
  6. Codesourcery版本,包括ARM/NEON版本,有很好的适应性。不愧是做toolchain的公司。
  7. Siarhei Siamashka的NEON版本也有很好的适应性。NOKIA的技术实力也很强。这哥们好像也是pixman项目里面做NEON优化的主力。
  8. Qualcomm版本只适合Snapdragon平台。期待以后能在msm8660以及后续的芯片上进行测试。
  9. 总结

  10. 在block size = 512B ~ 32K之间,有一个性能高台,block size = 256K也有一个性能的转折。这个特性体现了32KB L1 / 256KB L2 cache的影响。
  11. NEON指令的性能总是要高于ARM指令的性能。随着发展ARM/NEON指令之间性能差在缩小。交替使用ARM/NEON指令,性能往往要差于NEON版本。
  12. 如果没有很好的模型设计,软件去干预cache的使用,很容易会造成性能的恶化。
  13. 在fit in cache条件下,Snapdragon平台有最好的性能。
  14. 在out of cache条件下,s5pc110有最好的性能。
  15. 在同一个硬件平台下,超频对memory性能影响很小。
  16. 同一种的实现,在不同的硬件平台上都有不同的表现。没有一种实现在所有平台上是最好的。
  17. 进一步的测试

    因为在Cortex-A8系列芯片里,NEON模块是必有的。而在Cortex-A9系列芯片里,NEON模块是可选的。因为NEON模块会影响到die size,因而影响功耗和成本。因此有些Cortex-A9芯片,如Nvidia Tegra250,没带有NEON模块。那么有无NEON模块会对软件性能造成什么样的影响呢?

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top