当前位置:   article > 正文

深入理解iOS GPU加速框架Metal及MPS_mps framework

mps framework

     iOS的Metal框架是一个类似OpenGL的框架,通过编写shaders(类c代码)运行在GPU上,利用GPU的高并行能力执行并行操作,比如图像处理,卷积神经网络。而MPS就是一套基于Metal框架的库,用户不需要理解Metal的细节,直接调用这些库即可使用高性能处理能力。同时针对卷积神经网络,官方已经提供了MPSCnn库,开发人员可以直接使用该库组件神经网络即可以在移动端iPhone执行神经网络模型,比如图片识别,速度是杠杠的,很多年前,作者曾经利用该库和自己自定义的一些算子实现了实时图片风格化,人物自动抠图等功能,在iPhone上FPS能达到50fps,可见这性能有多好。接下来我们来详细分析下Metal框架及MPS。

OpenGLES

    由于Metal和OpenGLES类似,我们先介绍大家更加熟悉的OpenGL

 

 

这个图里开发者需要重点了解3个模块

 

 

  • 顶点着色器

        开发者用来自定义顶点信息(坐标和颜色),是一段代码。Vertex shader就是调整顶点信息,比如透视图变换,Camera位置调整。有多少个顶点就会调用多少次,如果顶点较少,这里执行较慢的话,性能影响不大。

  • 栅格化

    • 简单来说,比如你告诉GL我想画条线,然后告诉它线的端点坐标是(0,0)和(0,100),那么GL自动脑补出中间100个点的坐标,这个过程就叫栅格化(光栅化),脑补的方法叫线性差值.
    • 复杂点,现在我要画个三角形,给他三个顶点的坐标,它会计算这个三角形里面的所有像素坐标。
    • 再复杂点,不仅仅给顶点坐标,还告诉他(0, 0)坐标点是白色,(0,100)点是黑色,那么栅格化就自动计算出中间100个点每个点的颜色,自动做过渡的效果,  这个计算方法还是线性差值。
  • 片段着色器

        开发者根据栅格化出来的具体位置信息用来

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/703677
推荐阅读
相关标签
  

闽ICP备14008679号