metal分析是什么意思_Metal框架详细解析(一)—— 基本概览

版本记录

版本号

时间

V1.0

2017.10.05

前言

很多做视频和图像的,相信对这个框架都不是很陌生,它渲染高级3D图形,并使用GPU执行数据并行计算。接下来的几篇我们就详细的解析这个框架。

Metal是什么?

Metal 是一个和 OpenGL ES 类似的面向底层的图形编程接口,通过使用相关的 api 可以直接操作 GPU。

注意:Metal只针对苹果的平台系统使用,不像OpenGL ES 那样可以进行跨平台使用但是它能最大的挖掘苹果移动设备的 GPU 能力,进行复杂的运算,像 Unity 等游戏引擎都通过 Metal 对 3D 能力进行了优化。

下面看一下Metal在苹果软硬件框架里面的架构。

UIKit -> Core Graphics -> Metal/OpenGL ES -> GPU Driver -> GPU

Metal根据不同的 CommandBufferEncoder 可以提供不同的能力,除了优秀的 3D 渲染能力,Metal 还能提供强大的计算能力。

在 WWDC 2015,苹果发布了 Metal Performance Shaders (MPS) 框架,iOS 9 上的一组高性能的图像滤镜,其实就是边写好的 Shaders,提供了优秀的图像处理能力。同时还提供了高性能的矩阵运算的 Shaders ,能用来做机器学习的运算,在 GPU 上运行卷积神经网络。

Metal的特点

下面看一下Metal的特点:

GPU 支持的 3D 渲染

和 CPU 并行处理数据 (深度学习)

提供低功耗接口

与 CPU 共享资源内存

其实这个我们在平时图像和视频渲染的时候,都需要对每一帧像素进行很多的浮点型运算,这个运算其实CPU个GPU都可以做,但是GPU处理起来更有优势,如果给CPU处理会很耗性能。通过有效的利用 GPU,可以成百倍甚至上千倍地提高手机上的图像渲染能力。如果不是基于 GPU 的处理,手机上实时高清视频滤镜是不现实,甚至不可能的。

基本架构

下面看一下该框架的基本信息。

Metal包括Metal framework,MetalKit framework,Metal shading language和Metal standard library。 您可以使用Metal来获取对图形处理单元(GPU)的低级和低开销访问,从而最大限度地提高图形和计算应用的潜力。

下面我们就看一下这个框架的基本架构。

框架结构解析

下面我们就详细的看一下这个框架的结构。

1. First Steps

2. Fundamentals

Fundamental Components

与GPU交互,并了解如何存储,组织和处理你的app数据。

3. Compute

Compute Processing

执行GPU上的计算处理工作负载,例如用于精密科学计算。

4. Graphics

Graphics Rendering

在GPU上执行图形渲染工作负载,例如高端3D游戏中使用的图形渲染工作负载。

5. Displays

Display Management

显示屏幕上的Metal内容,无论是通过图形渲染还是计算处理操作创建。

6. Tools

Tools, Profiling, and Debugging

使用Metal API,Xcode和Instruments工具有效地配置和调试应用程序。

7. Sample Code

通过以下介绍性课程和指导实例,了解如何开发Metal应用程序。

通过使用Metal功能有效地了解如何实现高级技术。

8. Classes

9. Related Documentation

后记

未完,待续~~~