Sum array of unsigned 8-bit integers using the Acc

2019-02-11 01:47发布

Can I use the Accelerate Framework to sum an array of unsigned 8-bit integers without converting to an array of floats.

My current approach is:

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

But vDSP_vfltu8 is quite slow.

1条回答
我只想做你的唯一
2楼-- · 2019-02-11 02:18
  1. If it is important to you that vDSP_vfltu8( ) be fast, please file a bug report. If there's any question, file a bug report. Inadequate performance is a bug, and will be treated as such if you report it. Library writers use this sort of feedback to determine how to prioritize their work; your bug report is the difference between a function being at the front of the queue for optimization and it being #1937 in the queue.
  2. As has been hinted, integer accumulation is complicated by overflow concerns, but if it would be useful to have an optimized function for a specific case provided by the vDSP library, please file a bug report to request such a function (noticing a pattern?). Library writers are not psychic, and do not write functions that are not requested. Be sure to explain how you would use such a function--given this information, they may come up with a slightly different function that is even more useful to you.
  3. If you decide to write some NEON code yourself, you will want to make use of the vaddw_u8( ) intrinsic.
查看更多
登录 后发表回答