[ 表6 fp_fir 单精度浮点乘加性能处理器名称 | 1M samples 1024点单精度浮点FIR用时(越小越好):秒 | S3C2410 200MHz softfloat
| 1175.22 | OMAP2420 400MHz softfloat
| 248.39 | OMAP2420 400MHz vfp
| 34.45 | OMAP3530 600MHz vfp
| 53.17 | OMAP3530 600MHz auto vectorized
| 6.98
| OMAP3530 600MHz manual vectorized
| 2.99 | PentiumD920 3.0GHz scalar fpu
| 6.91
| PentiumD920 3.0GHz SSE3 vectorized
| 0.95 |
图4 fp_fir 单精度浮点乘加性能 单位:秒 越小越好 ![]()
由于向量处理和传统非流水标量处理性能差距很大,去掉前面5种地性能的配置。截取后4种向量处理配置的柱状图,可以清晰的看到neon和sse3性能PK 图5 fp_fir 单精度浮点乘加性能 单位:秒 越小越好 ![]()
可以看到流水线化的向量协处理对数值运算帮助非常大,有数量级的性能提升。这也是为什么INTEL/AMD等处理器厂商都把多媒体指令集作为亮点大肆宣传,各种操作系统和软件也积极应用SIMD指令来进行加速。 因为嵌入式处理器原本就没有集成全流水线FPU,这种加速对嵌入式处理器如cortex-a8尤其明显。 此外,嵌入式处理器指令集兼容的历史包袱比x86要少得多,完全可以直接采用向量指令集得到接近大型CPU和传统高端DSP的数值计算性能,有的嵌入式CPU干脆把这类指令叫做嵌入式DSP指令。这类向量指令集在视频图像处理、语音识别、计算机视觉、软件无线电和人工智能等应用上拥有极大的性能/功耗比优势。 |