本系列文章是對 metalkit.org 上面MetalKit內容的全面翻譯和學習.
當九月份採用A11
的新機型(8,8Plus和X)釋出時,一個新的GPU Family 4
網頁也釋出了,同時還有一系列標籤為Fall 2017
的新Metal視訊釋出出來.新的A11 Bionic處理器,是第一款蘋果設計的GPU
並帶有三個核心的處理器.在內部測試狀態下,比A10
的GPU
快了30%.它還帶有一個新的神經引擎
硬體以應對機器學習.
下面是我從Metal Feature Sets文件中整理出來的一張表格.它只包括了A11
上引入的Metal 2
特性.
注意:我只列出了
A11
上出現的新特性,某些特性在macOS
上也可以使用.
讓我們簡單看下這些特性:
- Imageblocks - 這並不是一個iOS上的新概念,但是,
A11
上的Metal 2
讓我們能將imageblocks(它是在tile memory瓦片記憶體中的結構化影像資料)當做資料結構體來進行完全控制.它們是和片段著色器,計算著色器整合在一起的. - Tile Shading - 它是一種渲染技術,能允許片段著色器和計算著色器訪問兩個渲染語句之間的持久化的Tile memory瓦片記憶體.Tile memory是GPU上的晶片記憶體,通過在本地儲存中間結果而不必使用裝置記憶體,來改善效能.一個語句的瓦片記憶體可以被後面語句訪問.
- Raster Order Groups - 提供來自片段著色器的順序記憶體訪問和便利特性,例如順序無關的透明度,雙層G緩衝器,以及體素化.
- Imageblock Sample Coverage Control - A11上的Metal 2追蹤每個畫素的惟一取樣數,在新幾何體被渲染時更新這個資訊.這樣當被覆蓋的取樣顏色相同時,一個畫素混合迭代會更少,相比A10或更早的GPU.
- Threadgroup Sharing - 允許多個執行緒組及一個執行緒組內的各執行緒使用原子操作或一個記憶體柵欄來互相通訊,而無需多個記憶體柵欄.
與Metal
釋出的同時,Face Tracking with ARKit 視訊和Creating Face-Based AR Experiences網頁也被髮布出來了.Face Tracking
,目前只能在iPhone X
上使用,因為當前只有它擁有TrueDepth
前置攝像頭.我們在九月釋出會的keynote上看到的最直接運用面部追蹤的應用就是Animoji了.全新的Neural Engine神經引擎
硬體負責處理FaceID
和Animoji
,還有其它機器學習任務.
因為我最近購買了iPhone X
,可能接下來會寫幾篇Using ARKit with Metal
系列文章.
下次見!