0
本文作者: 包永剛 | 2020-08-12 14:27 | 專題:CCF-GAIR 2020 全球人工智能與機器人峰會 |
雷鋒網(wǎng)按:2020年8月7日-8月9日,2020第五屆全球人工智能與機器人峰會(CCF-GAIR 2020)于深圳正式召開。峰會由中國計算機學(xué)會(CCF)主辦,香港中文大學(xué)(深圳)、雷鋒網(wǎng)聯(lián)合承辦,鵬城實驗室、深圳市人工智能與機器人研究院協(xié)辦,得到了深圳市政府的大力指導(dǎo),旨在打造國內(nèi)人工智能領(lǐng)域極具實力的跨界交流合作平臺,是國內(nèi)人工智能和機器人領(lǐng)域規(guī)模最大、規(guī)格最高、跨界最廣的學(xué)術(shù)、工業(yè)和投資領(lǐng)域盛會。
CCF-GAIR 2020的AI芯片專場,來自學(xué)術(shù)界、產(chǎn)業(yè)界和投資界的6位大咖從AI芯片技術(shù)前沿、AI芯片的應(yīng)用及落地、RISC-V芯片推動AI發(fā)展、新基建帶來的投資機遇共同探討新基建帶來的機遇。
清華大學(xué)副教授高濱從AI芯片技術(shù)前沿的角度,帶來了《基于憶阻器的存算一體芯片技術(shù)》的主題分享。
清華大學(xué)副教授高濱
高教授首先帶我們回顧了現(xiàn)代計算的演變,從圖靈機到現(xiàn)代計算系統(tǒng)中的三大基石:晶體管、布爾邏輯計算、馮諾依曼架構(gòu)。高教授表示:“近幾年AI對算力的需求是爆炸式的增長。芯片算力的提升與需求增長之間有一個很尖銳的矛盾?!?/p>
這個尖銳的矛盾主要有兩個原因:摩爾定律放緩以及馮諾依曼架構(gòu)帶來的存算分離局限。這讓芯片面臨著算力和能效兩大挑戰(zhàn)。
要解決矛盾和挑戰(zhàn),需要三大基石都革新的存算一體計算機。高濱表示:“器件層面,憶阻器可以把馮諾伊曼架構(gòu)里的處理、內(nèi)存、外存都融合在一起,構(gòu)建存算一體陣列,這也是存算一體最基本的要素。計算的范式層面,存算一體也從布爾邏輯計算變成了基于物理定律的模擬計算,架構(gòu)變成存算一體架構(gòu)。”
但新的計算系統(tǒng)因為憶阻器的穩(wěn)定性、計算誤差累積等問題,2018年以前完整的存算一體芯片和系統(tǒng)并沒有突破。直到高濱所在的清華大學(xué)錢鶴、吳華強團隊通過憶阻器件、電路、架構(gòu)、算法等層面的創(chuàng)新,設(shè)計出全球首款全系集成的憶阻器存算一體芯片,用130nm的工藝制造出計算精度與28nm樹莓派CPU相當(dāng)?shù)臏蚀_度,速度快20倍,能效也比GPU高3個數(shù)量級。
展望未來,高濱教授希望通存算一體技術(shù),可以使計算的能效有百倍到千倍的提升,使單芯片的算力達到500TOPs甚至1POPs。
高濱的團隊實現(xiàn)了哪些突破?他們的目標能否實現(xiàn)?高濱教授的演講中有更多信息。
以下是高濱教授在 CCF-GAIR 2020上的演講內(nèi)容,雷鋒網(wǎng)對其進行了不改變原意的編輯整理:
現(xiàn)代計算系統(tǒng)的演變
現(xiàn)在的計算系統(tǒng)多種多樣,小到手機、平板電腦,大到服務(wù)器、超級計算機。這些設(shè)備有一個共同點——本質(zhì)上都是圖靈機。
圖靈機是在1936年由圖靈提出,主要目的是解決機器的可計算性。他提到了圖靈機的幾個關(guān)鍵要素,包括一條無限長的紙帶、一個讀寫頭、一套控制規(guī)則,還有一個狀態(tài)寄存器。有了這些東西,就可以實現(xiàn)通用的計算機。它相當(dāng)于計算系統(tǒng)架構(gòu)的雛形。
從現(xiàn)在的觀點看,這些要素對應(yīng)了現(xiàn)在計算設(shè)備里面的CPU、存儲器、I/O等各個模塊,所以圖靈機有非常重大的理論意義。
在這個基礎(chǔ)上,現(xiàn)在的計算設(shè)備形成了一套體系,我們稱它為經(jīng)典計算機,因為現(xiàn)在的計算系統(tǒng)基本都是這樣的框架。這也與后面要介紹的新型計算機有對應(yīng)。
傳統(tǒng)的計算機有三大基石,這三大基石也是構(gòu)成現(xiàn)代計算機最基本的要素。第一個基石是晶體管,它是構(gòu)成芯片的最基本的半導(dǎo)體器件。第二個基石是布爾邏輯計算,它給出了一套計算規(guī)定。第三個基石是馮諾依曼架構(gòu),在上面形成了處理器芯片、存儲芯片,構(gòu)成了計算機的硬件系統(tǒng)。當(dāng)然它本質(zhì)上都是圖靈計算機。硬件之上,經(jīng)典計算機還有軟件,包括匯編語言、編譯器、編程語言,以及與用戶直接交互的應(yīng)用軟件。
接下來了解下三大基石的演變過程。說到布爾邏輯運算,就不得不提到世界第一臺計算機阿塔納索夫-貝瑞計算機ABC。ABC基于真空管制造,用于美國的大學(xué)的教學(xué)。ABC重要的意義在于首次引入數(shù)字計算二進制的思想,通過二進制電子開關(guān)做加法和減法的運算?,F(xiàn)在看來這個算力非??蓱z,每秒只能做大概30次加減法,但其實已經(jīng)比人要快很多。
幾年以后,二戰(zhàn)爆發(fā),美國發(fā)現(xiàn)如果讓人計算彈道,雇用200多名受過專業(yè)訓(xùn)練的計算員至少2個月才能完成一張射表。因此,美國組織了很多科學(xué)家在1946年建造了非常著名的第一臺通用電子計算機——ENICA。這臺計算機的算力是每秒5000次加法或400次乘法。
ENICA建造完成以后,團隊里一個很重要的工程師馮諾依曼開始反思,之后寫了一個報告,報告里明確提到,未來的計算機應(yīng)該包括控制器、存儲器、運算器這樣幾個部分,也就是現(xiàn)在所說馮諾依曼的體系結(jié)構(gòu)。馮諾依曼架構(gòu)的意義非常重大,這種存儲與運算分離的設(shè)計,大大簡化了計算機的設(shè)計,也讓編程、各種控制都變得很簡單。
一年后,三位物理學(xué)家巴丁、肖克利、布賴坦發(fā)明了晶體管。有了晶體管之后,三大基石完整了,集成電路就開始蓬勃發(fā)展。
20多年以后,英特爾的創(chuàng)始人戈登摩爾,通過觀察集成電路的發(fā)展趨勢,總結(jié)出了摩爾定律。
在摩爾定律的驅(qū)動下,芯片算力不斷發(fā)展,從早期的CPU到現(xiàn)在的各種高端芯片,都有了長足的進步。
人工智能發(fā)展對硬件的挑戰(zhàn)
但AI對算力的需求越來越高,硬件的挑戰(zhàn)也越來越大。
算力是AI的三大要素之一,AI技術(shù)出現(xiàn)以來,算力和人工智能一直是一個相互促進的發(fā)展。最近幾年,之所以AI有長足的進步,一個很重要的事件就是GPU的出現(xiàn)。GPU相當(dāng)于開啟了深度學(xué)習(xí)的黃金時代,通過并行的加速,讓深度神經(jīng)網(wǎng)絡(luò)有了很強的硬件的支撐。
不過,近幾年AI對算力的需求是爆炸式的增長。所以芯片算力的提升與需求增長之間有一個很尖銳的矛盾。下圖顯示了單芯片算力的變化,2010年以前,CPU算力是一條非常漂亮的指數(shù)增長,沿摩爾定律發(fā)展。
2010年以后,芯片的算力很難再提升。當(dāng)然,最近10年GPU的發(fā)展很快,它明顯比CPU的算力有數(shù)量級的提高。但即便這樣,GPU算力提高的速度也在逐漸飽和。
AI算法對算力的需求卻正好是一個反過來的趨勢,2010年以前的幾十年,雖然AI對算力的需求越來越高,但總體而言可以滿足需求。過去的這幾年突然出現(xiàn)了拐點,呈現(xiàn)出爆炸式的趨勢增長,它不但是指數(shù),而且每年都是幾個數(shù)量級的翻番。
仔細看就會發(fā)現(xiàn),AI算法對算力的需求每3-4個月就會翻一番,這非??植?傳統(tǒng)芯片很難跟上算力需求增長的步伐。
要想解決這個問題,要從根源上找原因。芯片算力增長越來越緩主要有兩個原因,一個是摩爾定律變緩。現(xiàn)在高端芯片基本都是7納米、5納米,一個原子大概也就是1納米的尺寸。晶體管微縮越來越難,面臨各種物理極限挑戰(zhàn)。過去幾十年芯片的性能提升伴隨摩爾定律的發(fā)展,但是這條路以后想往下走會越來越難。
第二個原因是馮諾依曼架構(gòu)帶來的存算分離局限。馮諾依曼的架構(gòu)簡化了設(shè)計,讓開發(fā)變得簡單,但馮諾依曼這個架構(gòu)存儲和計算物理上是分離的,所計算的過程中需要不斷的通過總線交換數(shù)據(jù),把數(shù)據(jù)從內(nèi)存讀到CPU里,計算完后再寫回存儲。
在這個過程中,我們希望存儲和CPU的速度差不多,但實際上存儲速度遠低于計算速度。中間這個圖是一個典型的存儲器的體系結(jié)構(gòu),實際上主存DRAM芯片的速度遠低于CPU的緩存和計算的速度,DRAM讀每個比特的功耗也比CPU高很多。
另外就是總線傳輸,根據(jù)臺積電的數(shù)據(jù),10納米的工藝下,數(shù)據(jù)的傳輸和緩存已經(jīng)占比超過60%,達到了69%。所以大部分的功耗和延遲不是用在計算上,而是用在數(shù)據(jù)在總線上的傳輸。
更可怕的是,這個統(tǒng)計只是普通的科學(xué)計算,這些計算的數(shù)據(jù)緩存量并不是很高,大部分的AI算法都是數(shù)據(jù)密集型計算,數(shù)據(jù)量更大。對AI的算法,這樣一個傳輸?shù)墓暮脱舆t的占比可能都超過99%。這一現(xiàn)象通常被稱為存儲墻的問題。
這讓芯片面臨兩個巨大的問題,一個是算力不足,還有一個是能效過低。所以我們就需要從集成電路的三大基石來考慮,通過引入新架構(gòu)和新器件來解決芯片的算力和能效的不足。
具體怎么做呢?看看歷史的發(fā)展,從最早期的傳統(tǒng)計算機到最近這幾年通過多核并行加速的技術(shù)。有了AI以后,學(xué)術(shù)界、產(chǎn)業(yè)界開始考慮用近存計算,馮諾依曼架構(gòu)的存算分離是一個很重要的瓶頸,把存儲和計算盡可能的做得近,像谷歌很著名的TPU就是采用了這樣一個近存計算的思想,還有GPU也采用這個思想。
比如,把片上做很大容量的SRAM,或集成3D DRAM,像HBM,堆到計算芯片上面,從一定程度上緩解了存儲墻的問題,但是并沒有本質(zhì)解決。要想從本質(zhì)解決這個問題,就需要進一步把存儲和計算融合在一起,這就出現(xiàn)了存算一體的技術(shù)。存算一體技術(shù)用一種新的半導(dǎo)體器件,這種器件既能夠做計算又能夠做存儲,實現(xiàn)了最底層的融合。
對于存算一體,國內(nèi)外都在關(guān)注,比如IBM就公布了他們的三步曲,第一步是想采用近似計算的數(shù)字AI芯片,第二步是基于模擬計算的AI芯片,第三步是采用優(yōu)化材料體系的模擬計算芯片,用這種新材料、新器件來做。
在國內(nèi),去年華為任正非就專門提到邊緣計算不是把CPU做到存儲器里面,就是把存儲做到CPU里,這改變了馮諾依曼結(jié)構(gòu),存儲和計算合二為一,速度更快。
今年,阿里達摩院在未來十大科技趨勢的第二條就提到,馮諾依曼架構(gòu)的存儲和計算分離,已經(jīng)不適合數(shù)據(jù)驅(qū)動的人工智能的應(yīng)用,要把它們合在一起突破AI算力瓶頸。
存算一體技術(shù)的研究進展
什么是存算一體的技術(shù)?存算一體技術(shù)現(xiàn)在發(fā)展到什么樣的程度了?剛才我就提到,想做存算一體,首先得有一種新的器件,能夠融合計算和存儲。什么器件能做到這一點呢?這就要先講憶阻器的概念。
憶阻器其實也是一個很古老的概念,是由蔡少棠這位伯克利大學(xué)的華裔教授提出,他在1971年的時候預(yù)測了有這樣一種新的器件,當(dāng)時完全是從物理理論來分析,把電路里最基本的三種無源器件:電阻、電容、電感擺起來,發(fā)現(xiàn)從對稱性的角度來說少了一塊。
蔡少棠教授通過理論推導(dǎo),最后發(fā)現(xiàn)如果有他稱為憶阻器的新器件,把憶阻器加進這個圖里,整個對稱性就非常完美了。但幾十年來一直沒有人能做出來,一直到2000年以后,很多公司和學(xué)校逐漸把憶阻器做出來了。
憶阻器本身是一個兩端型的器件,上下兩個電極,中間一個介質(zhì)層,介質(zhì)層的電阻可以發(fā)生變化。而且,這種變化是非易失的,也就是掉電以后,電阻的狀態(tài)仍能保持。
憶阻器剛做出來,很多企業(yè)都說用它做存儲很好,比現(xiàn)在的技術(shù)要快很多,近期大家發(fā)現(xiàn)它還可以做計算,因為它的很多特性跟生物的神經(jīng)突觸很像,所以有些人又把它稱為電子突觸。
基于憶阻器,就可以把原來馮諾依曼架構(gòu)里面的處理器、內(nèi)存、外存都合在一起,用一個憶阻器的陣列來做,稱它為存算一體陣列。
其中,最基本的要素就是我要把憶阻器的性能做好,要讓這一個器件能夠存儲多比特的數(shù)據(jù),而且還要速度快、功耗低。另外一方面,這種新的計算范式不再是傳統(tǒng)的布爾邏輯計算,而是基于物理定律來計算。
舉一個很經(jīng)典的例子,用憶阻器陣列來算矩陣的乘法。向量矩陣乘法在神經(jīng)網(wǎng)絡(luò)里面是一個非?;镜乃阕?,這過程要用數(shù)字電路來算,要多比特的加法器和乘法器,還需要多個SRAM。
但用憶阻器陣列,直接把要乘的矩陣元素全都映射成憶阻器的電導(dǎo)值,寫到憶阻器的交叉陣列。加了電壓到電阻會得到一個電流,這是歐姆定律告訴我們的結(jié)果,這條位線是多個器件并列的關(guān)系,基爾霍夫定律又告訴我們,器件之間的電流又會相加,它自然在陣列里就把乘法和加法的運算完成了。
所以,從存儲器的角度看,它就是一步讀操作,加了電壓讀電流,這一步操作就把整個量的乘法完成,效率很高,也不需要任何權(quán)重的數(shù)據(jù)搬運。
再回過頭來看計算機的幾大基石,如果要做一種存算一體型的計算機,它的三大基石都變了,器件從晶體管變成了憶阻器,計算的范式從布爾邏輯的數(shù)字計算變成了基于物理定律的模擬計算,架構(gòu)變成了存算一體架構(gòu)。不過,圖靈機的框架沒有變,只是它的幾個構(gòu)成的基石變了。
我們希望用戶感受不到下面的變化,所以應(yīng)用軟件和編程語言跟以前是一樣的,中間的對接就要在編譯器、指令集這一塊下工夫,做專門的存算一體的編譯器、指令集,形成新的計算機系統(tǒng)。
關(guān)于憶阻器的存算一體技術(shù),國際上也做了很多,大致可以把過去的研究分成兩個階段。第一個階段是2008—2013年,這時候憶阻器剛剛出現(xiàn),惠普實驗室首先發(fā)現(xiàn)了憶阻器開始,大家都在做器件的研究,開發(fā)可以存儲多比特數(shù)據(jù)的器件。
第二個階段從2015年到2018年,大家器件開發(fā)好,就開始研究計算范式,在憶阻器陣列上完成各式各樣的計算。這時候很多大學(xué)、公司都開始做這件事,包括清華大學(xué)。
2018年以前,業(yè)界做了很多事,尤其在器件開發(fā)和存算一體的計算范式這兩個方面都有很重要的進展。但完整的存算一體芯片和系統(tǒng),在2018年以前并沒有突破。
這面臨著一個很重要的問題,存算一體的范式它本質(zhì)上是模擬計算,計算精度的影響機制很復(fù)雜,計算精度很難調(diào)控。有人做了一個分析,在此之前已有的憶阻器做一個很簡單的數(shù)據(jù)集的識別,數(shù)字計算的精度可以到97%以上,但是憶阻器的系統(tǒng)都是60%以下,所以極大地限制了系統(tǒng)和芯片的開發(fā)。
我們發(fā)現(xiàn)了兩個關(guān)鍵的問題,一個是雖然大家做了很多器件,但器件的性能并不穩(wěn)定。這是因為憶阻器本質(zhì)上是靠內(nèi)部的氧離子遷移來改變器件的電阻值,這跟晶體管靠電子和空穴的工作機制很不一樣,電子和空穴的數(shù)量很大,它把一切的離散性都平均掉了,但憶阻器靠離子,離子的數(shù)量比較少,所以導(dǎo)致這個器件存在比較大的離散性和不穩(wěn)定性,就會對計算精度產(chǎn)生影響。
所以我們團隊設(shè)計了一種新的器件結(jié)構(gòu),上面設(shè)計了一個熱交換層,調(diào)控器件內(nèi)部的溫度,還做了一個阻變層,一個疊層結(jié)構(gòu)?;谶@樣兩個設(shè)計,就可以讓器件的狀態(tài)變得很穩(wěn)定,可以實現(xiàn)穩(wěn)定得多比特的調(diào)控。下面的圖顯示,我們團隊在一個器件上做的電導(dǎo)調(diào)控的精度已經(jīng)非常高了。
另一個問題就是計算的誤差累積。也是做了一個很簡單的分析,對ResNet里每一層引入1%的誤差,最后它的誤差非常大。對憶阻器陣列,誤差是不可避免的,任何一個器件做得再準確,它都有一定的離散性,這個離散性做陣列的電流累加時,離散就會被放大,得到更大的波動。這還僅僅是一個陣列的波動,有很多層累加以后,最后這個誤差就會越來越大。
所以針對這個問題,我們團隊也做了一系列的創(chuàng)新,首先我們在電路上做了一些設(shè)計,比如說在電路里,導(dǎo)線和憶阻器是串聯(lián)關(guān)系,導(dǎo)線的電阻不可回避。我們設(shè)計了一種新型的融合型陣列結(jié)構(gòu),用正負兩種電流做抵消,直接讓源線上的電流降低一個數(shù)量級,導(dǎo)線的壓降就小很多。
基于這些設(shè)計,我們團隊去年設(shè)計出了一款完整的全系統(tǒng)集成的憶阻器芯片,在今年2月份集成電路頂級會議ISSCC上發(fā)表,這是全球首款全系統(tǒng)集成的憶阻器存算一體芯片,可以運行雙層全連接神經(jīng)網(wǎng)絡(luò)。
這款憶阻器存算一體芯片用的是130nm工藝,拿它與28納米的樹莓派的CPU做對比,它們的計算準確度相當(dāng),但我們的芯片推理速度已經(jīng)比它快20倍。更重要的是,這款芯片能效達到78.4TOPs/W,比GPU已經(jīng)高3個數(shù)量級。
有了硬件,也要開始考慮在算法和架構(gòu)層面做創(chuàng)新。我們團隊提出來一種混合訓(xùn)練的框架,直接把器件和電路的各種非理想因素在訓(xùn)練過程中都考慮到,通過建模,把這些因素都放到訓(xùn)練的過程中,這樣它就可以容忍各種各樣非理想的特性。
我們又進一步又提出自適應(yīng)的訓(xùn)練,權(quán)重部署之后,可能還有一定的離散性。我們在芯片上做一些原位更新,對權(quán)重做一些微調(diào),從而使整個芯片的準確率得到進一步的恢復(fù)。
我們把器件、電路、架構(gòu)、算法等等所有的創(chuàng)新納入到一個框架下,做了一個協(xié)同仿真的工具,通過這個工具我們就設(shè)計完成了一款完整的存算一體的計算系統(tǒng),這就是今年1月份我們在《Nature》上發(fā)表的,這個系統(tǒng)包括了所有的憶阻器陣列,各種外圍控制電路。完成了一個多層的卷積神經(jīng)網(wǎng)絡(luò),通過這個系統(tǒng),不但證明了存算一體的架構(gòu)、模擬計算的范式的可行性,也證明了它在算力和能效的優(yōu)勢。
上個月的人工智能大會上,我們在《Nature》發(fā)表的文章獲得了最高獎SAIL獎,這是會議上唯一一篇論文獲獎。
再跟分享一下我們最近的一個工作。我們發(fā)現(xiàn)現(xiàn)在的人工神經(jīng)網(wǎng)絡(luò)其實跟生物并不太一樣,并做了大大的簡化。實際生物里除了突觸和神經(jīng)元外,中間還有樹突,但現(xiàn)在的神經(jīng)網(wǎng)絡(luò)一般只考慮了突觸和神經(jīng)元,并沒有考慮樹突的存在。
過去,大家以為樹突就是傳遞信號,所以設(shè)計芯片的時候一般就是把樹突簡化成一個連接線。最近兩年的生物學(xué)研究告訴我們,樹突有信號處理功能,能做很多主動的計算。
所以,通過對生物的調(diào)研,總結(jié)出來了生物神經(jīng)網(wǎng)絡(luò)各個部分的功能,突觸主要是權(quán)重和可塑性,神經(jīng)元胞體功能是積分和發(fā)放。對樹突來說,它有積分和過濾兩個功能,一方面它可以做一些時間域和空間域的初步積分,另一方面它會把未達到閾值的信號過濾掉,不再傳到神經(jīng)元胞體。
我們把這三部分用三種憶阻器來做,建立了一個更完整的神經(jīng)網(wǎng)絡(luò),這個系統(tǒng)做復(fù)雜的計算任務(wù)很有優(yōu)勢,比如對于嘈雜背景下的識別任務(wù),樹突能把很多無用的信號過濾掉,使能效和準確率得到更好的提升。
未來展望
我們希望做新型的存算一體計算機,這個計算機從最底層的器件到編譯器都會有一個變革性的改變,但不改變最上面的編程語言。通過這樣一種技術(shù),可以使計算的能效有百倍到千倍的提升,而且使單芯片的算力達到500TOPs甚至1POPs(1POPs=1000TOPs)。
當(dāng)然,未來還有很多挑戰(zhàn),比如基礎(chǔ)理論、材料器件、電路系統(tǒng)、軟件工具鏈、算法應(yīng)用。
最后總結(jié),摩爾定律的變緩,但大數(shù)據(jù)、人工智能對數(shù)據(jù)量需求的不斷提升,需要開發(fā)新的技術(shù)。通過基于憶阻器的存算一體技術(shù)可以實現(xiàn)算力的提升和能效的提高。而且,存算一體有一個很重要的優(yōu)勢,就是對工藝的要求并沒有那么高,可以在非先進的工藝下實現(xiàn)更高的算力,所以基于憶阻器的存算一體技術(shù)在AI、區(qū)塊鏈、通信,以及各種科學(xué)計算等方面都可能會有很大的應(yīng)用前景。
注:文中配圖雷鋒網(wǎng)獲演講者授權(quán)使用
福利:關(guān)注『芯基建』公眾號,回復(fù)『清華大學(xué)高濱』獲取演講PPT。
相關(guān)文章:
新基建浪潮下AI芯片的絕佳機遇 | CCF-GAIR 2020
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。
本專題其他文章