NEON Intrinsics 优化系数实机测试数据&小结

36 阅读1分钟

测试结果

image.png NEON 各命令优化系数表(NEON耗时÷C实现耗时)

以上结果受循环分支开销影响,使用 IPC 设备的 ARMv7 芯片,仅供参考。数据单位为毫秒(ms),每次测试运行 2e7 次对应的 floa*4 向量的各运算。

小结

  1. neon 的 load 和 store 的耗时明显长于 c 实现;更重要的,这一区别不会在 pc 仿真中体现。
  2. 根据表格,最低系数是 mla(a+b*c)=0.499 , 最大系数为 vmin = 0.738
  3. 1 次 ld 的速度约等于 1.5 次运算符。可以推得:减少 ld 和 st 的次数,可以显著优化速度。(这句话被批“减少 ld 和 st 是明确写在 NEON 官方手册里的,你测它干嘛”)
  4. 上机空跑 for 循环的时延也很长,单看 neon 运算实际的优化系数可能优于0.5。