本文由機器之心經授權轉載自SIMIT戰略研究室(ID:SIMITSRO) ,未經授權禁止二次轉載。
自 1956年達特茅斯會議以來,關於人工智慧(artificial intelligence, AI)的研究由於受到智慧演算法、計算速度、儲存水平等多方面因素的影響,經歷了兩起兩落的發展,近年來在語音識別、計算機視覺等領域終於取得了重大突破。究其原因,業界普遍認為有三大要素合力促成了這次突破:豐富的資料資源、深度學習演算法和充足的計算力支援。豐富的資料資源取決於網際網路的普及和隨之產生的海量資訊;以深度學習為代表的機器學習演算法的精確性和魯棒性越來越好,適用於不同場景的各類演算法不斷最佳化完善,具備了大規模商業化應用的潛力;而充足的算力則得益於摩爾定律的不斷演進發展,高效能晶片大幅降低了深度學習演算法所需的計算時間和成本。
雖然當前摩爾定律逐漸放緩,但作為推動人工智慧技術不斷進步的硬體基礎,未來 10年仍將是人工智慧晶片(AI晶片)發展的重要時期,面對不斷增長的市場需求,各類專門針對人工智慧應用的新穎設計理念和架構創新將不斷湧現。
一、AI 晶片概述
當前對人工智慧晶片的定義並沒有一個公認的標準。比較通用的看法是面向 AI應用的晶片都可以稱為AI晶片,按設計思路主要分為三大類:專用於機器學習尤其是深度神經網路演算法的訓練和推理用加速晶片;受生物腦啟發設計的類腦仿生晶片;可高效計算各類人工智慧演算法的通用AI晶片。
為了支援多樣的 AI計算任務和效能要求,理想的AI晶片需要具備高度並行的處理能力,能夠支援各種資料長度的按位、固定和浮點計算;比當前大幾個數量級的儲存器頻寬,用於儲存海量資料;低記憶體延遲及新穎的架構,以實現計算元件和記憶體之間靈活而豐富的連線。而且所有這些都需要在極低的功耗和極高的能量效率下完成。
在當前人工智慧各領域的演算法和應用還處在高速發展和快速迭代的階段,考慮到晶片的研發成本和生產週期,針對特定應用、演算法或場景的定製化設計很難適應變化。針對特定領域而不針對特定應用的設計,將是 AI晶片設計的一個指導原則,具有可重構能力的AI晶片可以在更多應用中廣泛使用,並且可以透過重新配置適應新的AI演算法、架構和任務。
二、AI 晶片型別及發展情況
加州理工學院 Carver Mead 最早開始了 AI 晶片的研究,在 20世紀 80年代開始研究神經擬態系統(neuromorphic electronic systems),利用類比電路模仿生物神經系統結構。經過 30多年的發展,目前已經誕生了不同特色的各類 AI 晶片,主要包括圖形處理器(graphics processing unit,GPU)、現場可程式設計門陣列(field-programmable gatearray,FPGA)、數字訊號處理(digital signal processing,DSP)、專用積體電路(application specific integrated circuits,ASIC)、眾核處理器、神經擬態晶片等。近年來基於深度學習的影像識別演算法和語音識別演算法取得了出色的成績,引起了學術界和工業界的廣泛關注,隨著谷歌人工智慧圍棋程式AlphaGo先後戰勝李世乭和柯潔,更是把人工智慧的熱度推向全社會。谷歌這一成績離不開背後 AI加速晶片的貢獻,從初代AlphaGo採用 CPU+GPU 的搭建方案,到最新一代 AlphaGo Zero 採用專用高效能處理器(tensor processing unit,TPU),晶片的變化帶來了計算速度的巨大提升和功耗的大幅下降。由此可見針對不同的計算任務,不同型別的AI晶片往往各具優勢。
1. AI加速晶片
簡單地說,AI 加速晶片是指以現有晶片架構為基礎,對某類特定演算法或者場景進行加速,從而實現在這一特定場景下的計算速度、功耗和成本等方面的最佳化。通常包括基於深度神經網路的各類演算法,以及影像識別、影片檢索、語音識別、聲紋檢測、搜尋引擎最佳化、自動駕駛等任務。AI加速晶片的設計主要有兩種思路:利用已有的GPU、FPGA、DSP、眾核處理器等晶片以異構計算的方式來實現;設計專用的ASIC晶片。
2. GPU
GPU,即圖形處理器,是一種由大量核心組成的大規模平行計算架構,專為同時處理多重任務而設計,原本的功能是幫助 CPU處理圖形顯示的任務,尤其是3D圖形顯示。為了執行復雜的平行計算,快速進行圖形渲染,GPU的核數遠超 CPU,但每個核擁有的快取相對較小,數字邏輯運算單元也更簡單,更適合計算密集型的任務。Intel的GPU主要做為整合顯示卡使用,應用於Intel 的主機板和 CPU,而 Nvidia 和 AMD 則在獨立顯示卡領域更具優勢。
深度神經網路的訓練過程中計算量極大,而且資料和運算是可以高度並行的,GPU 具備進行海量資料並行運算的能力並且為浮點向量運算配備了大量計算資源,與深度學習的需求不謀而合,因此最先被引入執行深度學習演算法,成為高效能運算領域的主力晶片之一。但由於 GPU不能支援複雜程式邏輯控制,仍然需要使用高效能CPU配合來構成完整的計算系統。
3. FPGA
FPGA 是在 PAL、GAL、CPLD 等可程式設計邏輯器件的基礎上進一步發展的產物。它作為專用積體電路領域中的一種半定製電路出現,既解決了定製電路靈活性上的不足,又克服了原有可程式設計器件閘電路數量有限的缺點。FPGA 利用閘電路直接運算,速度快,而使用者可以自由定義這些閘電路和儲存器之間的佈線,改變執行方案,以期得到最佳效果。FPGA 可以採用 OpenCL等更高效的程式語言,降低了硬體程式設計的難度,還可以整合重要的控制功能,整合系統模組,提高了應用的靈活性,與 GPU相比,FPGA具備更強的計算能力和更低的功耗。
目前,FPGA的主要廠商Xilinx和被Intel收購的Altera 都推出了專門針對 AI 加速的 FPGA 硬體和軟體工具。而各個主要的雲服務廠商,比如亞馬遜、微軟、阿里雲等都推出了專門的雲端 FPGA 例項來支援 AI 應用。中國剛剛被 Xilinx 收購的北京深鑑科技有限公司也是基於FPGA來設計深度學習的加速器架構,可以靈活擴充套件用於伺服器端和嵌入式端。
4. DSP
DSP是一種由大規模積體電路晶片組成的用來完成某種訊號處理任務的處理器。DSP善於測量、計算、過濾或壓縮連續的真實模擬訊號,廣泛應用於通訊與資訊系統、訊號與資訊處理、自動控制、雷達、航空航天、醫療、家用電器等領域。針對濾波、矩陣運算、FFT(fast Fourier transformation)等需要大量乘加法運算的特點,DSP內部配有獨立的乘法器和加法器,從而大大提高了運算速率。
DSP 種類繁多,目前應用於 AI 領域的 DSP 主要用於處理視覺系統如影像、影片等方面的任務,在自動駕駛、安防監控、無人機和移動終端等領域最為常見。這些 DSP 中加入了專為深度神經網路定製的加速部件,如矩陣乘和累加器、全連線的啟用層和池化層等。由於 DSP 具有高速、靈活、體積小、低功耗、可程式設計的特點,非常適合被用在終端裝置中,例如手機和攝像頭。
5. 眾核處理器
眾核處理器採用將多個處理核心整合在一起的處理器架構,主要面向高效能運算領域,作為CPU的協處理器存在。眾核處理器適合處理並行程度高的計算密集型任務,如基因測序、氣象模擬等。比起 GPU,眾核處理器支援的計算任務的控制邏輯和資料型別要更加複雜。2000年後,該領域的晶片研究一直很活躍,例如IBM CELL和 Kalray MPPA。Intel 的至強融核處理器(Xeon Phi)是典型的眾核處理器,其中2017年釋出的KNL代表了眾核處理器的領先水平。
眾核處理器的結構能有效地利用現代網路和伺服器等應用中較高的執行緒並行度,雖然晶片面積和功耗會隨著核心數量的增加而增加,但效能也隨之有效地增加。而增加運算部件和指令發射寬度等技術在增大晶片面積的同時,會拉長訊號傳輸線路,顯著增加線延遲,因此眾核處理器更適用於資料中心部署的各類 AI訓練和推理任務。
6. ASIC
ASIC 是一種為專用目的設計的,面向特定使用者需求的定製晶片,在大規模量產的情況下具備效能更強、體積更小、功耗更低、成本更低、可靠性更髙等優點。ASIC分為全定製和半定製。全定製設計需要設計者完成所有電路的設計,因此需要大量人力物力,靈活性好,但開發效率低下,時間成本高昂。如果設計較為理想,全定製能夠比半定製的 ASIC 晶片執行速度更快。半定製使用庫中標準邏輯單元,設計時可以從標準邏輯單元庫中選擇閘電路、加法器、比較器、資料通路、儲存器甚至系統級模組和 IP核,這些邏輯單元已經佈局完畢,而且設計得較為可靠,設計者可以較方便地完成系統設計。
近年來越來越多的公司開始採用ASIC晶片進行深度學習演算法加速,其中表現最為突出的是 Google 的TPU。TPU 的主要模組包括 24 MB 的區域性記憶體、6 MB的累加器記憶體、256×256個矩陣乘法單元、非線性神經元計算單元,以及用於歸一化和池化的計算單元。TPU比同時期的GPU或CPU平均提速15~30倍,能效比提升 30~80倍。中國的北京寒武紀科技有限公司、北京位元大陸科技有限公司、北京地平線資訊科技有限公司等公司也都推出了用於深度神經網路加速的ASIC晶片。目前基於 DNN的演算法還沒有統一標準,而且演算法還在不斷快速演進,所以 ASIC的設計需要保持一定的可程式設計性,採取軟硬體協同設計。
7. 類腦仿生晶片
當今類腦仿生晶片的主流理念是採用神經擬態工程設計的神經擬態晶片。神經擬態晶片採用電子技術模擬已經被證明的生物腦的運作規則,從而構建類似於生物腦的電子晶片,即“仿生電子腦”。神經擬態主要指用包括模擬、數字或模數混合超大規模積體電路VLSI(也包括神經元或者神經突觸模型的新型材料或者電子元器件研究)和軟體系統實現神經網路模型,並在此之上構建智慧系統的研究。神經擬態工程發展成為一個囊括神經生物學、物理學、數學、電腦科學和電子工程的交叉學科。神經擬態研究陸續在全世界範圍內開展,並且受到了各國政府的重視和支援,如美國的腦計劃、歐洲的人腦專案,以及中國的類腦計算計劃等。受到腦結構研究的成果啟發,複雜神經網路在計算上具有低功耗、低延遲、高速處理、時空聯合等特點。
目前神經擬態晶片的設計方法主要分為非矽和矽技術。非矽主要指採用憶阻器等新型材料和器件搭建的神經形態晶片,還處於研究階段。模擬積體電路的代表是瑞士蘇黎世聯邦理工學院的 ROLLS晶片和海德堡大學的BrainScales晶片。數字積體電路又分為非同步同步混合和純同步兩種。其中非同步(無全域性時鐘)數位電路的代表是 IBM 的 TrueNorth,純同步的數位電路代表是清華大學的天機系列晶片。另外,對於片上自學習能力,最近Intel推出了Loihi晶片,帶有自主片上學習能力,透過脈衝或尖峰傳遞資訊,並自動調節突觸強度,能夠透過環境中的各種反饋資訊進行自主學習。中國的上海西井資訊科技有限公司也成功製備了帶有片上學習能力的晶片。
8. 通用AI晶片
現今的 AI晶片在某些具體任務上可以大幅超越人的能力,但究其通用性與適應性,與人類智慧相比差距甚遠,大多處於對特定演算法的加速階段。而 AI晶片的最終成果將是通用 AI晶片,並且最好是淡化人工干預的自學習、自適應晶片。因此未來通用 AI晶片應包含以下特徵。
1)可程式設計性:適應演算法的演進和應用的多樣性。
2)架構的動態可變性:能適應不同的演算法,實現高效計算。
3)高效的架構重構能力或自學習能力。
4)高計算效率:避免使用指令這類低效率的架構。
5)高能量效率:能耗比大於5 Tops/W(即每瓦特進行5×1012次運算)。
6)低成本低功耗:能夠進入物聯網裝置及消費類電子中。
7)體積小:能夠載入在移動終端上。
8)應用開發簡便:不需要使用者具備晶片設計方面的知識。
目前尚沒有真正意義上的通用AI晶片誕生,而基於可重構計算架構的軟體定義晶片(software defined chip)或許是通用 AI晶片的出路。軟體定義晶片顧名思義就是讓晶片根據軟體進行適應與調整,簡單來說就是將軟體透過不同的管道輸送到硬體中來執行功能,使晶片能夠實時地根據軟體、產品、應用場景的需求改變架構和功能,實現更加靈活的晶片設計。沿用這種架構設計出來的晶片,可以讓晶片的計算能力按照軟體的需求來調整適應,而不是沿用傳統晶片設計的剛性架構,讓應用適應架構。
可重構計算技術允許硬體架構和功能隨軟體變化而變化,兼具處理器的通用性和 ASIC的高效能和低功耗,是實現軟體定義晶片的核心,被公認為是突破性的下一代積體電路技術。清華大學微電子學研究所設計的 AI 晶片 Thinker,採用可重構計算架構,能夠支援卷積神經網路、全連線神經網路和遞迴神經網路等多種 AI演算法。Thinker晶片透過以下 3個層面的可重構計算技術,實現軟體定義晶片。
1)計算陣列重構:Thinker晶片的計算陣列由多個平行計算單元互連而成。每個計算單元可以根據演算法所需要的基本運算元不同而進行功能重構。此外,在複雜 AI 任務中,多種 AI 演算法的計算資源需求不同,因此Thinker晶片支援計算陣列的按需資源劃分以提高資源利用率和能量效率。
2)儲存頻寬重構:Thinker晶片的片上儲存頻寬能夠根據 AI演算法的不同而進行重構。儲存內的資料分佈會隨著頻寬的改變而調整,以提高資料複用性和計算並行度,提高了計算吞吐和能量效率。
3)資料位寬重構:16 bit資料位寬足以滿足絕大多數應用的精度需求,對於一些精度要求不高的場景,甚至 8 bit資料位寬就已經足夠。為了滿足AI演算法多樣的精度需求,Thinker晶片的計算單元支援高/低(16/8 bit)兩種資料位寬重構。高位元模式下計算精度提升,低位元模式下計算單元吞吐量提升進而提高效能。
可重構計算技術作為實現軟體定義晶片的重要技術,非常適合應用於 AI晶片的設計當中。採用可重構計算技術之後,軟體定義的層面不僅僅侷限於功能這一層面,演算法的計算精度、效能和能效等都可以納入軟體定義的範疇。可重構計算技術藉助自身實時動態配置的特點,實現軟硬體協同設計,為 AI晶片帶來極高的靈活度和適用範圍。Thinker團隊最新推出的 Thinker 2人臉識別晶片,能夠做到 6 ms 人臉識別(iPhone X 為10 ms),準確率超過 98%;以及 Thinker S語音識別晶片,不僅功耗只有 200 μW,只需要節 7 號 AAA 電池就執行 1 年,而且可以進行聲紋識別。《MIT Technology Review》2018年初在一篇專稿中評論了 Thinker團隊的工作,認為這是中國取得的頂級成就。
二、AI 晶片市場現狀
2018 年全球 AI 晶片市場規模預計將超過 20億美元,隨著包括谷歌、Facebook、微軟、亞馬遜以及百度、阿里、騰訊在內的網際網路巨頭相繼入局,預計到2020年全球市場規模將超過 100億美元,其中中國的市場規模近25億美元,增長非常迅猛,發展空間巨大。目前全球各大晶片公司都在積極進行AI晶片的佈局。在雲端,Nvidia的系列 GPU晶片被廣泛應用於深度神經網路的訓練和推理。Google TPU 透過雲服務 Cloud TPU 的形式把 TPU 開放商用,處理能力達到 180 Tflop,提供64 GB的 HBM記憶體,2400 Gbit/s的儲存頻寬。老牌晶片巨頭 Intel推出了 Nervana™ Neural Network Processors(NNP),該系列架構還可以最佳化 32 GB HBM2,1 Tbit/s頻寬和 8 Tbit/s訪問速度的神經網路計算。而初創公司如 Graph core、Cerebras、Wave computing、寒武紀、位元大陸等也加入了競爭的行列,陸續推出了針對 AI的晶片和硬體系統。
然而對於某些應用,由於網路延遲、頻寬和隱私問題等各類原因,必須在邊緣節點上執行推斷。例如,自動駕駛汽車的推斷,不能交由雲端完成,否則如果出現網路延時,則會發生災難性後果;大型城市動輒百萬的高畫質攝像頭,其人臉識別如果全部交由雲端完成,高畫質錄影的資料傳輸會讓通訊網路不堪重負。未來相當一部分人工智慧應用場景中,要求邊緣處的終端裝置本身具備足夠的推斷計算能力。而目前邊緣處理器晶片的計算能力,並不能滿足在本地實現深度神經網路推斷的需求。業界需要專門設計的 AI晶片,賦予裝置足夠的能力去應對未來越發增多的人工智慧應用場景。除了計算效能的要求之外,功耗和成本是在邊緣節點工作的AI晶片必須面對的重要約束。
智慧手機是目前應用最為廣泛的邊緣計算終端裝置,包括三星、蘋果、華為、高通、聯發科在內的手機晶片廠商紛紛推出或者正在研發專門適應AI應用的晶片產品。另外,也有很多初創公司加入這個領域,為邊緣計算裝置提供晶片和系統方案,比如北京中科寒武紀科技有限公司的 1A處理器、北京地平線資訊科技有限公司的旭日處理器 、北京深鑑科技有限公司的DPU等。傳統的 IP 廠商,包括 ARM、Synopsys、Cadence等公司也都為包括手機、平板電腦、智慧攝像頭、無人機、工業和服務機器人、智慧音響等邊緣計算裝置開發專用 IP產品。此外在終端應用中還蘊藏著智慧物聯網這一金礦,AI晶片只有實現從雲端走向終端,才能真正賦予“萬物智慧”。
三、AI 晶片未來趨勢
在 AI晶片領域,目前還沒有出現一款 CPU類的通用AI晶片,人工智慧想要像移動支付那樣深入人心,改變社會,可能還差一個“殺手”級別的應用。無論是影像識別、語音識別、機器翻譯、安防監控、交通規劃、自動駕駛、智慧陪伴、智慧物聯網等,AI涵蓋了人們生產生活的方方面面,然而距離 AI應用落地和大規模商業化還有很長的路要走。而對於晶片從業者來講,當務之急是研究晶片架構問題。軟體是實現智慧的核心,晶片是支撐智慧的基礎。當前 AI晶片發展,短期內以異構計算為主來加速各類應用演算法的落地;中期要發展自重構、自學習、自適應的晶片來支援演算法的演進和類人的自然智慧;長期則朝通用AI晶片的方向發展。
1. 通用AI計算
AI的通用性實際包括2個層級:第一個層級是可以處理任意問題;第二個層級是同一時間處理任意問題。第一層級的目標是讓AI的演算法可以透過不同的設計、資料和訓練方法來處理不同的問題。例如,利用現在流行的深度學習方法訓練AI下棋、影像識別、語音識別、行為識別、運動導航等。但是,不同的任務使用不同的資料集來獨立訓練,模型一旦訓練完成,只適用於這種任務,而不能用於處理其他任務。所以,可以說這種 AI的演算法和訓練方法是通用的,而它訓練出來用於執行某個任務的模型是不通用的。第二層級的目標是讓訓練出來的模型可以同時處理多種任務,就像人一樣可以既會下棋,又會翻譯,還會駕駛汽車和做飯。這個目標更加困難,目前還沒有哪一個演算法可以如此全能。
2. 通用AI晶片
通用 AI 晶片就是能夠支援和加速通用 AI 計算的晶片。關於通用AI的研究希望透過一個通用的數學模型,能夠最大限度概括智慧的本質。目前比較主流的看法是系統能夠具有通用效用最大化能力:即系統擁有通用歸納能力,能夠逼近任意可逼近的模式,並能利用所識別到的模式取得一個效用函式的最大化效益。這是很學術化的語言,如果通俗地說,就是讓系統透過學習和訓練,能夠準確高效地處理任意智慧主體能夠處理的任務。通用 AI的難點主要有 2個:通用性,包括演算法和架構;實現複雜程度。當前,摩爾定律的逐漸失效和馮·諾伊曼架構的瓶頸這2個巨大的技術挑戰也是通用AI晶片需要考慮的問題。想要解決這 2個問題僅透過晶片的設計理念和架構創新是行不通的,還需要取決於更先進的製程工藝、新型半導體材料、新型儲存器件以及人類對於自身大腦更進一步的認知。
四、AI 晶片面臨的機遇與挑戰
目前全球人工智慧產業還處在高速變化發展中,廣泛的行業分佈為人工智慧的應用提供了廣闊的市場前景,快速迭代的演算法推動人工智慧技術快速走向商用,AI晶片是演算法實現的硬體基礎,也是未來人工智慧時代的戰略制高點,但由於目前的 AI演算法往往都各具優劣,只有給它們設定一個合適的場景才能最好地發揮其作用,因此,確定應用領域就成為發展AI晶片的重要前提。但遺憾的是,當前尚不存在適應多種應用的通用演算法,人工智慧的“殺手”級應用還未出現,已經存在的一些應用對於消費者的日常生活來說也非剛需,因此哪家晶片公司能夠抓住市場痛點,最先實現應用落地,就可以在人工智慧晶片的賽道上取得較大優勢。
架構創新是 AI晶片面臨的一個不可迴避的課題。需要回答一個重要問題:是否會出現像通用CPU那樣獨立存在的 AI處理器?如果存在的話,它的架構是怎樣的?如果不存在,目前以滿足特定應用為主要目標的AI晶片就一定只能以 IP核的方式存在,最終被各種各樣的 SoC(system-on-a-chip)所整合。這無疑帶來了新的問題,晶片的體積和功耗是必須要考慮的重要因素,傳統晶片公司在 SoC的設計最佳化和工程實現上無疑比以演算法起家的初創AI晶片公司更具經驗。
從晶片發展的大趨勢來看,現在還是 AI晶片的初級階段。無論是科研還是產業應用都有巨大的創新空間。從確定演算法、應用場景的 AI加速晶片向具備更高靈活性、適應性的通用智慧晶片發展是技術發展的必然方向。未來 2 年之內 AI 晶片產業將持續火熱,公司扎堆進入,但是到了2020年前後,則將會出現一批出局者,行業洗牌開始,最終的成功與否則將取決於各家公司技術路徑的選擇和產品落地的速度。
本文由機器之心經授權轉載自SIMIT戰略研究室(ID:SIMITSRO),是中國科學院上海微系統與資訊科技研究所的戰略研究部門,專注於資訊功能材料、感測器與積體電路、物聯網與人工智慧等資訊科技領域的發展戰略。
歡迎關注微訊號SIMIT戰略研究室(ID:SIMITSRO)。