在本文中,我們將從三個方面介紹人工智能系統中使用的核心處理器體系結構的最常見選擇:標量、向量和空間。對于每種情況,我們都將對其性能特征和優化算法的類型進行一些概括。在后面的文章中,我們將更深入地討論它們是如何實現的,以及它們在不同類型的AI工作負載上的性能。
Flynn分類法
如果沒有相當流行的“Flynn分類法”,任何對處理器架構的闡述都是不完整的,因為命名法很常見。它的初衷是描述一臺哈佛架構計算機如何攝取指令和數據流,并且盡可能在這種情況下最有意義。盡管如此,現代處理器通常比其他處理器更接近于一種特性,因此我們經常用這種方式來指代它們,但我們應該注意,假設任何現代處理器都完全符合其中一種類型,那將是一個嚴重的過度簡化。這里介紹的是一種比較開放的稍微現代一些的分類法。
SISD:單指令單數據
最簡單的CPU形式適合這一類。CPU的每個循環攝取指令和數據元素并處理它們以便修改全局狀態。這個概念是計算機科學的基礎,因此大多數編程語言都編譯成一組針對這種架構的指令。大多數現代CPU也模擬SISD操作,盡管軟件和硬件中可能會用到非常不同的概念。
SIMD:單指令多數據
最簡單的SIMD架構是矢量處理器,類似于具有更寬數據類型的SISD架構,因此每條指令在多個連續數據元素上運行。稍微復雜的是線程并行性,其中單個指令在多個線程狀態上操作,這是更通用的編程模型。
MISD:多指令單數據
對于什么是錯誤處理程序沒有普遍的共識,所以我在這里將不做限制。考慮一個架構,它能夠在單個數據輸入上以單個周期的順序執行多個任意指令。這基本上需要從輸出到輸入進行多路復用,而不存儲中間結果。稍后,我們將看到這種高級體系結構的優點。
MIMD:多指令多數據
我再次不設限地說,一個非常長的指令字(VLIW)處理器最適合這個類別。這種處理器的目的是公開一個更精確地適合處理器可用資源的編程模型。VLIW指令能夠同時向所有執行單元發送數據,這通過指令級并行(ILP)具有很大的性能優勢,但編譯器必須具有體系結構感知能力并執行所有調度優化。一般來說,這被證實具有挑戰性。
標量(CPUs):混合性能
現代CPU是一個非常復雜的系統,旨在很好地完成各種任務。它的元素涵蓋了Flynn的每一類分類。您當然可以將其編程為SISD機器,它將為您提供輸出,就好像程序是按照您給出的順序計算的一樣。但是,每個CISC指令通常被轉換為多個RISC指令鏈,以便在單個數據元素(MISD)上執行。它還將查看您提供的所有指令和數據,并將它們并行排列以便在許多不同的執行單元(MIMD)上執行數據。還有許多操作,例如在AVX指令集中,對許多并行對齊的數據元素(SIMD)執行相同的計算。此外,由于多個內核和多個線程并行運行以在單個內核上同時使用資源,因此可以實現Flynn分類法中的幾乎任何類型的并行性。
代碼優化器
如果CPU要以簡單的SISD模式運行,從存儲器中一次一個地抓取每個指令和數據元素,那么不管頻率有多高,它都會非常慢。在現代處理器中,只有相對較小部分的管芯區域專用于實際執行算術和邏輯。其余部分專門用于預測程序接下來要做什么,并在不違反任何因果約束的情況下排列指令和數據以有效執行。也許與CPU的性能和其他體系結構相比,關系最密切的是對條件分支的處理。它不是等待解析一個分支,而是預測要朝哪個方向走,然后在出錯時完全恢復處理器狀態。在硅片上蝕刻了數百個這樣的技巧,這些技巧在各種各樣的工作負載上進行測試,在執行高度復雜的任意代碼時提供極大的優勢。
摩爾定律哲學
在我的第一份工作中,我被指派去集成一個非常昂貴的專用集成電路,這被認為是實時解碼衛星圖像所必需的。我注意到這個設計有幾年的歷史了,我做了一些計算,結果告訴我,我可以在英特爾處理器上擁有幾乎相同的計算能力。在ASIC可用之前,我用C語言編寫了該算法,并在奔騰III CPU上演示了該系統。那時候,'Dennard Scaling'的速度如此之快,以至于在一小段時間內,通用處理器的性能提升超過了對專用處理器的需求。選擇通用處理器的最大優勢可能是它易于編程,這使其成為算法開發和系統集成的首選平臺??梢詫⑺惴▋灮癁楦鼘I的處理器,但CPU已經非常擅長為您執行此操作。在我的特殊情況下,第一版衛星使用Reed-Solomon碼,但以后的設計還是考慮用Turbo碼。使用ASIC的下行鏈路站點必須更換整個系統,我們的站點將使用簡單的軟件更新和常規CPU升級。因此,您可以花時間優化代碼,也可以將時間花在創新應用程序上。摩爾定律的推論是,很快就會足夠快。
矢量(GPU和TPU):簡單和平行
在許多方面,矢量處理器是最簡單的現代體系結構:一個非常有限的計算單元,它在芯片上重復多次,以便在大量數據上執行相同的操作。這些都是第一次普及的圖形,因此術語GPU。一般來說,GPU不具備CPU為優化復雜的任意代碼所做的預測gymnastics功能,并且具體地具有僅限于支持某些類型的計算的有限指令集。GPU性能的大部分進步都是通過密度,面積,頻率和內存帶寬的基本技術擴展實現的。
GPGPU
最近有一種趨勢是擴展GPU指令集以支持通用計算。這些gp指令必須經過調整才能在simd體系結構上運行,這就暴露了一些優點和缺點,具體取決于算法。許多被編程為在CPU上作為重復循環運行的算法實際上只是在每個循環中對數組的每個相鄰數據元素執行相同的操作。通過一些程序員的努力,它們可以很容易地并行化,有時在GPU上大規模地并行化。
值得注意的是。如果任何元素上有任何條件,那么所有分支都必須在所有元素上運行。對于復雜代碼,這可能意味著計算時間相對于CPU呈指數增長。GPU具有非常寬的內存總線,可以提供出色的流數據性能,但是如果內存訪問與向量處理器元素不一致,那么每個數據元素都需要來自內存總線的單獨請求,而CPU具有非常復雜的預測緩存機制,可以大大補償這一點。
內存本身非??斓耐瑫r也非常小,并且依賴于PCIe總線上的數據訪問傳輸。在一般情況下,GPGPU算法的開發比CPU要困難得多。然而,這種挑戰在一定程度上是通過發現和優化高效的并行算法來解決的,這些算法通過統一的執行分支和對齊的內存訪問獲得相同的結果。通常,這些算法在原始操作方面效率較低,但在并行架構中執行速度更快。
AI操作
許多人工智能中流行的算法都是基于線性代數的,而參數矩陣的大規模擴展使得該領域有了很大的進步。GPU的并行性允許最基本的線性代數的大規模加速,因此它適合AI研究人員,只要它們保持在矩陣上密集線性代數的范圍內,矩陣足夠大以占據大部分處理元素,小到足以容納GPU的內存。然而,這種加速是如此之快,以至于到今天為止,在這些限制下,在深入學習方面已經取得了很大的進展。
GPU中現代開發的兩個主要推動力是Tensor Processing Unit(TPU),它們在一個周期內執行全矩陣運算,而多GPU互連則用于處理更大的網絡。我們在專用圖形的硬件架構和為AI設計的硬件之間經歷了更大的分歧。
今天,我們在專用圖形的硬件架構和為AI設計的硬件之間遇到了更大的分歧。最簡單的分歧是在精度上,AI正在開發基于低精度浮點和整數運算的技術。稍顯遲鈍的是圖形處理器用來實時呈現令人信服的復雜場景重現的快捷方式,通常使用非常專業的計算單元。因此,架構之間的相似性以兩者的最高優化級別結束。
Systolic Arrays
ASIC或FPGA可以為任何類型的計算體系結構設計,但是這里我們關注的是特定類型的體系結構,它與其他選擇有些不同,并且與人工智能相關。在諸如CPU或GPU的時鐘體系結構中,每個時鐘周期從寄存器加載數據元素,將數據移動到處理元件,等待操作完成,然后將結果存儲回寄存器以進行下一個操作。在空間數據流中,操作在處理器上物理連接,以便一旦計算結果就執行下一個操作,并且結果不存儲在寄存器中。當在處理元素本地的寄存器中包含它們自己的狀態的中等復雜單元以這種方式鏈接在一起時,我們將其稱為“Systolic Arrays”。
功耗、延遲和吞吐量
有一些直接的優勢很容易實現。在基于寄存器的處理器中,功耗主要是由寄存器之間的數據存儲和傳輸造成的。其中唯一消耗的能量是處理元素,并將數據傳輸到下一階段。另一個主要優點是元素之間的延遲,這不再局限于時鐘周期。在吞吐量方面也有一些潛在的優勢,因為數據可以以最慢處理階段限制的速率被時鐘發送到Systolic Arrays中。數據以相同的速率在另一端輸出,其間存在一些延遲,從而建立數據流。與同步時鐘 - 執行 - 存儲循環相比,這可以是更高能效和/或更快的數量級,這取決于架構的目標。
數據流設計
如果說CPU是最容易編程的,并且GPU提出了更大的挑戰,那么FPGA需要非常大的努力和大量的技能,而ASIC則需要更大量的成本和工程投資。盡管如此,特定算法的好處仍然很大。
要想知道這有多大的優勢,可以考慮在現代硅工藝中驅動另一個逆變器的“標準化延遲”以單皮秒為單位測量,而時鐘周期接近納秒。類似地,傳輸能量是電阻和電容的函數,其可以根據互連的長度來計算,并且處理元件之間的距離可以比到在時鐘周期之間保持數據的寄存器的距離短幾個數量級。FPGA沒有太大的優勢,因為元件之間存在額外的扇出,切換和傳輸延遲,但它提供了靈活性,可以通過一個芯片適應多種數據流架構。雖然可以實現任何類型的算法,但是復雜性存在限制,因為條件需要兩個分支的布局,這大大增加了面積并降低了利用效率。FPGA和ASICS還可以采用同步和收縮結構的混合來優化布局效率和速度之間的權衡。
數據流系統
用于AI實現的最常見的systolic array 類型是張量核心,它作為TPU或GPU的一部分集成到同步體系結構中。還提出了許多不同類型的卷積核心。已經在FPGA系統中實現了整個深度學習架構(如ResNet-50)的完整數據流實現,從而在延遲和功耗效率方面實現了最先進的性能??啥ㄖ菩赃€允許任意位長精度,這會減小布局大小和處理延遲,但必須仔細調整以適應系統的統計性能要求。然而,主要的獨特功能是處理的實時性質允許AI與實時系統中的其他信號處理組件集成。
結論
在為特定系統選擇AI處理器時,了解每種算法在所用算法的上下文中的相對優勢以及系統要求和性能目標非常重要。在后面的章節中,我們將介紹一些注意事項和示例。我們將看到這些處理器體系結構中的每一個在各種系統級考慮因素中都比其他處理器體系結構更具優勢。
-
數據
+關注
關注
8文章
7080瀏覽量
89175 -
內存
+關注
關注
8文章
3034瀏覽量
74136 -
AI處理器
+關注
關注
0文章
92瀏覽量
9513
發布評論請先 登錄
相關推薦
評論