1. 程式人生 > >詳談AI晶片架構、分類和關鍵技術

詳談AI晶片架構、分類和關鍵技術

640?wx_fmt=jpeg

640?wx_fmt=gif

人工智慧晶片目前有兩種發展路徑:一種是延續傳統計算架構,加速硬體計算能力,主要以 3 種類型的晶片為代表,即 GPU、 FPGA、 ASIC,但CPU依舊發揮著不可替代的作用;另一種是顛覆經典的馮·諾依曼計算架構,採用類腦神經結構來提升計算能力,以IBM TrueNorth 晶片為代表。


1、傳統 CPU


計算機工業從1960年代早期開始使用CPU這個術語。迄今為止,CPU從形態、設計到實現都已發生了巨大的變化,但是其基本工作原理卻一直沒有大的改變。 通常 CPU 由控制器和運算器這兩個主要部件組成。 傳統的 CPU 內部結構圖如圖所示:


640?wx_fmt=png

傳統CPU內部結構圖(ALU計算模組)



從圖中我們可以看到:實質上僅單獨的ALU模組(邏輯運算單元)是用來完成資料計算的,其他各個模組的存在都是為了保證指令能夠一條接一條的有序執行。這種通用性結構對於傳統的程式設計計算模式非常適合,同時可以通過提升CPU主頻(提升單位時間內執行指令的條數)來提升計算速度。 但對於深度學習中的並不需要太多的程式指令、 卻需要海量資料運算的計算需求, 這種結構就顯得有些力不從心。尤其是在功耗限制下, 無法通過無限制的提升 CPU 和記憶體的工作頻率來加快指令執行速度, 這種情況導致 CPU 系統的發展遇到不可逾越的瓶頸。


2、並行加速計算的GPU


GPU 作為最早從事並行加速計算的處理器,相比 CPU 速度快, 同時比其他加速器晶片程式設計靈活簡單。


傳統的 CPU 之所以不適合人工智慧演算法的執行,主要原因在於其計算指令遵循序列執行的方式,沒能發揮出晶片的全部潛力。與之不同的是, GPU 具有高並行結構,在處理圖形資料和複雜演算法方面擁有比 CPU 更高的效率。對比 GPU 和 CPU 在結構上的差異, CPU大部分面積為控制器和暫存器,而 GPU 擁有更ALU(邏輯運算單元)用於資料處理,這樣的結構適合對密集型資料進行並行處理, CPU 與 GPU 的結構對比如圖 所示。


640?wx_fmt=png

CPU及GPU結構對比圖


程式在 GPU系統上的執行速度相較於單核 CPU往往提升幾十倍乃至上千倍。隨著英偉達、 AMD 等公司不斷推進其對 GPU 大規模並行架構的支援,面向通用計算的 GPU(即GPGPU,通用計算圖形處理器)

已成為加速可並行應用程式的重要手段,GPU 的發展歷程可分為 3 個階段:


第一代GPU(1999年以前),部分功能從CPU分離 , 實現硬體加速 , 以GE(GEOMETRY ENGINE)為代表,只能起到 3D 影象處理的加速作用,不具有軟體程式設計特性。


第二代 GPU(1999-2005 年), 實現進一步的硬體加速和有限的程式設計性。 1999年,英偉達釋出了“專為執行復雜的數學和幾何計算的” GeForce256 影象處理晶片,將更多的電晶體用作執行單元, 而不是像 CPU 那樣用作複雜的控制單元和快取,將(TRANSFORM AND LIGHTING) 等功能從 CPU 分離出來,實現了快速變換,這成為 GPU 真正出現的標誌。之後幾年, GPU 技術快速發展,運算速度迅速超過 CPU。 2001年英偉達和ATI 分別推出的GEFORCE3和RADEON 8500,圖形硬體的流水線被定義為流處理器,出現了頂點級可程式設計性,同時畫素級也具有有限的程式設計性,但 GPU 的整體程式設計性仍然比較有限。


第三代 GPU(2006年以後), GPU實現方便的程式設計環境建立, 可以直接編寫程式。 2006年英偉達與ATI分別推出了CUDA (Compute United Device Architecture,計算統一裝置架構)程式設計環境和CTM(CLOSE TO THE METAL)程式設計環境, 使得 GPU 打破圖形語言的侷限成為真正的並行資料處理超級加速器。


2008年,蘋果公司提出一個通用的平行計算程式設計平臺 OPENCL(開放運算語言),與CUDA繫結在英偉達的顯示卡上不同,OPENCL 和具體的計算裝置無關。


640?wx_fmt=png

GPU晶片的發展階段


目前, GPU 已經發展到較為成熟的階段。谷歌、 FACEBOOK、微軟、 Twtter和百度等公司都在使用GPU 分析圖片、視訊和音訊檔案,以改進搜尋和影象標籤等應用功能。此外,很多汽車生產商也在使用GPU晶片發展無人駕駛。 不僅如此, GPU也被應用於VR/AR 相關的產業。


但是 GPU也有一定的侷限性。 深度學習演算法分為訓練和推斷兩部分, GPU 平臺在演算法訓練上非常高效。但在推斷中對於單項輸入進行處理的時候,平行計算的優勢不能完全發揮出來。


3、半定製化的FPGA


FPGA 是在 PAL、 GAL、 CPLD 等可程式設計器件基礎上進一步發展的產物。使用者可以通過燒入 FPGA 配置檔案來定義這些閘電路以及儲存器之間的連線。這種燒入不是一次性的,比如使用者可以把 FPGA 配置成一個微控制器 MCU,使用完畢後可以編輯配置檔案把同一個FPGA 配置成一個音訊編解碼器。因此, 它既解決了定製電路靈活性的不足,又克服了原有可程式設計器件閘電路數有限的缺點。


FPGA可同時進行資料並行和任務平行計算,在處理特定應用時有更加明顯的效率提升。對於某個特定運算,通用 CPU可能需要多個時鐘週期,而 FPGA 可以通過程式設計重組電路,直接生成專用電路,僅消耗少量甚至一次時鐘週期就可完成運算。


此外,由於 FPGA的靈活性,很多使用通用處理器或 ASIC難以實現的底層硬體控制操作技術, 利用 FPGA 可以很方便的實現。這個特性為演算法的功能實現和優化留出了更大空間。同時FPGA 一次性成本(光刻掩模製作成本)遠低於ASIC,在晶片需求還未成規模、深度學習演算法暫未穩定, 需要不斷迭代改進的情況下,利用 FPGA 晶片具備可重構的特性來實現半定製的人工智慧晶片是最佳選擇之一。


功耗方面,從體系結構而言, FPGA 也具有天生的優勢。傳統的馮氏結構中,執行單元(如 CPU 核)執行任意指令,都需要有指令儲存器、譯碼器、各種指令的運算器及分支跳轉處理邏輯參與執行, 而FPGA每個邏輯單元的功能在重程式設計(即燒入)時就已經確定,不需要指令,無需共享記憶體,從而可以極大的降低單位執行的功耗,提高整體的能耗比。


由於 FPGA 具備靈活快速的特點, 因此在眾多領域都有替代ASIC 的趨勢。 FPGA 在人工智慧領域的應用如圖所示。


640?wx_fmt=png

FPGA 在人工智慧領域的應用


4、全定製化的ASIC


目前以深度學習為代表的人工智慧計算需求,主要採用GPU、FPGA等已有的適合平行計算的通用晶片來實現加速。在產業應用沒有大規模興起之時,使用這類已有的通用晶片可以避免專門研發定製晶片(ASIC)的高投入和高風險。但是,由於這類通用晶片設計初衷並非專門針對深度學習,因而天然存在效能、 功耗等方面的侷限性。隨著人工智慧應用規模的擴大,這類問題日益突顯。


GPU作為影象處理器, 設計初衷是為了應對影象處理中的大規模平行計算。因此,在應用於深度學習演算法時,有三個方面的侷限性:


  • 第一:應用過程中無法充分發揮平行計算優勢。 深度學習包含訓練和推斷兩個計算環節, GPU 在深度學習演算法訓練上非常高效, 但對於單一輸入進行推斷的場合, 並行度的優勢不能完全發揮。 

  • 第二:無法靈活配置硬體結構。 GPU 採用 SIMT 計算模式, 硬體結構相對固定。 目前深度學習演算法還未完全穩定,若深度學習演算法發生大的變化, GPU 無法像 FPGA 一樣可以靈活的配製硬體結構。 

  • 第三:執行深度學習演算法能效低於FPGA。


儘管 FPGA 倍受看好,甚至新一代百度大腦也是基於 FPGA 平臺研發,但其畢竟不是專門為了適用深度學習演算法而研發,實際應用中也存在諸多侷限:


  • 第一:基本單元的計算能力有限。為了實現可重構特性, FPGA 內部有大量極細粒度的基本單元,但是每個單元的計算能力(主要依靠 LUT 查詢表)都遠遠低於 CPU 和 GPU 中的 ALU 模組。

  • 第二:計算資源佔比相對較低。 為實現可重構特性, FPGA 內部大量資源被用於可配置的片上路由與連線。

  • 第三:速度和功耗相對專用定製晶片(ASIC)仍然存在不小差距。

  • 第四,:FPGA 價格較為昂貴。在規模放量的情況下單塊 FPGA 的成本要遠高於專用定製晶片。


因此,隨著人工智慧演算法和應用技術的日益發展,以及人工智慧專用晶片 ASIC產業環境的逐漸成熟, 全定製化人工智慧 ASIC也逐步體現出自身的優勢,從事此類晶片研發與應用的國內外比較有代表性的公司如圖所示。


640?wx_fmt=png

人工智慧專用晶片研發情況一覽


深度學習演算法穩定後, AI 晶片可採用ASIC設計方法進行全定製, 使效能、功耗和麵積等指標面向深度學習演算法做到最優。


5、類腦晶片


類腦晶片不採用經典的馮·諾依曼架構, 而是基於神經形態架構設計,以IBM Truenorth為代表。 IBM 研究人員將儲存單元作為突觸、計算單元作為神經元、傳輸單元作為軸突搭建了神經晶片的原型。


目前, Truenorth用三星 28nm功耗工藝技術,由 54億個電晶體組成的晶片構成的片上網路有4096個神經突觸核心,實時作業功耗僅為70mW。由於神經突觸要求權重可變且要有記憶功能, IBM採用與CMOS工藝相容的相變非易失儲存器(PCM)的技術實驗性的實現了新型突觸,加快了商業化程序。


來源:清華2018人工智慧晶片研究報告

報告:關注公眾號,選單回覆2018AI晶片報告”獲取完整報告

編譯:“架構師技術聯盟”微信公眾號


推薦閱讀:



溫馨提示:

請識別二維碼關注公眾號,點選原文連結獲取更多技術資料和文章

640?wx_fmt=jpeg

640?wx_fmt=gif