在Cortex-A8平台下memcpy ARM/NEON汇编性能的测试
时间:11-10
来源:互联网
点击:
以评价一种实现的平均性能,也就是适应性。
ARM的实现
NEON的实现
小结
- 同一种的实现,在不同的硬件平台上都有不同的表现。没有一种实现在所有平台上是最好的。
- Codesourcery版本,包括ARM/NEON版本,有很好的适应性。不愧是做toolchain的公司。
- Siarhei Siamashka的NEON版本也有很好的适应性。NOKIA的技术实力也很强。这哥们好像也是pixman项目里面做NEON优化的主力。
- Qualcomm版本只适合Snapdragon平台。期待以后能在msm8660以及后续的芯片上进行测试。
总结
- 在block size = 512B ~ 32K之间,有一个性能高台,block size = 256K也有一个性能的转折。这个特性体现了32KB L1 / 256KB L2 cache的影响。
- NEON指令的性能总是要高于ARM指令的性能。随着发展ARM/NEON指令之间性能差在缩小。交替使用ARM/NEON指令,性能往往要差于NEON版本。
- 如果没有很好的模型设计,软件去干预cache的使用,很容易会造成性能的恶化。
- 在fit in cache条件下,Snapdragon平台有最好的性能。
- 在out of cache条件下,s5pc110有最好的性能。
- 在同一个硬件平台下,超频对memory性能影响很小。
- 同一种的实现,在不同的硬件平台上都有不同的表现。没有一种实现在所有平台上是最好的。
进一步的测试
因为在Cortex-A8系列芯片里,NEON模块是必有的。而在Cortex-A9系列芯片里,NEON模块是可选的。因为NEON模块会影响到die size,因而影响功耗和成本。因此有些Cortex-A9芯片,如Nvidia Tegra250,没带有NEON模块。那么有无NEON模块会对软件性能造成什么样的影响呢?
Cortex-A8平台memcpyARMNEON汇编性 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)