使用 Metal API 的應用程式和遊戲以 Apple Silicon GPU 的特定功能為目標,M3 和 A17 Pro 的平行處理能力得到了顯著提升,使其性能更上一層樓。蘋果公司發佈了關於這些新的 Apple Silicon GPU 功能的開發者講座,詳細介紹了實現改進效果的具體過程。介紹了大量技術細節,但也提供了足夠的基本解釋。
使用 Metal API 建構應用程式的開發者無需對其應用程式做任何修改,就能看到 M3 和 A17 Pro 的性能提升。這些晶片組利用動態快取、硬體加速光線追蹤和硬體加速網格對應技術,使 GPU 的性能空前提高。
動態著色器核心記憶體
新一代著色器核心讓動態快取成為可能。利用 A17 Pro 和 M3 中的最新 GPU 核心,這些著色器可以比以前更高效地平行運行,從而大幅提高輸出性能。
通常情況下,GPU 只能根據一個已執行動作中頻寬最高的處理程序來分配暫存器記憶體,並持續該動作。因此,如果一個動作的某個部分比其他部分需要更多的暫存器記憶體,那麼該動作的某個處理程序就會佔用更多的暫存器記憶體。
動態快取記憶體允許 GPU 為其正在執行的每個操作精確分配適量的暫存器記憶體。以前不可用的暫存器記憶體被釋放出來,從而可以平行執行更多的著色器任務。
靈活的on-chip memory
以前,on-chip memory會為暫存器、執行緒組和帶有緩衝快取的磁貼記憶體分配固定的記憶體。這意味著,如果某項操作使用的記憶體類型多於另一種,就會有很大一部分記憶體被閒置。
有了靈活的on-chip memory,所有記憶體都是快取,可用於任何記憶體類型。因此,嚴重依賴執行緒組記憶體的操作可以利用整個片上記憶體,甚至溢出到主記憶體中。
著色器核心可動態調整記憶體佔用率,以最大限度地提高性能。這意味著開發人員可以花更少的時間來最佳化佔用率。
著色器核心的高性能 ALU 管線
Apple 建議開發人員在程式中執行 FP16 數學運算,但高性能 ALU 可平行執行整數、FP32 和 FP16 的不同組合。指令在平行執行的不同操作中執行,這意味著 ALU 利用率會隨著佔用率的提高而提高。
基本上,如果不同的操作包含相同的 FP32 或 FP16 指令,而這些指令將在不同的時間點執行,則可以重疊執行以提高平行性。
硬體加速圖形流水線
硬體加速的光線追蹤可將重要的交點計算從 GPU 功能中移除,從而大大加快處理速度。由於部分計算由硬體完成,因此可以平行進行更多操作,從而通過硬體元件加速光線追蹤。
硬體加速網格著色採用了類似的方法。它將幾何計算流水線的中間部分交給一個專用單元,從而實現更多平行操作。
這些都是複雜的系統,不是幾段文字就能說清楚的。建議大家觀看官方影片《Explore GPU advancements in M3 and A17 Pro》瞭解所有細節,並牢記一點--A17 Pro 和 M3 專注於計算平行性,以加快任務執行速度。
https://developer.apple.com/videos/play/tech-talks/111375?time=39
M3 可用於 MacBook Pro 和 24 英吋 iMac。A17 Pro 可用於 iPhone 15 Pro。
請注意!留言要自負法律責任,相關案例層出不窮,請慎重發文!