寫在最前
因爲華爲項目的原因,最近開始瞭解Arm 的 GPU,也就是Mali。Mali的主要架構有兩個,上一代架構是Midgard,新一代架構是Bifrost,這兩個名字均出自北歐神話,一個是人間,一個是連接人間和神域的彩虹橋。這裏主要介紹最近架構Bifrost的架構。
整體架構
下圖就是Bifrost架構,Shader Core就相當於NVIDIA的SM,與NVIDIA不同的是,Mali的核心是可配置的,生產商可以根據需求自行設計自己的核數。同樣的,各個core共享L2 cache,通過一個類似總線的GPU Fabric相連。
Shader Core架構
對於每個Shader Core的架構如下。其中Execution Engine(以下簡寫爲EE)就類似NVIDIA的SP,但是不同的是,每個核中的EE數量很少。
主要單元有:
-
Load/store unit
用於處理所有的內存的讀寫(除了紋理內存),包括16KB L1 data cache.
-
Varying unit
這是一個專門爲運算單元加速的單元。
-
Texture unit
這個單元是用來訪問紋理內存的。
-
ZS & blend unit
適用於某些特定的OpenGL ES的操作。
Execution Engine
下圖就是主要的架構,每個計算單元能夠承載4個線程(在G76中可以承載8個線程)操作,也就是說對於mali GPU的warp大小是變化的,這warp對於內存還有什麼調度都是相同的。