带你读《2022技术人的百宝黑皮书》——MNN 2.0 发布 ——移动端推理引擎到通用深度学习引擎(10) https://developer.aliyun.com/article/1248026?groupCode=taobaotech
汇编优化与GPU内核优化
为了降低读写冗余,MNN 在 CPU 的汇编代码中做最大数目的循环展开,并手排指令减少相依数据依赖
调度
MNN 的预推理模块可以较好地降低调度冗余,我们把算子的执行拆分为 onResize 和 onExecute 两个部分,在预推理过程中执行 onResize ,在推理过程中执行 onExecute ,视各类GPU的API设计不同,可以不同程度地降低调度冗余。
1. 对于 OpenCL ,可以减少 Kernel 参数的设定,将计算资源的申请转移到预推理过程中
2. 对于 Metal ,可进一步降低命令提交频率
3. 对于 Vulkan ,可进一步把命令缓冲的创建全部转移到预推理中,最小化调度冗余
带你读《2022技术人的百宝黑皮书》——MNN 2.0 发布 ——移动端推理引擎到通用深度学习引擎(12) https://developer.aliyun.com/article/1248024?groupCode=taobaotech