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 frameworkMetalKit frameworkMetal shading languageMetal standard library。 您可以使用Metal來獲取對圖形處理單元(GPU)的低級和低開銷訪問,從而最大限度地提高圖形和計算應用的潛力。

下面我們就看一下這個框架的基本架構。


框架結構解析

下面我們就詳細的看一下這個框架的結構。

1. First Steps

2. Fundamentals

3. Compute

  • Compute Processing
    • 執行GPU上的計算處理工作負載,例如用于精密科學計算。

4. Graphics

  • Graphics Rendering
    • 在GPU上執行圖形渲染工作負載,例如高端3D游戲中使用的圖形渲染工作負載。

5. Displays

  • Display Management
    • 顯示屏幕上的Metal內容,無論是通過圖形渲染還是計算處理操作創建。

6. Tools

7. Sample Code

  • Fundamental Lessons

    • 通過以下介紹性課程和指導實例,了解如何開發Metal應用程序。
  • Advanced Techniques

    • 通過使用Metal功能有效地了解如何實現高級技術。

8. Classes

9. Related Documentation

后記

未完,待續~~~

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容