【Android-NCNN-Vulkan】ncnn-vulkan load param model 速度慢
生活随笔
收集整理的這篇文章主要介紹了
【Android-NCNN-Vulkan】ncnn-vulkan load param model 速度慢
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
模型作用:人臉檢測,人臉關鍵點檢測
模型:fd.param?fd.model,fl.param fl.model
設備1:ARM A53 2.0GHz,?IMG GE 8300
OnePlus6T :Snapdragon 845, Adreno 630
| ? | FD Param? | FD Model | FL Param | FL Model |
| size | 10kb | 509.6kb | 46kb | 2.5mb |
| ? | FD Param? | FD Model | FL Param | FL Model |
| 設備1(FD-CPU & FL-CPU)? | 1.6ms | 17.1ms? | 5.0ms | 10.0ms |
| 設備1(FD-GPU & FL-GPU)? | 32.7s | 56.1s | 32.6s | 83.4s |
| OnePlus6T(FD-CPU & FL-CPU) | 3.8ms | 21.3ms | 6.5ms | 22.8ms |
| OnePlus6T(FD-GPU & FL-GPU) | 4.8s | 13.3s | 4.9s | 19.7s |
Load Param/Model 高耗時問題,主要有兩個操作
- 代碼定位pipeline.cpp 469行:
- 代碼定位pipeline.cpp 98行:
- 關于?vkCreateComputePipelines 的操作
- 目前該操作占據運算時間45%
- 且在create pipeline過程中調用次數非常多,本身耗時在設備1上超過10ms
- 如何優化該函數?
- 關于?resolve_shader_info(在線編譯)的操作
- 目前該操作占據運算時間45%
- 優化方案一:采用shader的離線編譯,OnePlus6T上顯示能夠提升5倍的速度;
- 優化方案二:在離線基礎上,計劃通過刪除沒有用到的shader來加快pipeline的創建;
- 優化方案三:加入pipecache機制,同比之前 load param 降低 8s,load model降低50-80s,pipeline cache效果很明顯
- 單獨Load FL model (GPU)
- ?Load FD(GPU) & FL(GPU)
- ?Load FD(CPU) & FL(CPU)?
總結
以上是生活随笔為你收集整理的【Android-NCNN-Vulkan】ncnn-vulkan load param model 速度慢的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 五分钟学编程:当初我要是这么学习操作系统
- 下一篇: prefect 新的开源工作流管理系统