首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么SNPE非常慢?

为什么SNPE非常慢?
EN

Stack Overflow用户
提问于 2019-09-16 19:54:33
回答 1查看 1.1K关注 0票数 1

我在这里尝试了高通提供的例子:

https://github.com/globaledgesoft/deeplabv3-application-using-neural-processing-sdk

https://github.com/globaledgesoft/deeplabv3-application-using-neural-processing-sdk/blob/master/AndroidApplication/app/src/main/java/com/qdn/segmentation/tasks/SegmentImageTask.java

它说,在GPU16上需要31ms才能完成这段代码:

代码语言:javascript
复制
// [31ms on GPU16, 50ms on GPU] execute the inference

            outputs = mNeuralnetwork.execute(mInputTensorsMap);

对于我来说,同样的例子需要14秒。我正在使用open-q 845 hdk开发工具包.

我问我的教授,他说我正在安装的应用程序不受开发工具包固件的信任,这就是为什么我需要这么多时间来执行。他建议我用我的应用程序作为系统应用程序来重建固件。还有什么其他原因吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-19 12:49:28

是的,这很让人困惑,我遇到了同样的问题。我注意到的是,在我的设备上,ResizeBilinear_2和ArgMax至少要花费大量的时间。如果禁用CPU回退,您将看到ResizeBilinear_2实际上是不受支持的,因为在deeplab实现中他们使用了align_corner=true。

如果你选择ResizeBilinear_1作为输出层,那么推理时间就会有一个很大的改善,因为你没有双线性调整层和argmax,这需要你自己去实现。

但是即使在那时,使用gpu I也只能达到200 ms的运行时。使用DSP,我确实获得了大约100毫秒。

还请确保您的工具包中有opencl支持,否则gpu运行时将无法运行afaik。

附带注意:我目前还在用deeplab + snpe测试一些东西。我注意到,比较这个和TFLITE委托在输出上有一些不同。虽然SNPE的速度通常是SNPE的两倍,但也存在大量的分割伪影错误,导致模型不可用。看看这个https://developer.qualcomm.com/forum/qdn-forums/software/snapdragon-neural-processing-engine-sdk/34844

到目前为止,我发现,如果你把输出步幅降到16,你不仅会得到两倍的推理速度,而且说的工件似乎不那么明显。当然,这样做会失去一些准确性。祝好运!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57963584

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档