最近在ZC702上对ARM Cortex-A9的NEON性能做了些测试。
测试代码如下:
.balign 4
.global neon_best_pipelne
.arm
neon_best_pipelne:
.rept 10000
vmla.f32 q10, q0, q5
vmla.f32 q11, q1, q6
vmla.f32 q12, q2, q7
vmla.f32 q13, q3, q8
vmla.f32 q14, q4, q9
.endr
BX lr
时间用Private Timer来度量,Private Timer的clock为CPU clock的一半,可以很精确的统计算法使用的时间。
VLD和VST访问的数据最好是8字节对齐:DATATYPE vec1[SIZE] __attribute__((aligned(8)));
FLOAT的测试结果如下: