使用Accelerate框架对无符号8位整数进行求和

我可以使用Accelerate Framework将无符号的8位整数数组求和,而无需转换为浮点数组。

我目前的做法是:

vDSP_vfltu8(intArray, 1, floatArray, 1, size); vDSP_sve(floatArray, 1, &result, size); 

但vDSP_vfltu8相当慢。

  1. 如果vDSP_vfltu8( )速度很快对您很重要,请提交错误报告 。 如果有任何问题,请提交错误报告 。 性能不足一个错误,如果你报告,将被视为这样。 图书馆作者使用这种反馈来确定如何优先考虑他们的工作; 你的错误报告是在队列前面的一个函数与队列中的#1937之间的区别。
  2. 正如已经暗示的那样,整数累加由于溢出问题而变得复杂,但是如果对于由vDSP库提供的特定情况具有优化函数将是有用的,请提交错误报告以请求这样的函数(注意到模式?) 。 图书馆作家不是通灵者,也不写作没有要求的function。 一定要解释如何使用这样的function – 给出这些信息,他们可能会想出一个稍微不同的function,这对你更有用。
  3. 如果您决定自己编写一些NEON代码,则需要使用vaddw_u8( )内部函数。