我有以下代码:
for (short l = j; l < j + input->w_small; l = l + 4){
add_b = k * input->w_big + l;
add_s = (k - i) * input->w_small + l - j;
__asm__ __volatile__(
"ldr %%r1, [%1];"
"ldr %%r2, [%2];"
"usada8 %0, %%r1, %%r2, %0;"
:"+r" (sad)
: "r" (input->pic_big + add_b), "r" (input->pic_small + add_s)
: "r1", "r2"
);
}
这是图像处理算法的一部分。应用程序在RPi 1 B上运行29.24秒,在RPi 2 B上运行7.65秒,从而加速3.82倍。问题是,为什么?我理解,模型之间存在架构上的变化,但我没有找到任何关于USADA8的参考,它在ARMv7上应该明显更快。有任何想法吗?
P.S。:不要误会我的意思,我对结果非常满意,只是好奇:)