iPhone 和 iPad 使用的 GPU一直都是 Imagination Technologies 供應(yīng)的 PowerVR GPU,蘋果甚至擁有該供應(yīng)商 10% 的股份,為后者創(chuàng)造了大約 30% 的營收。曾經(jīng)蘋果在移動設(shè)備上使用的 ARM CPU,不過他們現(xiàn)在都已經(jīng)自己設(shè)計移動處理器,因此行業(yè)認(rèn)為蘋果已經(jīng)逐漸從 PowerVR 授權(quán)轉(zhuǎn)變?yōu)樵O(shè)計定制 GPU。在 iPhone 6 的 A8 處理器中我們可以看到蘋果的定制 GPU,iPhone 6s 和 iPhone 7 中 A9 和 A10 Fusion 處理器也使用了定制 GPU。
iPhone 和 iPad 中使用的現(xiàn)代 GPU 需要三個重要組成部分協(xié)調(diào)工作才能渲染一個場景。第一個是固定功能圖形硬件,其主要負(fù)責(zé)的任務(wù)包括處理 API 指令、三角光柵以及光柵輸出。第二個是渲染核心,它相當(dāng)于 GPU 的心臟,執(zhí)行可編程著色(Programmable Shaders)任務(wù)。最后一個是顯卡驅(qū)動器——在 CPU 上運行的軟件,它將所有東西緊密結(jié)合在一起,協(xié)調(diào) GPU 上的活動。驅(qū)動器將寫在 Metal 或 OpenGL ES API 中的圖形應(yīng)用轉(zhuǎn)化成一系列指令,以便固定功能圖形硬件和執(zhí)行可編程著色在渲染核心上執(zhí)行這些指令。驅(qū)動器上最大的部件就是編譯器,它能夠生成可在渲染核心上運行的機器代碼。
以前蘋果使用的固定功能圖形硬件、渲染核心和驅(qū)動器均是由 Imagination Technologies 授權(quán)的。但是過去 6-7 年蘋果公司從 AMD、英特爾、谷歌和英偉達(dá)等公司挖走了大量顯卡工程師和驅(qū)動器、編譯器工程師,以設(shè)計定制 GPU。比如此前有消息稱今年早些時候蘋果公司從 Imagination Technologies 公司挖走了大約 25 名工程師。蘋果的 GPU 顯然還在使用 PowerVR 的部分固定功能圖形硬件。但是從目前曝光的各種整合看來,蘋果已經(jīng)在 GPU 中使用他們自己開發(fā)的可編程著色核心,它的效率更高、性能也更強。
如果想要充分發(fā)揮定制渲染核心的優(yōu)勢,那么蘋果必須自己開發(fā)驅(qū)動器和編譯器,以生成適合其架構(gòu)的代碼。結(jié)果就是蘋果的 GPU 和 PowerVR 會有一些相似點。不過它的設(shè)計非常獨特,是世界級的設(shè)計,性能和功率都很強。從移動顯卡跑分來看,A9 處理器可以說幾乎每個方面都拿到了最高分,而 A10 Fusion 在這個基礎(chǔ)上又更快,為 40-50%。
到目前蘋果 GPU 架構(gòu)都沒有比較詳盡的文字記錄,為了讓開發(fā)者可以充分利用這個 GPU,他們需要了解如何針對 Metal 和 OpenGL 編譯器來編寫著色器程序。在 2016 年 WWDC 大會上,蘋果公司工程師進(jìn)行了一場名為“Advanced Metal Shader Optimization”的演示,其中就有關(guān)于最新定制 GPU 的詳細(xì)調(diào)優(yōu)指南以及架構(gòu)細(xì)節(jié)。PowerVR Series 6 GPU 架構(gòu)的相關(guān)文字介紹也很少,不過 Imagination Technologies 公開過一些基本的編譯器和優(yōu)化指南。通過對比這兩者我們可以發(fā)現(xiàn)它們之間的差別很大。特別是蘋果的寄存器文件和數(shù)據(jù)轉(zhuǎn)換功能更適于提升性能和效能,也是一個更簡單的編譯器目標(biāo)。
蘋果用更小的寄存器來提升性能和效能
OpenGL ES 移動顯卡 API 和蘋果的 Metal API 支持圖像數(shù)據(jù)和計算的 16 位半精度浮點格式,與 32 位單精度計算相比,它能耗更少。在某些情況下,半精度計算會比單精度計算更快失去準(zhǔn)確度。但是對于很多顯卡、圖像處理和機器學(xué)習(xí)負(fù)載來說,半精度計算足以得到正確的結(jié)果——特別是大部分屏幕的每像素動態(tài)范圍只是 8-12 位。
根據(jù)蘋果工程師的演示我們了解到,蘋果 GPU 的寄存器文件主要由 16 位寄存器組成——非常適合半精度數(shù)據(jù)。單精度浮點值和其他 32 位數(shù)據(jù)需要兩個寄存器。因此寄存器文件可以保存的 16 位寄存器是 32 位寄存器的兩倍。蘋果工程師強調(diào)與單精度相比,半精度的性能和能效更強,這也就說明半精度是蘋果的首要設(shè)計點。
相比之下 PowerVR Series 6 和 7 GPU 使用 32 位寄存器,是針對單精度計算設(shè)計的。在 Series 6 中,最常見的指令比如 FMAD、FMUL 和 FADD 都是在單精度數(shù)據(jù)上運行的。有些指令是在一個寄存器的兩個 16 位 SIMD 元素上執(zhí)行的,但是 SIMD 執(zhí)行指令和使用 16 位寄存器進(jìn)行標(biāo)量執(zhí)行更是不同的。于 PowerVR 而言,以 16 位格式存儲數(shù)據(jù)會浪費寄存器部分空間,而且也不能自動將變量的數(shù)目變成雙倍,以在寄存器文件中使用。因此使用 16 位數(shù)據(jù)可以減少內(nèi)存帶寬和能耗,但是不能像蘋果 GPU 那樣強化性能或者提高效能。
16 位數(shù)據(jù)一個常見的難題是雖然精度降低,大部分計算還是沒有問題的,但有時候有些計算需要更大的精度。比如,著色器計算大像素塊的顏色,然后計算平均值時,它可以針對單個像素使用 16 位數(shù)據(jù),但是求總和時卻需要 32 位數(shù)據(jù)。如果將像素數(shù)據(jù)從 16 位轉(zhuǎn)換到 32 位,成本太高,整個著色器會使用 32 位數(shù)據(jù)去計算出正確的答案。
蘋果的 GPU 支持在不同數(shù)據(jù)類型之間轉(zhuǎn)換進(jìn)行混合精度計算,為更高性能和低能耗的 16 位計算創(chuàng)造更多機會。從蘋果公司的演示來看,數(shù)據(jù)類型的轉(zhuǎn)換非常自由,也就說轉(zhuǎn)換硬件是在標(biāo)準(zhǔn)數(shù)據(jù)路徑之中。雖然從硬件的角度來說這種解決方案成本更高,但是它大大簡化了編譯器,程序員也可以更容易地寫出好的軟件。
PowerVR Series 6 和 7 可以轉(zhuǎn)換不同精度的數(shù)據(jù)類型,但是這種轉(zhuǎn)換不是自由的。他們指出這種數(shù)據(jù)轉(zhuǎn)換會產(chǎn)生成本,因此建議開發(fā)者編寫著色器程序是能夠盡量減小需要轉(zhuǎn)換的次數(shù)。
蘋果定制GPU的技術(shù)差別
蘋果和 Imagination GPU 的寄存文件和數(shù)據(jù)轉(zhuǎn)換之間的差別很大。寄存文件組織對于渲染核心來說是最基礎(chǔ)的,它影響到所有東西的設(shè)計,從渲染核心指令集架構(gòu)到執(zhí)行單元和時序邏輯。比如,寄存器大小決定數(shù)據(jù)路徑和渲染核心中的線路。數(shù)據(jù)轉(zhuǎn)換并沒有什么重大影響,但是對于編譯器和開發(fā)者來說就不一樣了。PowerVR Series 7 GPU 與它的上一代相比,只要使用 32 位寄存器。根據(jù)這些差別,我們可以得出一個比較符合邏輯的結(jié)論,蘋果的 GPU 使用的是他們內(nèi)部自己設(shè)計的渲染核心,也就是說蘋果也自己為 OpenGL ES 和 Metal API 開發(fā)自主著色程序編譯器,而且很有可能還有自主顯卡驅(qū)動器。
有些跑分測試已經(jīng)發(fā)現(xiàn)了這些端倪。GFXBench 跑分出現(xiàn)的結(jié)果直接將 iPhone 7 中的 GPU 命名為 G9。通過對比直接測試 Metal 和 PowerVR GPU 的 OpenGL ES 的著色器的結(jié)果,你就能發(fā)現(xiàn)蘋果 GPU 和 PowerVR 之間的很多不同。也有可能是 Metal 上有一些獨特的特性并不適合使用在 PowerVR GPU 上。但是其中的一些不同可能沒法突出不同的硬件選擇。比如蘋果 GPU 最高支持 OpenGL ES 3.0,而 PowerVR GPU 則能支持最新版本。不過這些不同主要是因為軟件和驅(qū)動器,而不是因為硬件。
自主設(shè)計的戰(zhàn)略優(yōu)勢
在消費者電子行業(yè),蘋果的垂直整合戰(zhàn)略顯得非常特別。在 iPhone 和 iPad 上蘋果可以說是掌握了一切——從基本的線路設(shè)計、處理器、操作系統(tǒng)到面向消費者的服務(wù),比如地圖、 iMessage 和相機等。這些控制和整合讓蘋果的軟件和硬件團隊獲得一些其他競爭對手無法企及的優(yōu)勢。
從第一代 iPhone 發(fā)布到現(xiàn)在,總體趨勢非常明顯——每走一步蘋果對平臺和生態(tài)系統(tǒng)的控制就更嚴(yán)格。起初蘋果使用的是標(biāo)準(zhǔn)的 ARM CPU,而且將大部分訂單外包給三星,但最終他們自主設(shè)計兼容 ARMv8 的 CPU 核心,性能遠(yuǎn)遠(yuǎn)優(yōu)于競爭對手。同樣地蘋果收購了 Anobit 利用他們的團隊和技術(shù),為 iPhone 和 iPad 閃存自主開發(fā)控制存儲器。對于蘋果來說,設(shè)計定制 GPU 將會是順理成章的一步,從而創(chuàng)造持續(xù)性戰(zhàn)略優(yōu)勢。
最明顯的優(yōu)勢之一就是蘋果的 GPU 比移動行業(yè)中競爭對手的更好,包括 ARM 或 Imagination 授權(quán)的 GPU,也比高通的更好。強大的性能將能帶來更好的用戶體驗,以及更長的游戲續(xù)航,圖形和機器學(xué)習(xí)應(yīng)用體驗也更好。
蘋果的 Metal Performance Shaders 庫中包括十幾個高度優(yōu)化的著色器,給開發(fā)者帶來豐富的工具集。這些著色器包括神經(jīng)網(wǎng)絡(luò)分類,比如卷積、池化和修整線性單元層。Metal Performance Shaders 庫中還有處理內(nèi)核,比如通過Lanczos 重采樣算法來重新調(diào)整圖片大小,相比圖形線性采樣,這種算法能夠生成更高質(zhì)量的圖像。比如 Instagram 利用蘋果的 GPU 進(jìn)行色調(diào)映射和本地對比強化,甚至蘋果相機應(yīng)用可以利用 GPU 生成各種不同圖像效果。對于成像和神經(jīng)網(wǎng)絡(luò),半精度計算堪稱良配。相比 PowerVR 的渲染核心,蘋果的著色器架構(gòu)能給這些應(yīng)用提供更好的性能和效能。
第二個好處是蘋果可以在 GPU 中增加新的特性,修復(fù)漏洞,而他們的競爭對手是無法享受到這些好處的。另一方面,有了標(biāo)準(zhǔn)第三方 IP,任何時候蘋果修復(fù)漏洞或者需要新的特性,那么 Imagination Technology 客戶如三星、Mediatek 等也很快就能獲得這些好處。
第三個好處是上市時間和調(diào)度。蘋果 A 系列處理器就是根據(jù) iPhone 一年一更新的節(jié)奏而每年都更新。因為 iPhone 是一款非常重要的產(chǎn)品,蘋果必須給顧客提供強大的性能,以及明顯的代間升級以刺激需求,因此蘋果一般都會帶來最新的處理技術(shù),當(dāng)然這其中也包含著巨大的風(fēng)險。只要可以自主開發(fā) GPU,蘋果就可以選擇投資必要的時間和資源去開發(fā),以便趕上芯片發(fā)布的時間,相比之下 Imagination 就沒有那么強大的財力和豐富的人力資源。
蘋果如果想要一炮打響自己的 GPU 品牌,那么他們就必須在設(shè)計、監(jiān)管、量產(chǎn)以及總的軟件生態(tài)系統(tǒng)間進(jìn)行協(xié)調(diào)。在新品正式發(fā)布前,他們需要發(fā)現(xiàn)和修復(fù)漏洞,升級圖形硬件和軟件。因為 GPU 設(shè)計大多是自主完成,蘋果可以對其更新循環(huán)進(jìn)行直接控制,減少對外界的依賴,從而可以確保新品按時發(fā)布上市。
假設(shè)蘋果工程師在渲染核心中發(fā)現(xiàn)了一個嚴(yán)重的邏輯錯誤,他們可以當(dāng)天修復(fù),然后再尋找解決方案。如果使用第三方 IP,那么在遇到問題時 IP 供應(yīng)商必須首先考慮如何解決,同意蘋果的解決方案,這可能就需要花一點時間了,因為 IP 供應(yīng)商還需要協(xié)調(diào)他們的其他客戶。三星的 Exynos 5410 就是一個很好的例子,它同時使用 ARM 的 Cortex A15 和 A7 核心,其中的一個一致性錯誤迫使三星不得不禁用它的節(jié)能功能。自主設(shè)計就可以大大降低這種風(fēng)險,因為其中不存在利益競爭,而且公司之內(nèi)交流解決方案總比和第三方交流方便。
最后一個好處就是可以減少對供應(yīng)商的依賴,這樣蘋果在談判中將能占據(jù)更有利的位置,降低商業(yè)風(fēng)險。在重要供應(yīng)商之外再給自己找一家供應(yīng)商,對于蘋果來說這簡直是鐵律。就如今年,以前一直只用高通 LTE 調(diào)制解調(diào)器的他們,突然就把英特爾也納入供應(yīng)商名單之中。從長遠(yuǎn)角度來說,這種做法能讓進(jìn)一步壓低成本,也給他們創(chuàng)造更多機會。
其實蘋果目前已經(jīng)組建了 GPU 設(shè)計團隊和驅(qū)動器團隊,A8、A9 和 A10 中的 GPU 有很大一部分都是這些團隊參與設(shè)計的。如果 Imagination Technologies 被收購了或者是技術(shù)趕不上行業(yè)發(fā)展水平,那么蘋果只要再自主設(shè)計固定供應(yīng)顯卡硬件,替代 PowerVR IP 即可。
蘋果下一步怎么走
未來蘋果將有三種選擇。目前是由 Imagination Technologies 授權(quán)以使用他們的固定圖形硬件,以補充蘋果自主設(shè)計的部件,比如渲染核心。這種情況下,蘋果可能最終會升級到更新的 PowerVR。第二種是買下 Imagination Technologies,不過這么一場收購會帶來一些蘋果并不需要的東西(比如 MIPS 處理器產(chǎn)品線),在今年早些時候已經(jīng)排除了收購的可能性。另一方面,蘋果可以從更大程度上定制他們的 GPU——直到超過 Imagination Technologies。最終蘋果就要確定自己是否足以設(shè)計出更好的 GPU,不再需要任何合作伙伴,從蘋果開發(fā) A 系列處理器的歷史來看,他們還是有可能在這個新的領(lǐng)域獲得成功的。