Hexagon_SDK版本:3.5.2
测试用机型:高通sm8150
对比downscaleBy2算法的耗时
参考官方示例:E:\Qualcomm\Hexagon_SDK\3.5.2\examples\common\downscaleBy2
参考官方文档:file:///E:/Qualcomm/Hexagon_SDK/3.5.2/docs/FastCV/Image%20Downscale.html
官方示例里有asm汇编的实现,但是本人不会汇编,也不打算写汇编,所以省略了汇编代码耗时的比较。
说明:plain C在CPU/DSP端都是能直接run的,不需要改动核心源码,所以会在以下几个维度的测试耗时
在CPU上plain C耗时
在DSP上plain C/intrinsics DSP/intrinsics HVX耗时
在DSP上单线程与多线程耗时
以下是最终统计的结果:
结论:
- 同一套plain C代码,DSP比CPU约慢10倍(3.52 vs 38.13);
- 使用DSP intrinsics,DSP也比CPU约慢4倍(3.52 vs 13.56);
- 使用HVX intrinsics,比CPU约快1倍(3.52 vs 1.43);
- DSP多线程比单线程约快一倍(因为底层DSP硬件支持2个线程);
建议:
跳过DSP intrinsics,直接上HVX intrinsics指令集。