AI晶片的過去和未來
相信你一定還記得擊敗了李世石和柯潔的谷歌“阿爾法狗”(Alpha Go),那你知道驅動 Alpha Go 的是什麼嗎?
如果你覺得 Alpha Go 和人相似,只不過是把人腦換成了晶片,那麼你就大錯特錯了。擊敗李世石的 Alpha Go 裝有 48 個谷歌的 AI 晶片,而這 48 個晶片不是安裝在 Alpha Go 身體裡,而是在雲端。所以,真正驅動 Alpha Go 的裝置,看上去是這樣的...
因此李世石和柯潔不是輸給了“機器人”,而是輸給了裝有 AI 晶片的雲工作站。
然而近幾年,AI 技術的應用場景開始向移動裝置轉移,比如汽車上的自動駕駛、手機上的人臉識別等。產業的需求促成了技術的進步,而 AI 晶片作為產業的根基,必須達到更強的效能、更高的效率、更小的體積,才能完成 AI 技術從雲端到終端的轉移。
目前,AI 晶片的研發方向主要分兩種:一是基於傳統馮·諾依曼架構的 FPGA(現場可程式設計門陣列)和 ASIC(專用積體電路)晶片,二是模仿人腦神經元結構設計的類腦晶片。其中 FPGA 和 ASIC 晶片不管是研發還是應用,都已經形成一定規模;而類腦晶片雖然還處於研發初期,但具備很大潛力,可能在未來成為行業內的主流。
這兩條發展路線的主要區別在於,前者沿用馮·諾依曼架構,後者採用類腦架構。你看到的每一臺電腦,採用的都是馮·諾依曼架構。它的核心思路就是處理器和儲存器要分開,所以才有了 CPU(中央處理器)和記憶體。而類腦架構,顧名思義,模仿人腦神經元結構,因此 CPU、記憶體和通訊部件都整合在一起。
接下來小探將為讀者分別介紹兩種架構的簡要發展史、技術特點和代表性產品。
從 GPU 到 FPGA 和 ASIC 晶片
2007 年以前,受限於當時演算法和資料等因素,AI 對晶片還沒有特別強烈的需求,通用的 CPU 晶片即可提供足夠的計算能力。比如現在在讀這篇文章的你,手機或電腦裡就有 CPU 晶片。
之後由於高清視訊和遊戲產業的快速發展,GPU(圖形處理器)晶片取得迅速的發展。因為 GPU 有更多的邏輯運算單元用於處理資料,屬於高並行結構,在處理圖形資料和複雜演算法方面比 CPU 更有優勢,又因為 AI 深度學習的模型引數多、資料規模大、計算量大,此後一段時間內 GPU 代替了 CPU,成為當時 AI 晶片的主流。
然而 GPU 畢竟只是圖形處理器,不是專門用於 AI 深度學習的晶片,自然存在不足,比如在執行 AI 應用時,其並行結構的效能無法充分發揮,導致能耗高。
與此同時,AI 技術的應用日益增長,在教育、醫療、無人駕駛等領域都能看到 AI 的身影。然而 GPU 晶片過高的能耗無法滿足產業的需求,因此取而代之的是 FPGA 晶片,和 ASIC 晶片。
那麼這兩種晶片的技術特點分別是什麼呢?又有什麼代表性的產品呢?
“萬能晶片”FPGA
FPGA(FIELD-PROGRAMMABLEGATEARRAY),即“現場可程式設計門陣列”,是在 PAL、GAL、CPLD 等可程式設計器件的基礎上進一步發展的產物。
FPGA 可以被理解為“萬能晶片”。使用者通過燒入 FPGA 配置檔案,來定義這些閘電路以及儲存器之間的連線,用硬體描述語言(HDL)對 FPGA 的硬體電路進行設計。每完成一次燒錄,FPGA 內部的硬體電路就有了確定的連線方式,具有了一定的功能,輸入的資料只需要依次經過各個閘電路,就可以得到輸出結果。
用大白話說,“萬能晶片”就是你需要它有哪些功能、它就能有哪些功能的晶片。
儘管叫“萬能晶片”,FPGA 也不是沒有缺陷。正因為 FPGA 的結構具有較高靈活性,量產中單塊晶片的成本也比 ASIC 晶片高,並且在效能上,FPGA 晶片的速度和能耗相比 ASIC 晶片也做出了妥協。
也就是說,“萬能晶片”雖然是個“多面手”,但它的效能比不上 ASIC 晶片,價格也比 ASIC 晶片更高。
但是在晶片需求還未成規模、深度學習演算法需要不斷迭代改進的情況下,具備可重構特性的 FPGA 晶片適應性更強。因此用 FPGA 來實現半定製人工智慧晶片,毫無疑問是保險的選擇。
目前,FPGA 晶片市場被美國廠商 Xilinx 和 Altera 瓜分。據國外媒體 Marketwatch 的統計,前者佔全球市場份額 50%、後者佔 35% 左右,兩家廠商霸佔了 85% 的市場份額,專利達到 6000 多項,毫無疑問是行業裡的兩座大山。
Xilinx 的 FPGA 晶片從低端到高階,分為四個系列,分別是 Spartan、Artix、Kintex、Vertex,晶片工藝也從 45 到 16 納米不等。晶片工藝水平越高,晶片越小。其中 Spartan 和 Artix 主要針對民用市場,應用包括無人駕駛、智慧家居等;Kintex 和 Vertex 主要針對軍用市場,應用包括國防、航空航天等。
Xilinx 的 Spartan 系列 FPGA 晶片 圖片來自網路,版權屬於作者
Xilinx 的 Spartan 系列 FPGA 晶片 圖片來自網路,版權屬於作者
我們再說說 Xilinx 的老對手 Altera。Altera 的主流 FPGA 晶片分為兩大類,一種側重低成本應用,容量中等,效能可以滿足一般的應用需求,如 Cyclone 和 MAX 系列;還有一種側重於高效能應用,容量大,效能能滿足各類高階應用,如 Startix 和 Arria 系列。Altera 的 FPGA 晶片主要應用在消費電子、無線通訊、軍事航空等領域。
專用積體電路 ASIC
在 AI 產業應用大規模興起之前,使用 FPGA 這類適合平行計算的通用晶片來實現加速,可以避免研發 ASIC 這種定製晶片的高投入和風險。
但就像我們剛才說到的,由於通用晶片的設計初衷並非專門針對深度學習,因此 FPGA 難免存在效能、功耗等方面的瓶頸。隨著人工智慧應用規模的擴大,這類問題將日益突出。換句話說,我們對人工智慧所有的美好設想,都需要晶片追上人工智慧迅速發展的步伐。如果晶片跟不上,就會成為人工智慧發展的瓶頸。
所以,隨著近幾年人工智慧演算法和應用領域的快速發展,以及研發上的成果和工藝上的逐漸成熟,ASIC 晶片正在成為人工智慧計算晶片發展的主流。
ASIC 晶片是針對特定需求而定製的專用晶片。雖然犧牲了通用性,但 ASIC 無論是在效能、功耗還是體積上,都比 FPGA 和 GPU 晶片有優勢,特別是在需要晶片同時具備高效能、低功耗、小體積的移動端裝置上,比如我們手上的手機。
但是,因為其通用性低,ASIC 晶片的高研發成本也可能會帶來高風險。然而如果考慮市場因素,ASIC 晶片其實是行業的發展大趨勢。
為什麼這麼說呢?因為從伺服器、計算機到無人駕駛汽車、無人機,再到智慧家居的各類家電,海量的裝置需要引入人工智慧計算能力和感知互動能力。出於對實時性的要求,以及訓練資料隱私等考慮,這些能力不可能完全依賴雲端,必須要有本地的軟硬體基礎平臺支撐。而 ASIC 晶片高效能、低功耗、小體積的特點恰好能滿足這些需求。
ASIC 晶片市場百家爭鳴
2016 年,英偉達釋出了專門用於加速 AI 計算的 TeslaP100 晶片,並且在 2017 年升級為 TeslaV100。在訓練超大型神經網路模型時,TeslaV100 可以為深度學習相關的模型訓練和推斷應用提供高達 125 萬億次每秒的張量計算(張量計算是 AI 深度學習中最經常用到的計算)。然而在最高效能模式下,TeslaV100 的功耗達到了 300W,雖然效能強勁,但也毫無疑問是顆“核彈”,因為太費電了。