我正在计算从维度(10-39)点到数组的距离的很多实例。我希望它尽可能快地运行,适用于 Android 4.0+,特别是 Galaxy S3。我已经让硬件 FPU 工作了,但在某处听说你可以通过矢量化和霓虹灯加快速度。像这个Android 构建系统、NEON 和非 NEON 构建这样的问题并没有给我一个简单的答案。
什么是我可以在 S3 中使用这种矢量化的最简单方法,并举例说明这种计算的加速(n 暗点距离到 n 暗矢量)。
这是循环代码:
// go through each point in the vector
for (bi=0; bi<sizeOfVect; bi++) {
r[bi] = 0.0; // initialise distance
//calculate distance in each dimension (d is 10-39 depending)
for (di=0; di<d; di++) {
rj[di] = s1[i*d+di] - b[bi*d+di];
// s1 is the n dim point, b is the vector array
r[bi] += rj[di]*rj[di];
}
}