如何用NEON优化[i] = b [c [i]]

时间:2015-07-15 07:07:21

标签: c optimization arm simd neon

我在这里得到了一个非常简单但很大(n很大)的循环:

¢

我想使用NEON对其进行优化,但我不知道如何处理这一部分:for (i=0; i<n; i++) { dst[i] = src[table[i]]; } 。 有可能优化吗?如果是,怎么样?

1 个答案:

答案 0 :(得分:1)

感谢@Paul R和他的评论:

  

这实际上是一个聚集的负载,在NEON中不受支持。参见:   stackoverflow.com/questions/11502332/…

由于NEON无法优化,我尝试了OpenMP,并取得了显着的进步。代码也很简单:

#pragma omp parallel for
for (i=0; i<n; i++)
{
    dst[i] = src[table[i]];
}