- AI芯片:前沿技術與創新未來
- 張臣雄
- 5字
- 2021-03-24 17:47:10
第一篇 導論
第1章 AI 芯片是人工智能未來發展的核心——什么是AI 芯片
隨著人工智能(Artificial Intelligence,AI)的熱潮席卷各行各業,作為人工智能核心的“AI芯片”變得炙手可熱,它是所有智能設備必不可少的核心器件,專門用于處理AI相關的計算任務。AI芯片領域不光是半導體芯片公司競爭的舞臺,連互聯網公司、云計算公司都紛紛發布推出芯片的計劃。而大大小小的AI芯片初創公司更是像雨后春筍般出現,各種AI芯片相關的發布會、研討會上人頭涌動、熱鬧異常,都說明了人們對于AI芯片的濃厚興趣。
AI芯片包含兩個領域的內容:一個是計算機科學領域,簡單地說就是軟件,即研究如何設計出高效率的智能算法;另一個是半導體芯片領域,簡單地說就是硬件,即研究如何把這些算法有效地在硅片上實現,變成能與配套軟件相結合的最終產品。
下面,讓我們先回顧一下AI芯片的簡要歷史、AI芯片到底需要完成什么樣的運算,再作后續討論與介紹,包括:
(1)AI芯片(包括深度學習加速器和類腦芯片等)的實現方法;
(2)各種新穎的算法和架構;
(3)新的計算范式(如模擬計算、存內計算、近似計算、隨機計算、可逆計算、自然計算、仿生計算、儲備池計算、量子啟發計算、有機計算等);
(4)光子AI芯片和“自進化”“自學習”的AI芯片,量子場論、統計物理、信息論等基礎理論如何引領AI算法的創新,以及基于信息論的新穎AI芯片;
(5)如何實現能夠“帶創造力”和“自供電”的AI芯片;
(6)“后摩爾定律時代”的芯片技術;
(7)AI芯片的“殺手锏”應用和分“左右腦”的新穎AI芯片等;
(8)AI芯片的發展前景及面臨的挑戰。
1.1 AI芯片的歷史
從工業革命開始,機器已經逐步取代了人類的重復性手工勞動和繁重的體力勞動。如今,人類的部分腦力勞動和知識性工作也逐漸可以被具有人工智能的機器所取代。
這種帶有AI芯片的“智能機器”具有強大的計算處理和學習能力,可以自主操作。智能機器不但可以仿照人類肌肉執行任務,而且將成為大腦功能的替代者。這種智能機器將會越來越普及,性能也將會不斷提高,它將被廣泛地用于人臉識別、汽車駕駛、藝術作品創作、新材料合成、新藥開發、醫學診斷、機器人及人們的日常生活中。可以這樣說,在未來的25年內,AI將無處不在,它將可以勝任大部分人類正在從事的工作。因此,在未來,現在人類大部分的工作崗位都將被這種智能機器“搶走”,也就算不上是危言聳聽了。
如前所述,AI芯片的發展主要依賴兩個領域的創新和演進:一個是模仿人腦建立起來的數學模型和算法,這與腦生物神經學和計算機科學相關;另一個是半導體集成電路,簡稱芯片。
芯片是上述智能機器的“核心”,是運行這種機器最關鍵的“引擎”。從1957年第一塊芯片發明以來,芯片技術得到了極為迅速的發展。從一開始幾個晶體管的集成,到今天已經可以在一塊很小的硅基芯片上集成幾十億甚至幾百億個晶體管,這是非常了不起的人類智慧的結晶,也是人類歷史上的奇跡。海量晶體管的集成使大量運算得以進行,從而大大提高了芯片的運算能力。今天用于深度學習的圖形處理器(Graphics Processing Unit,GPU)芯片,已經可以達到100 TFLOPS(每秒100萬億次浮點運算)以上的運算速度,是20世紀90年代初超級計算機Cray-3運算速度(16 GFLOPS,即每秒160億次浮點運算)的6000多倍。
世界上第一塊芯片是由美國德州儀器(TI)公司的杰克·基爾比(Jack Kilby)發明的?,F已退休的臺積電(TSMC)創始人張忠謀在他的自傳里,記述了當時他和芯片發明人杰克·基爾比一起并肩工作的情景。“我入職TI不久,結識了一位和我幾乎同時加入的同事,他有一個令人印象深刻的外表,高得出奇(超過兩米)、瘦削,最顯眼的是巨大的頭顱。那時他30多歲,……正想把好幾個晶體管、二極管,加上電阻器,組成一個線路放在同一粒硅晶片上。……老實說,那時要我做一個晶體管都有困難,把好幾個晶體管再加別的電子元器件放在同一粒硅晶片上,還要它們同時起作用,簡直是匪夷所思。”但杰克后來成功了。就是這塊芯片,奠定了后來信息革命的基礎。
AI想法的產生,以及后來神經網絡數學模型和算法的發展,一路上伴隨著半導體芯片的演進過程。雖然在二十世紀三四十年代就有人在研究人類的腦功能,并試圖建立一種數學模型,但沒有產生較大影響。直到1957年,模擬人腦的感知器(Perceptron)的發明被看作是第一個“人工神經網絡”方面的突破。感知器是當時就職于康奈爾航空實驗室的法蘭克·羅森布拉特(Frank Rosenblatt)發明的。作為最簡單的前向人工神經網絡形式,感知器雖然結構簡單,但它擁有學習能力,能不斷進化從而解決更為復雜的問題。
到了20世紀80年代,已經有人研究構建模仿大腦運行的硬件(不是從邏輯學的角度來看,而是根據感知器的模型),這是構建人工神經元和神經網絡的初步嘗試。AI走出實驗室,走向商品化,形成了巨大的投資熱潮。當時人們預測,如果使用感知器構建深度神經網絡(Deep Neural Network,DNN),可以在計算機上構建類人的推理和學習機制。不少公司不但使用數字電路,還嘗試使用模擬電路來制作神經網絡的芯片。但是,當時硬件的計算能力非常低,無法使這類網絡模型得到有效應用。從20世紀90年代初開始,AI科技泡沫逐漸破滅。
現在不少人認為當時的AI泡沫破滅是因為沒有像如今最紅火的“深度學習”(即深度神經網絡)算法這樣的好算法。其實,最關鍵的還是當時半導體芯片的運算能力沒有跟上。“深度學習”這樣的模型和算法,其實早在20世紀80年代就有了。1986年,杰弗里·辛頓(Geoffrey E. Hinton)與同事們一起,探索了如何顯著改善多層神經網絡(即深度神經網絡)的性能,使用被稱為反向傳播(誤差反向傳播方法)的算法,并發表了他們的劃時代論文。1989年,當時還在貝爾實驗室的楊立昆(Yann LeCun)和其他研究人員一起開發了可以通過訓練來識別手寫郵政編碼的神經網絡,證明了能夠在現實世界中應用這一新技術。但在那個時期,他們訓練一個深度學習卷積神經網絡(Convolutional Neural Network,CNN)需要3天的時間,因此無法投入實際應用。
這也說明了算法再好,如果沒有足夠的計算能力,也就是高性能的芯片,AI就無法得到實際應用,只能在實驗室里被束之高閣。
2009年以來,AI又一次受到人們的關注,飛速發展,這是由GPU芯片帶動的。雖然英偉達(NVIDIA)公司在1999年就發明了GPU,但從來沒有人把它用于深度學習。一直到2009年,斯坦福大學的拉亞特·萊納(Rajat Raina)、阿南德·馬德哈文(Anand Madhavan)及吳恩達(Andrew Y. Ng)共同發表了一篇突破性的論文,介紹了如何利用現代GPU遠超過多核中央處理器(Central Processing Unit,CPU)的計算能力(超過70倍),把AI訓練時間從幾周縮短到了幾小時。
2012年,一切都發生了變化。一系列極具影響力的論文發表,如亞歷克斯·克里澤夫斯基(Alex Krizhevsky)、伊利·薩茨凱(Ilye Sutskever)和辛頓的《具有深度卷積神經網絡的ImageNet分類》一文,就展示了他們在ImageNet圖像識別挑戰賽上取得的成果。其他很多實驗室也已經在從事類似工作。在這一年結束之前,深度學習已成為美國《紐約時報》的頭版,并且迅速成為人工智能中最知名的技術。
之后,深度學習在圖像識別、語音識別方面的實驗結果逐年得到改善,直到超過人類的識別率,引起人們的極大關注,再次掀起了AI熱潮。由此可見,AI與半導體芯片的發展是緊密聯系在一起的,沒有GPU等半導體芯片近年來的迅猛發展,AI就不會像今天這樣炙手可熱。從圖1.1中可以看到按時間順序列出的AI和半導體芯片的演進歷程對照。
雖然感知器和第一塊芯片都是在1957年發明的,但AI和半導體芯片這兩條路發展到現在,還不能說很匹配。芯片的運算能力還遠遠無法滿足算法的運算需求。非營利組織OpenAI的資深研究員最近指出,芯片性能需要每年提高10倍,才能滿足訓練DNN的需求。這個需求是巨大的,但目前看來還難以滿足。

圖1.1 AI和半導體芯片的演進過程對照
1.2 AI芯片要完成的基本運算
AI芯片是模仿大腦運作的芯片,它使用模擬神經元和突觸的模型來嘗試再現人類智能。
1.2.1 大腦的工作機制
大腦中有許多神經細胞,可以通過連接傳達信息,并建立記憶。具有這種作用的神經細胞被稱為神經元。神經元在連接處不斷發送電子信號以傳輸信息,而突觸就位于該連接處。換句話說,大腦中的神經細胞是神經元,它們的交界處是突觸。
如圖1.2所示,神經元由樹突、突觸、核及軸突構成。單個神經元只有激活與未激活兩個狀態,激活條件為從其他神經元接收到的輸入信號量總和達到一定閾值。神經元被激活后,電脈沖產生并沿著軸突經突觸傳遞到其他神經元?,F在我們用“感知機”的概念模擬神經元行為,需要考慮權重(突觸)、偏置(閾值)及激活函數(神經元)。

圖1.2 腦細胞連接的構造:神經元之間通過突觸連接成網絡
上面講的只是一個概念,我們有必要通過軟件和硬件使計算機更容易處理神經元行為。為達到此目的,我們為神經元建立一個模型(見圖1.3)。

圖1.3 神經元模型
圖1.3中,函數f是輸入和輸出之間的關系,稱為激活函數;wi是突觸特征的權重,權重為正表示突觸興奮,權重為負表示突觸處于抑制狀態;xi是另一個神經元的輸出;b是神經元激活(將輸出傳遞到后續階段)的閾值。
激活函數f(x)的部分常見形式如圖1.4所示。使用激活函數的目的是引入非線性,使輸入和輸出脫離線性關系。

圖1.4 表示大腦神經元開和關的激活函數舉例
a)線性函數 b)符號函數 c)Sigmoid函數(S形函數) d)Softmax函數
e)雙曲正切S形函數 f)ReLU函數 g)硬雙曲正切S形函數 h)階躍函數
目前用得最多的激活函數是圖1.4f所示的修正線性單元(Rectified Linear Unit,ReLU)函數。ReLU函數的表達式非常簡單,就是小于0的部分全部置為0,其他保持不變。S形(Sigmoid)函數(見圖1.4c)是傳統的神經元模型最常使用的激活函數,它基于神經科學仿生而得出。在第二波神經網絡的浪潮中,S形函數被用來模擬之前提到的神經元的激活過程,表現出了高度適用的效果。但該函數也容易帶來飽和效應問題(即梯度彌散效應),會造成很長的“學習”時間??此坪唵蔚腞eLU函數解決了這個問題,因此成為深度學習算法的重大改進點之一。
1.2.2 模擬大腦運作的神經網絡的計算
把神經元連起來,就成為一個神經網絡(見圖1.5)。深度學習,即深度神經網絡(DNN)的特點是在輸入層和輸出層中間加了很多層,稱為隱藏層。目前較新的DNN,已經有幾百個甚至1000個以上的隱藏層。在DNN中,通過添加層的數量,可以將精度和吞吐量提高,并可以通過改變權重來響應各種功能。由于深度學習的采用,神經網絡的層數顯著增加,導致模型非常大。一般需要多達數千萬的權重來定義神經元之間的大量連接,這些參數是在很費時間的學習過程中確定的。
AI芯片是一種高速執行神經網絡輸入到輸出計算過程的芯片。這里重要的是如何快速計算圖1.3中的函數f,其中主要是的計算。如果把此式展開,可寫成:

這是乘積累加(Multiply Accumulation,MAC)運算。傳統上,通過使用諸如數字信號處理器(Digital Signal Processing,DSP)和ARM處理器的NEON之類的單指令多數據流(Single Instruction Multiple Data Stream,SIMD)指令,可以對此進行高速計算。
式(1.1)可視為兩個矢量的點積,即(x0, x1, x2,…, xn)(w0, w1, w2,…, wn)。點積是計算機中使用的最基礎的線性代數運算,僅僅是兩個矢量中相關元素的乘積累加。矢量的集合是矩陣(也可稱為一種張量,矩陣是二階張量)。換句話說,如果矩陣和矩陣相乘,則可以高速處理矩陣和矢量的乘法,可以同時執行許多乘積累加運算。

圖1.5 最簡單的神經網絡(左)和深度神經網絡(右)
矩陣和矩陣的乘法及矩陣和矢量的乘法可以針對每個行和列并行計算,因此很適合多處理器并行處理。此外,在神經網絡中,由于只有前一層的結果(神經元值)涉及特定神經元的計算,并且不依賴同一層的神經元計算,因此神經元值可以并行處理。
由此可見,AI芯片(這里指用于深度學習加速的芯片)的本質是“高速張量運算及并行處理”。神經網絡處理單元主要就是由乘積累加模塊、激活函數模塊和匯集模塊組成的。
1.2.3 深度學習如何進行預測
通過使用構造相對簡單的深度神經網絡(DNN),可以實現傳統上用復雜邏輯才能實現的功能,如識別和預測等。這里舉一個簡單的例子,來說明深度學習如何進行預測。圖1.6是一個正弦函數y=sin(Ax),參數A控制正弦波的頻率。對于人類來說,一旦我們理解了正弦函數,就能知道它在任何參數A下的行為。如果我們得到一個部分正弦波,就可以弄清楚它應該是什么樣的波,并且可以將波外推到無窮大。

圖1.6 正弦波的預測
深度學習可以預測參數A未知的正弦波。這是一個時間序列預測問題。我們希望能在訓練期間模型從未見過參數A的情況下,預測其未來的值。
正弦波通常通過泰勒級數展開等方法計算。但是如果創建一個對應表,就將立即獲得一系列正弦波的值,給定一些與函數sin(Ax)匹配的數據點,就可以嘗試預測未來的值。簡單地說,神經網絡的學習只是等同于制作圖1.6的對應表。
圖靈獎得主、貝葉斯網絡之父朱迪亞·珀爾(Judea Pearl)在近年的一篇訪談[1]中直言:“當前的深度學習只不過是‘曲線擬合’(Curve Fitting)。這聽起來像是褻瀆……但從數學的角度,無論你操縱數據的手段有多高明,從中讀出來多少信息,你做的仍舊只是擬合一條曲線罷了?!辩隊栠€指出,“當前的機器學習系統幾乎完全以統計學或盲模型的方式運行,不能由此做出未來的高度智能機器?!彼J為突破口在于因果革命,借鑒結構性的因果推理模型,能對自動化推理做出獨特貢獻。
1.2.4 提高性能和降低功耗
人類大腦大約有1000億個神經元。在任何給定的時刻,單個神經元可以通過突觸將指令傳遞給數以千計的其他神經元——即傳遞到神經元之間的空間中,而神經遞質通過這個空間交換。大腦中有超過100萬億個突觸介入神經元信號傳導,在剪除大量連接的同時加強一些連接,使大腦能夠以閃電般的速度識別模式、記住事實并執行其他學習任務。
圖1.7是根據目前世界上主流超級計算機的性能繪出的計算機性能發展與人腦計算性能對比的示意圖。一般來說,由于網絡帶寬等限制因素,超級計算機實際達到的性能(圖中紅線)要比理論值(圖中藍線)低;另外,超級計算機的耗電量極大,導致運行成本非常高。如果按照圖1.7中曲線展示的趨勢繼續發展,說不定再過幾十年,超級計算機在性能上確實可以達到人腦的性能(超過1 ZFLOPS,即每秒超過1021次浮點運算)。這說不定就是人們常說的“奇點”。

圖1.7 超級計算機與人腦的計算性能對比
但是,如果按照目前的技術水平,超級計算機達到人腦性能需要耗費的電力將會是個天文數字,所以實際上是不可行的。在高性能芯片上工作的深度學習系統能效很低,運行功耗非常大。例如,如果為了完成計算密集型任務而并行使用多個GPU,功率很容易超過1000 W。人腦則通常不會完全執行詳細的計算,而只是進行估算,功耗幾乎不到20 W,這只是一般燈泡所需的功率。2016年,AlphaGo對戰圍棋九段高手李世石時,運行該AI程序的服務器功耗達1 MW,將近人腦的5萬倍。
因此,對于AI芯片設計來說,節能是一個亟待解決的重大課題,這里涉及半導體器件、電路甚至半導體材料本身的問題。
另外,與其他應用不同,深度學習算法對網絡帶寬的需求也異常高。在目前一些超級計算機架構設計中,深度學習的運行速度非常慢,其原因是并行深度學習涉及大量參數同步,需要極大的網絡帶寬。如果網絡帶寬不足,那么在某些時候,添加到系統的計算機(或處理單元)越多,深度學習就越慢。因此,針對深度學習的新架構設計非常重要。
1.3 AI芯片的種類
過去,大部分AI模型的建立或算法的運算,都是在以CPU為核心的計算機里進行模擬的結果。
近些年來,正如摩爾定律所揭示的,業界通過在芯片上放置越來越多的晶體管使CPU實現更高的性能。然而,由于嚴格的功耗限制,片上時鐘頻率無法跟隨這種上升趨勢。使用多核處理器可以在不提高時鐘頻率的情況下提高計算性能。因此,從2005年開始,主流廠商轉而采用多核處理器作為克服該問題的替代解決方案。但是很可惜,這種解決方案從長期來看可擴展性并不好。通過在芯片內部添加更多處理器核所實現的性能提升,是以各種快速增長的復雜性為代價的,如核與核之間的通信、內存一致性,還有最重要的功耗問題。
在早期的芯片工藝技術發展節點中,從一個節點到下一個節點允許的晶體管頻率幾乎加倍,并且可以通過降低電源電壓,使功率密度幾乎保持恒定。隨著工藝技術進一步發展,雖然從一個節點到另一個節點的晶體管密度仍會增加,但它們的最大頻率大致相同,并且電源電壓不會相應地降低。結果,現在每個新技術節點的功率密度都在增加。因此,現在最大的挑戰是降低單位平方毫米的功耗和熱量耗散。
這種趨勢很快就會限制內核數量的擴展,就像十多年前單個CPU核時鐘頻率被限制的情況那樣。很多技術論文將這種情形表述為“暗硅”(Dark Silicon)效應——芯片在工作的時候,其中一部分區域必須保持斷電以符合熱量耗散約束條件。用一個簡單的比喻來說,就好像房間里裝了很多幾百瓦的大燈泡,不能同時打開,只能讓其中一部分點亮,如果同時打開,該房間的線路就會因高溫被燒毀。解決此問題的一種方法是使用硬件加速器。硬件加速器可幫助處理器降低工作負載,提高總吞吐量并降低能耗。
現在的絕大多數AI芯片,就是這種硬件加速器。目前市場上第一批用于AI的芯片包括現成的CPU、GPU、FPGA和DSP,以及它們的各種組合。雖然英特爾(Intel)、谷歌(Google)、英偉達(NVIDIA)、高通(Qualcomm)和IBM等公司已經推出或正在開發新的芯片設計,但目前還很難說哪家一定會勝出。一般來說,總是需要至少一個CPU來控制系統,但是當數據流需要并行處理時,將需要各種類型的協處理器(即硬件加速器),這就是專用集成電路(Application Specific Integrated Circuit,ASIC)芯片。
CPU、GPU、FPGA及ASIC這4種芯片有不同的架構(見圖1.8)。下面分別討論這4種芯片。

圖1.8 4種芯片的不同架構
1.CPU
AI算法(包括深度學習算法)可以在通用CPU上實現。由于CPU的普及和通用編程能力,神經網絡技術在開始時期被大量推廣和應用。一些關鍵的算法驗證都是在CPU上完成的。
但是,CPU并不是實現神經網絡的理想硬件。CPU以提供復雜的控制流而聞名,這對于更常規的、基于規則的計算可能是有益的,但對像使用數據驅動方法那樣的神經網絡卻不是那么重要。神經網絡的運行過程幾乎不需要控制,因此在神經網絡計算中,數據流是計算的主要部分,而不是控制流。
另外,對于AI算法的硬件實現和大規模應用來說,高吞吐量和低時延計算的需求在不斷增長,而通用CPU是基于馮·諾依曼(Von Neumann)體系結構的處理器,存在不少結構限制;摩爾定律發展的放慢也意味著CPU的性能無法再得到快速改善。
2.GPU
GPU最初用于快速圖形渲染,它適用于SIMD并行處理,能快速進行圖形渲染相關的浮點密集型計算。GPU架構的發展非常迅速,從一開始的可重構GPU,發展到可編程的大規模并行協處理器,這使它非常適合AI這樣需要高性能并行計算的場景。為了滿足更快和更高精度AI的需求,人們正在繼續推動越來越多并行GPU的開發?,F在,具有超過1000個處理核和很大容量片上存儲器的GPU,其功耗僅為幾瓦。盡管如此,對一些終端應用來說,這樣的能效還不夠高。
另外,利用GPU來模擬類腦架構,如脈沖神經網絡(Spiking Neural Network,SNN),也是一種選擇。其中一種被稱為GPU增強型神經網絡(GPU-enhanced Neural Network,GeNN)的類腦網絡,利用神經網絡算法的并行特性提供仿真環境,可以通過基于代碼生成的方法在英偉達通用GPU上執行。
為了幫助軟件工程師更方便地開發并行軟件,像CUDA這樣的GPU專用編程系統也一直在不斷完善,它可以運行數萬個并發線程和數百個處理器核。但是從本身的架構來說,GPU的設計還存在一些缺陷。例如,很難快速地為GPU加載數據以使它們保持忙碌狀態等。因此,很多人在繼續研究新的GPU架構。無論如何,在模擬大型人工神經網絡時,GPU還是發揮了非常大的作用。
3.FPGA
現場可編程門陣列(Field Programmable Gate Array,FPGA)是一種“可重構”芯片,具有模塊化和規則化的架構,主要包含可編程邏輯模塊、片上存儲器及用于連接邏輯模塊的可重構互連層次結構。此外,它還可能包含數字信號處理模塊和嵌入式處理器核。從電路級設計來看,FPGA可以通過使用觸發器來實現時序邏輯,通過使用查詢表來實現組合邏輯。通過執行時序分析,可以插入流水線級以提高時鐘頻率。從系統級設計來看,FPGA可進行高級綜合,可以將C語言轉換為可綜合的硬件描述語言(Hardware Description Language,HDL),以加速開發過程。
FPGA的優點是非常明顯的。即使在被制造出來以后,FPGA都可以在運行之前和運行期間對硬件進行重構,這給硬件應用帶來了極大的靈活性。因此在20世紀80年代末,賽靈思(Xilinx)公司在最初推出FPGA時就宣稱,它是芯片業界的一場革命。
近年新發布的一些FPGA采用了嵌入式ARM內核的片上系統(System-on-a-Chip,SoC)設計方法。如今,具有約10億個邏輯門復雜度和幾兆字節(MB)內部靜態隨機存取存儲器(Static Random-Access Memory,SRAM)的SoC設計可以用最先進的FPGA實現。它的時鐘頻率接近吉赫茲(GHz)范圍,因此算力可以在幾瓦的功耗下達到GFLOPS的數量級。因此,FPGA為并行實現人工神經網絡提供了一個有吸引力的替代方案,具有靈活性高和上市時間短的優勢。
開發FPGA和ASIC設計的時間基本相當,但FPGA的一大優勢是不需要制造時間,在用有效的EDA工具電路綜合之后,即可直接測試新設計。而且FPGA的并行化程度可以做得很高。但是,與ASIC相比,FPGA的缺點是速度更慢、面積更大、功耗更高。
未來,并行標準芯片(如多核CPU、GPU或FPGA)在市場驅動的開發和改進中具有成本效益高、容易獲得等優勢。它們具有最高的靈活性,不但可以用于深度學習加速器,而且可以用于本書第5章將介紹的類腦架構及其他類型的智能計算和仿生計算。
4.ASIC
ASIC是定制的專用AI芯片,可以在芯片架構和電路上進行優化,以滿足特定的應用需求。無論從性能、能效、成本角度,還是算法的最佳實現方面,ASIC都是標準芯片無法比擬的。隨著AI算法和應用技術的發展,ASIC逐漸展現出自己的優勢,非常適合各種AI應用場景?,F在大部分AI芯片的初創公司,都是以開發一種獨特、新穎的ASIC為目標。
把AI算法“硬件化”,即用ASIC來實現,帶來了高性能、低功耗等突出優點,但缺點也是十分明顯的。ASIC芯片的開發需要很高的成本,一旦設計完畢,交由芯片代工廠流片(即制造芯片),首先需要支付一大筆一次性工程費用。這種費用一般不會低于1000萬美元。這對中小型企業,尤其是初創公司來說,是一道很高的門檻。而AI又屬于一個技術迭代速度很快的領域,現在幾乎每隔幾個月就會有新的算法和模型出現,這對于開發芯片的公司來說,意味著很大的商業風險。
ASIC芯片一旦開始批量生產,就無法再改動里面的硬件架構。萬一市場對AI芯片功能的需求出現重大變化,或者研發成功了新的AI算法,那這款芯片就只能被淘汰而由芯片設計者繼續開發新的芯片。有的公司為了及時使用新的算法,甚至需要中途從代工廠召回正在生產的ASIC芯片,以更新芯片設計。
為了避免這種風險,除了選用靈活性很高的FPGA來實現之外,還可以采用模塊化設計方法,即形成一個IP核(知識產權核,Intellectual Property Core)的庫,可以根據設計需要來選取。
目前比較前沿的研究是設計“可進化”芯片,它基本上接近通過芯片的“自學習”來提升芯片自身的性能。AI芯片的最終目標是能夠“自學習”,即芯片能夠自己學習“如何學習”;另外一個重要目標是做到智能機器之間(相當于AI芯片之間)的相互學習和協調,從而使智能機器自己得到更多的知識。這種“自學習”的性能,很可能隨時間呈指數級提升,并將最終導致智能機器的智能水平超越人類。這條路雖然還很漫長,但是一些研究人員已經開始起步。
圖1.9為不同種類的AI芯片及其計算范式。

圖1.9 AI芯片的種類及其計算范式
1.3.1 深度學習加速器
FPGA、GPU和多核CPU處理器等并行標準芯片種類的日益豐富,為人工神經網絡的實時應用提供了更大的選擇范圍。由于這些標準芯片價格低廉且可從市場上直接獲得,采用它們實現神經網絡計算比較容易起步。
深度神經網絡本質上是并行的,因此很明顯,使用多核處理器來實現深度神經網絡是有吸引力的?!安⑿杏嬎恪边@個概念讓很多研究人員至少著迷了30年。過去一段時間,人們在并行計算領域付出的努力已經讓市場看到了希望并聚集了不少投資。但截至目前,單處理器計算仍占上風。然而,通用計算正在向并行架構邁出不可逆轉的步伐,因為單線程單處理器的性能無法再以過去那種速度提高。
具有高度并行性的神經網絡的興起,使人們對高性能并行計算的需求又一次被提上日程。真實世界的應用是并行的,硬件也可以做到并行,而缺少的是編程模型和支持這些不斷發展的大規模并行計算體系結構的系統軟件。此外,如何在多核架構的計算能力、存儲器容量及內部和外部通信帶寬之間取得平衡,目前尚無明確共識。
在并行超級計算機或計算機網絡上模擬大型神經網絡,把神經網絡映射到多核架構方面,已經有了很多研究成果,各種技術被開發出來。多核處理器也可以嵌入機器人或智能手機這樣的移動設備里。
如前文所述,深度學習算法中的大部分處理涉及矩陣乘法。GPU擅長矩陣和矩陣的乘法,以及矩陣和矢量的乘法。在GPU中,這些乘法被大量用于三維坐標的轉換。GPU具有數百到數千個乘積累加的核,適用于張量處理。正是由于這個原因,英偉達的GPU以作為AI芯片而聞名。當然,使用配備DSP或SIMD指令的處理器也可以完成類似的處理,但很少有處理器能在核的數量及并行處理能力方面與GPU相當。
但是,由于GPU主要用于圖形處理,因此它還包含張量處理之外的其他功能,這導致了高功耗。因此,業界已經開發出具有專用于張量處理功能的結構的ASIC芯片?;趲资甑募夹g積累,深度學習算法正在投入實際應用。為了達到更好的應用效果,需要有這種專用的AI芯片來加速處理深度學習,幫助多核CPU處理器加速運算。今后的趨勢是把這類加速器和多核CPU處理器集成到同一塊芯片中。
總之,雖然AI芯片的開發主流都是基于深度學習算法,但是深度學習本身也在不斷改進和更新。從2009年開始,深度學習相關的論文數量每隔兩年都會翻一番;2018年之后,每天約有100篇關于這方面新的算法和思路的技術論文發表。這說明深度學習仍然是一個重要的研究領域,有許多有前景的應用和各種芯片設計的創新機會。
1.3.2 類腦芯片
要讓AI芯片達到更高的智能水平,非常重要的一點是要使神經網絡的運作模式更像人類大腦。除了大學研究所之外,很多開發AI芯片的公司專門成立了“腦神經科學”部門(如被谷歌收購的DeepMind),以進一步研究人腦的思考過程,建立更科學、更符合生物特性、更細致的神經網絡模型。
本書1.3.1節中講到的深度學習加速器,就是在如何提高乘法計算和累加計算的性能上下功夫。為了貼近大腦的生物特性,AI芯片應該具有在模擬而非數字方面更準確地模擬人類大腦運作的功能。用這種方法開發的AI芯片被稱為類腦芯片或者神經形態芯片。這種芯片基于新的芯片架構,關鍵組成部分包含脈沖神經元、低精度突觸和可擴展的通信網絡等。脈沖神經元的概念直接來源于哺乳動物大腦的生物模型,其基本思想是神經元不會在每個傳播周期都被激活,只有在膜電位達到特定值時才會被激活。膜電位是與細胞膜上的電荷相關的神經元的內在參數。
這類芯片的特點是基本上沒有時鐘,它采用事件驅動型操作(如模仿人類大腦電脈沖的脈沖神經網絡),因此它的功耗遠低于那些基于DSP、SIMD和張量處理等處理方式的芯片。
在過去10年中,美國和歐洲的大型政府資助計劃都聚焦于神經形態芯片的開發。這些芯片按照以生物學為基礎的原理運行,以提高性能和能效。例如,有些項目直接把許多輸入“硬”連接到各個電子神經元,而有些項目使用類似生物神經元之間發生的短異步尖脈沖電壓進行通信。
每個神經元、突觸和樹突均可以采用數字或模擬電路來實現。但是實際上,新的類腦芯片通常仍以傳統的數字電路實現。對于數字芯片,我們可以使用有效的EDA軟件工具來實現快速、可靠和復雜的設計,也可以使用最先進的生產線來生產器件密度最高的芯片。
而模擬電路的設計需要更多的設計時間,且設計人員需要具備良好的晶體管物理理論知識和布局布線設計的熟練經驗。另外,只有少數工藝線(如TI等擁有的)以模擬電路為主要產品,對模擬電路的工藝流程有足夠的經驗。
此外,也有一些研究人員已開始將一些新型半導體器件,如阻變存儲器(Resistive Random Access Memory,RRAM)技術應用于脈沖神經網絡,來實現實時分類。
大約自2018年起,深度學習加速器在性能上有了飛速發展,占領了主流市場(這導致目前大部分人講到AI芯片就只指深度學習加速器),而類腦芯片在性能上與這些深度學習加速器拉大了距離。類腦芯片在截至本書成稿時還無法真正商用。
因此,有家初創公司想走一條捷徑:試圖仍然使用深度學習的基本框架來保持較高的計算性能,而把類腦芯片的一些優點結合進去,如使用脈沖來激活深度學習中的輸入,這樣也可以比一般的深度學習模型大大降低功耗。這種思路仍然是深度學習的思路,而并非是類腦芯片。
個別研究深度學習的權威專家甚至認定基于神經形態計算的類腦芯片方向走不通,不如繼續沿著深度學習這個思路深入研究下去。然而,類腦芯片不光是學術界實驗室的產物,在產業界也有很多團隊仍然在積極研究。更重要的是,深度學習更多地被視為一種數學模型,而類腦芯片才更接近模擬大腦功能的實際特征,因此有著達到高能效的巨大潛力。英特爾等公司的研究結果表明,當正確準備好數據時,這種神經形態計算可能非常強大,這可能會為新型電子產品提供機會。
1.3.3 仿生芯片及其他智能芯片
自然計算和仿生計算都是隨著計算機硬件和計算機科學的進步而發展起來的。這些計算范式和算法涵蓋了非常廣泛的領域,其中發展最快的要數現在用得最多、最廣的人工神經網絡,這也是芯片實現最成功的領域。因為神經網絡已在前文單獨敘述了,本節介紹自然計算與仿生計算時就不再贅述。
自然計算包含的范圍很廣,它不但包括對生物機制的模擬,還包括對大自然的物理(包括量子物理)、化學現象,及社會、文化、語言、情感等復雜自適應系統等的模擬,具有一定的智能機制。它被用來解決傳統算法解決不了的問題,主要是在解決最優化問題上顯示出強大的生命力和進一步發展的潛力。由于這類計算把大自然中有益的信息處理機制作為研究和模仿對象,也有人把這類算法稱為“智能算法”。
自然計算的算法有退火算法、遺傳算法、文化算法、蟻群算法、細胞神經網絡、模糊算法、情感計算的算法、煙花算法等,也包含量子算法。這些算法可以用數字芯片或模擬芯片實現,很多是用FPGA實現,或者僅利用多核CPU進行模擬。而最近幾年備受矚目的量子計算,也有不少公司和大學研究所采用普通互補金屬氧化物半導體(Complementary Metal Oxide Semiconductor,CMOS)硅基芯片,或硅光芯片來實現?,F在,研究人員已經看到了用這樣的芯片實現量子機器學習、量子AI計算的曙光。
仿生計算是對大自然生物機制的模擬,包含遺傳計算、細胞自動機/細胞神經網絡、免疫計算、DNA計算(又稱分子計算)等。生物體的自適應優化現象不斷給人以啟示,尤其是生物體和生態系統自身的演進和進化可以使很多相當復雜的優化問題得到解決。仿生算法主要利用FPGA實現,因為仿生芯片需要支持運行期間的硬件動態重構,還要有一定的容錯性和魯棒性。仿生計算應該屬于上述自然計算的范疇,但因為它對AI芯片的未來發展會有重大影響,所以在這里專門列出。
如前文所述,AI芯片的一個關鍵問題是“自學習”及“自進化”。這依靠什么來解決呢?如果我們關注一下仿生芯片的幾大特點,就會有比較清楚的認識了。
(1)仿生芯片無須人工干預,通過自身在線進化,可以實現自動升級(不僅是軟件升級,更主要是硬件升級)和自動設計。
(2)仿生芯片可以根據環境變化自適應調整硬件電路結構。隨著芯片技術的進步,現在已經可以做到接近實時(10~15個時鐘周期)的自適應速度,就是說像一條變色龍那樣,到一個新環境,馬上就“變色”(改變硬件電路)。
(3)仿生芯片可以自己修復錯誤?,F在芯片的線寬已經達到7nm及以下,非常難以控制故障的出現。仿生芯片具備容錯功能,能自動恢復系統功能。
(4)仿生芯片和深度學習加速器芯片結合,可以進一步提高運算速度,適應算法的不斷更新。
業界把仿生芯片的這些特點,總結為“有機計算”的范式,也成立了專門的國際組織來討論和交流這一領域的進展和趨勢(見第12章)。
類似大腦架構和受自然界生物啟發的自適應和模糊控制,投入實際使用已有20多年,但它們仍局限于僅面向某個功能,且對產品或服務的技術性能要求不高的應用?,F在,隨著AI芯片熱潮的興起,仿生芯片和其他智能芯片將會大有用武之地。仿生計算和其他智能計算的基本思路,既可以作為一種應用,用于AI芯片本身的擴展和完善,形成不同程度的“自學習”及“自進化”功能(如使用受量子物理啟發的算法),又可以與目前的AI芯片結合起來,如應用仿生算法對DNN的架構進行神經架構搜索(Neural Architecture Search,NAS)及超參數優化,進一步提升深度學習的性能和能效。
1.3.4 基于憶阻器的芯片
20世紀80年代初興起的CMOS電路及其工藝實現,是芯片技術發展的一個重大里程碑。直到今天,芯片實現的基礎還是CMOS。除CMOS技術外,憶阻器(Memristor)也是深度學習加速器和類腦芯片的潛在硬件解決方案?!癕emristor”一詞是Memory和Resistor這兩個英文單詞的組合。憶阻器是新穎的兩端元件,能夠根據在其端子上施加的電壓、電流來改變其電導率,最早是由美籍華人蔡少棠(Leon Chua)教授于1971年基于電路理論推理發現并證明的。蔡教授為找到電子學中除了電阻器、電感器、電容器之外的第4個基本電路元件而興奮不已:當分別把電流、電壓、電荷和磁通量畫出4個區域時,其中3個區域可以對應電子學的3個基本電路元件——電阻器、電容器和電感器,剩下的一個區域對應一種非常獨特的電子特性,但是當時只能從理論上證明會有這樣一種基本電路元件存在(見圖1.10)。

圖1.10 4個基本的兩端電路元件[2]
電阻器由電壓v和電流i之間的關系定義;電感器由磁通量φ和電流i之間的關系定義;電容器由電荷q和電壓v之間的關系定義;憶阻器則通過磁通量φ和電荷q之間的關系來定義。憶阻器的特性i/v方程可近似表示為

式中,iMR、vMR分別是憶阻器兩端的電流和電壓降;G(w,vMR)是隨施加電壓變化的電導(假設電壓或磁通量受控制)的元件模型;w是物理特征參數,其變化通常由所施加電壓的非線性函數fMR決定。
直到2008年,惠普公司的斯坦利·威廉(Stanley Williams)等人第一次在實驗室里將用二氧化鈦(TiO2)制成的納米元件夾在兩個鉑電極之間(Pt-TiO2-x-Pt),做出了世界上第一個基于TiO2薄膜的基本元件,即憶阻器。從那時起,研究人員已經發現并提出了許多納米級的電阻材料和結構,最典型的是基于氧化還原的阻變存儲器。

圖1.11 憶阻器由縱橫交叉棒組成的交叉開關陣列來實現
從圖1.11可以看到,憶阻器本身就像一個矩陣排列,兩根交叉棒(Crossbar)的交叉點(Cross Point,又稱交叉開關)就是可變電導與電壓的相乘,而利用把這些交叉開關連起來的電流,就可以實現累加。具體來說,以電阻的電導為權重,電壓為輸入,電流為輸出,來進行乘法運算;通過將不同憶阻器的電流相加來完成加法。這是根據基爾霍夫電流定律而來的,比用數字電路來實現乘積累加簡單、直接得多。
乘積累加操作可以通過將憶阻器這樣的可編程阻變元件直接集成到非易失性高密度存儲芯片中來實現。處理單元被嵌入存儲器中,可減少數據移動。而在與動態隨機存取存儲器(Dynamic Random-Access Memory,DRAM)密度相當的情況下,將存儲器與處理單元集成在一起,可使芯片密度大大提高,并可大大節省存取時間,從而降低功耗。這就是存內計算(Processing In Memory,PIM)[1]技術,又稱為存算一體化。目前比較熱門的新型非易失性存儲器(Nonvolatile Memory,NVM)包括相變存儲器(Phase ChangeMemory,PCM)、阻變存儲器(RRAM或ReRAM)、導電橋RAM(Conductive Bridging Random Access Memory,CBRAM)和自旋轉移力矩磁性RAM(STT-MRAM或STTRAM,是幾種已知的磁性RAM技術之一)等。這些器件在耐久性(即可寫入多少次)、保留時間、寫入電流、密度(即單元尺寸)、不一致性和速度方面各有不同的特點。
憶阻器的陣列結構最適合進行點積乘法和累加運算,而這類運算占深度學習算法中的絕大部分。由憶阻器組成的芯片因為不使用或很少使用有源器件,從而可以使芯片的功耗大大降低。對于AI芯片來說,這提供了使用數字模擬混合信號電路設計和先進PIM技術來提高效率的機會。當然,所有這些技術也應該結合起來考慮,同時要仔細了解它們之間的相互作用并尋找硬件和算法協同優化的機會。
憶阻器除了適合大規模乘積累加運算外,它的結構也與基于腦神經元的類腦結構十分吻合。因此,用大量憶阻器陣列來組成類腦芯片,會有非常誘人的前景,也有各種硬件設計的創新機會。例如,把憶阻器做成可重構電路;把憶阻器做成多端口晶體管,以進一步模仿神經元中的多個突觸;或者做成混沌電路后,利用混沌電路的非線性特性來模仿大腦行為等,這些新的想法正在引起研究人員的廣泛興趣(見圖1.12)。

圖1.12 憶阻器的主要應用
雖然現在已有很多研究團隊制作出了第一代含有憶阻器的AI芯片(基于RRAM),但是目前還處于在實驗室進行小批量試用的階段。有的實現了模擬RRAM,有的則實現了數?;旌蟁RAM存內計算。但是,工藝不一致性、電路噪聲、保持時間和耐久性問題等現實挑戰,仍然阻礙著基于RRAM的AI芯片的商業化。而模擬矩陣乘法面臨的精度低、器件不一致性高和模數轉換功耗大等問題,還亟待解決。
1.4 AI芯片的研發概況
AI芯片的研發熱潮,主要集中在ASIC芯片領域。除了各大公司及不斷出現的初創公司積極投入之外,大學和研究機構也起到了關鍵的作用,有的已經有十多年甚至更長時間的技術積累。目前引人注目的來自大公司的ASIC芯片,以谷歌的張量處理單元(Tensor Processing Unit,TPU)系列為代表。高通在2019年4月發布的Cloud AI 100系列,也是AI芯片性能的一次飛躍。但是,“爆炸式”出現的很多初創AI芯片公司,在技術層面也絕不落后于大公司。
表1.1列出了ASIC芯片與一些CPU、GPU和FPGA的參數對比。在“訓練”和“推理”兩欄中,CPU的能效和速度為基數,其他都是與CPU相比較的倍數。FPGA因為很少用于訓練,因此其訓練能效和速度沒有數據。ASIC芯片主要是指深度學習AI芯片,雖然與原來的CPU和GPU相比已經有了巨大進步,但性能和能效方面還有巨大的提升空間。
表1.1 ASIC芯片與CPU、GPU和FPGA的參數對比

然而,要確定CPU、GPU、FPGA和ASIC究竟哪一種才是最佳解決方案并非易事,因為這取決于AI應用類型和范圍、設計約束及所要求的上市時間等。如果上市及應用時間緊,那就只能選擇GPU或嵌入式GPU。FPGA的上市時間相對ASIC也較短,設計流程簡單,也常用作設計ASIC之前的原型。另外,用于云端和邊緣側的芯片要求完全不同,云端服務器里的AI芯片需要很大的吞吐量和靈活性,而邊緣側物聯網則需要功耗極低、面積很小的AI芯片。
AI芯片要實現大規模商業化,需要保證芯片能夠在極低的功耗和成本條件下達到足夠高的性能,能夠滿足新的AI模型和算法的運算需求。雖然目前的硅基AI芯片只能算是非常初級的嘗試,離生物大腦的性能或能效還有很長的路要走,但是已經形成了很好的發展勢頭。
雖然深度學習加速器近年來已成為主流的AI芯片類型,但是“AI”不等于“深度學習”。AI是一個包含廣泛方法的領域,其目標是創建具有智能的機器,而深度學習本身作為AI的一個子領域,是機器學習領域里眾多方法中的一種。
表1.2列出了AI芯片研發和產業化概況(截至2020年9月)?;谏疃葘W習模型的加速器已經相對比較成熟,有的已經得到批量應用;而基于其他算法,包括在原來深度學習模型上進行了大量改動的新模型和新算法的AI芯片,大部分還處于實驗室研發階段。接近大腦機制的類腦芯片,最近幾年有了很大的進展。量子啟發模型比較特殊,已經成功做成了樣片,預計在2020~2022年上市??偟膩碚f,如果我們把AI芯片目前的狀況與英特爾x86時代進行類比,可以說我們現在正處于AI芯片的“286階段”,或者說AI芯片剛處于AI 1.0時代;而以存內計算、模擬計算和新型存儲器(如NVM)為代表的AI 2.0時代將會在未來幾年到來。
表1.2 AI芯片研發和產業化概況(截至2020年9月)

1.5 小結
世界上第一塊半導體芯片的發明,不但催生了一個巨大的半導體芯片產業以及以此為核心的電子信息產業,而且改變了地球上億萬人的生活和工作方式。如今AI浪潮的興起,又把半導體芯片推到了風口浪尖:基于AI算法運行的芯片(即AI芯片),已經成為最有發展前景、最有可能改變世界的高科技之一。
以深度學習算法為主發展起來的深度學習AI芯片(深度學習加速器),已經形成了具有一定規模的產業,也已經在許多領域得到了部署和應用。作為AI芯片另一個類別的基于神經形態計算的類腦芯片,近年來也取得了非常令人鼓舞的進展。除了這兩種芯片之外,根據許多新穎的AI算法實現的各種AI芯片,也正在得到世界各地實驗室的積極研發。
要做出高性能、高能效并且可以覆蓋較大應用范圍、解決實際問題的AI芯片,既需要實踐中的突破,也需要理論上的創新。最好的例子是新型元件憶阻器的研發過程:從1971年的理論創新,到2008年的實踐突破,再到2018年成功用于深度學習AI芯片。這個過程說明了理論(尤其是基礎理論)指導的重要性,也說明了這些理論研究最后被應用到芯片中之前,還需要先在電路、元器件、材料等工程實踐領域有所突破。