1

嗨,我正在 Nxp imx7 上开发和图像处理应用程序,我想比较 NEON 指令与纯 C 的性能。

c: a,b,c 是 float32。运行 11ms

for(int pixIndex = 0; pixIndex<(640*480); pixIndex++)
{
    a[pixIndex] = (a[pixIndex] * b[pixIndex]) + c[pixIndex];
}

NEON:运行 10 毫秒

for(int pixIndex = 0; pixIndex < (640*480)/2; pixIndex++)
{
    float32x2_t dVect1, dVect2,dVect3;

    dVect1 = vld1_f32(a);
    dVect2 = vld1_f32(b);
    dVect3 = vld1_f32(c);
    dVect1 = vmla_f32(dVect3, dVect1, dVect2);
    vst1_f32(a, dVect1);
    a += 2;
    b += 2;
    c += 2;
}

为什么 NEON 只比 c 快 1ms?我在这里想念什么吗?

4

0 回答 0