首頁 > 易卦

清華高濱:基於憶阻器的存算一體單晶片算力可能高達1POPs|CCF-GAIR 2020

作者:由 雷峰網leiphone 發表于 易卦日期:2022-07-22

矩陣加減法怎麼算

雷鋒網按:2020年8月7日-8月9日,2020第五屆全球人工智慧與機器人峰會(CCF-GAIR 2020)於深圳正式召開。峰會由中國計算機學會(CCF)主辦,香港中文大學(深圳)、雷鋒網聯合承辦,鵬城實驗室、深圳市人工智慧與機器人研究院協辦,得到了深圳市政府的大力指導,旨在打造國內人工智慧領域極具實力的跨界交流合作平臺,是國內人工智慧和機器人領域規模最大、規格最高、跨界最廣的學術、工業和投資領域盛會。

CCF-GAIR 2020的AI晶片專場,來自學術界、產業界和投資界的6位大咖從AI晶片技術前沿、AI晶片的應用及落地、RISC-V晶片推動AI發展、新基建帶來的投資機遇共同探討新基建帶來的機遇。

清華大學副教授高濱從AI晶片技術前沿的角度,帶來了《基於憶阻器的存算一體晶片技術》的主題分享。

清華高濱:基於憶阻器的存算一體單晶片算力可能高達1POPs|CCF-GAIR 2020

清華大學副教授高濱

高教授首先帶我們回顧了現代計算的演變,從圖靈機到現代計算系統中的三大基石:電晶體、布林邏輯計算、馮諾依曼架構。高教授表示:“近幾年AI對算力的需求是爆炸式的增長。晶片算力的提升與需求增長之間有一個很尖銳的矛盾。”

這個尖銳的矛盾主要有兩個原因:摩爾定律放緩以及馮諾依曼架構帶來的存算分離侷限。這讓芯片面臨著算力和能效兩大挑戰。

要解決矛盾和挑戰,需要三大基石都革新的存算一體計算機。高濱表示:“器件層面,憶阻器可以把馮諾伊曼架構裡的處理、記憶體、外存都融合在一起,構建存算一體陣列,這也是存算一體最基本的要素。計算的正規化層面,存算一體也從布林邏輯計算變成了基於物理定律的模擬計算,架構變成存算一體架構。”

但新的計算系統因為憶阻器的穩定性、計算誤差累積等問題,2018年以前完整的存算一體晶片和系統並沒有突破。直到高濱所在的清華大學錢鶴、吳華強團隊透過憶阻器件、電路、架構、演算法等層面的創新,設計出全球首款全系整合的憶阻器存算一體晶片,用130nm的工藝製造出計算精度與28nm樹莓派CPU相當的準確度,速度快20倍,能效也比GPU高3個數量級。

展望未來,高濱教授希望通存算一體技術,可以使計算的能效有百倍到千倍的提升,使單晶片的算力達到500TOPs甚至1POPs。

高濱的團隊實現了哪些突破?他們的目標能否實現?高濱教授的演講中有更多資訊。

以下是高濱教授在 CCF-GAIR 2020上的演講內容,雷鋒網對其進行了不改變原意的編輯整理:

現代計算系統的演變

現在的計算系統多種多樣,小到手機、平板電腦,大到伺服器、超級計算機。這些裝置有一個共同點——本質上都是圖靈機。

圖靈機是在1936年由圖靈提出,主要目的是解決機器的可計算性。他提到了圖靈機的幾個關鍵要素,包括一條無限長的紙帶、一個讀寫頭、一套控制規則,還有一個狀態暫存器。有了這些東西,就可以實現通用的計算機。它相當於計算系統架構的雛形。

從現在的觀點看,這些要素對應了現在計算裝置裡面的CPU、儲存器、I/O等各個模組,所以圖靈機有非常重大的理論意義。

在這個基礎上,現在的計算裝置形成了一套體系,我們稱它為經典計算機,因為現在的計算系統基本都是這樣的框架。這也與後面要介紹的新型計算機有對應。

清華高濱:基於憶阻器的存算一體單晶片算力可能高達1POPs|CCF-GAIR 2020

傳統的計算機有三大基石,這三大基石也是構成現代計算機最基本的要素。

第一個基石是電晶體,它是構成晶片的最基本的半導體器件。第二個基石是布林邏輯計算,它給出了一套計算規定。第三個基石是馮諾依曼架構,在上面形成了處理器晶片、儲存晶片,構成了計算機的硬體系統。當然它本質上都是圖靈計算機。硬體之上,經典計算機還有軟體,包括組合語言、編譯器、程式語言,以及與使用者直接互動的應用軟體。

接下來了解下三大基石的演變過程。說到布林邏輯運算,就不得不提到世界第一臺計算機阿塔納索夫-貝瑞計算機ABC。ABC基於真空管制造,用於美國的大學的教學。

ABC重要的意義在於首次引入數字計算二進位制的思想,透過二進位制電子開關做加法和減法的運算。現在看來這個算力非常可憐,每秒只能做大概30次加減法,但其實已經比人要快很多。

幾年以後,二戰爆發,美國發現如果讓人計算彈道,僱用200多名受過專業訓練的計算員至少2個月才能完成一張射表。因此,美國組織了很多科學家在1946年建造了非常著名的第一臺通用電子計算機——ENICA。這臺計算機的算力是每秒5000次加法或400次乘法。

清華高濱:基於憶阻器的存算一體單晶片算力可能高達1POPs|CCF-GAIR 2020

ENICA建造完成以後,團隊裡一個很重要的工程師馮諾依曼開始反思,之後寫了一個報告,報告裡明確提到,未來的計算機應該包括控制器、儲存器、運算器這樣幾個部分,也就是現在所說馮諾依曼的體系結構。

馮諾依曼架構的意義非常重大,這種儲存與運算分離的設計,大大簡化了計算機的設計,也讓程式設計、各種控制都變得很簡單。

清華高濱:基於憶阻器的存算一體單晶片算力可能高達1POPs|CCF-GAIR 2020

一年後,三位物理學家巴丁、肖克利、布賴坦發明了電晶體。有了電晶體之後,三大基石完整了,積體電路就開始蓬勃發展。

清華高濱:基於憶阻器的存算一體單晶片算力可能高達1POPs|CCF-GAIR 2020

20多年以後,英特爾的創始人戈登摩爾,透過觀察積體電路的發展趨勢,總結出了摩爾定律。

清華高濱:基於憶阻器的存算一體單晶片算力可能高達1POPs|CCF-GAIR 2020

在摩爾定律的驅動下,晶片算力不斷髮展,從早期的CPU到現在的各種高階晶片,都有了長足的進步。

人工智慧發展對硬體的挑戰

但AI對算力的需求越來越高,硬體的挑戰也越來越大。

算力是AI的三大要素之一,AI技術出現以來,算力和人工智慧一直是一個相互促進的發展。

最近幾年,之所以AI有長足的進步,一個很重要的事件就是GPU的出現。GPU相當於開啟了深度學習的黃金時代,透過並行的加速,讓深度神經網路有了很強的硬體的支撐。

不過,近幾年AI對算力的需求是爆炸式的增長。所以晶片算力的提升與需求增長之間有一個很尖銳的矛盾。下圖顯示了單晶片算力的變化,2010年以前,CPU算力是一條非常漂亮的指數增長,沿摩爾定律發展。

清華高濱:基於憶阻器的存算一體單晶片算力可能高達1POPs|CCF-GAIR 2020

2010年以後,晶片的算力很難再提升。當然,最近10年GPU的發展很快,它明顯比CPU的算力有數量級的提高。但即便這樣,GPU算力提高的速度也在逐漸飽和。

AI演算法對算力的需求卻正好是一個反過來的趨勢,2010年以前的幾十年,雖然AI對算力的需求越來越高,但總體而言可以滿足需求。過去的這幾年突然出現了拐點,呈現出爆炸式的趨勢增長,它不但是指數,而且每年都是幾個數量級的翻番。

仔細看就會發現,AI演算法對算力的需求每3-4個月就會翻一番,這非常恐怖,傳統晶片很難跟上算力需求增長的步伐。

要想解決這個問題,要從根源上找原因。

晶片算力增長越來越緩主要有兩個原因,一個是摩爾定律變緩。

現在高階晶片基本都是7奈米、5奈米,一個原子大概也就是1奈米的尺寸。電晶體微縮越來越難,面臨各種物理極限挑戰。過去幾十年晶片的效能提升伴隨摩爾定律的發展,但是這條路以後想往下走會越來越難。

第二個原因是馮諾依曼架構帶來的存算分離侷限。

馮諾依曼的架構簡化了設計,讓開發變得簡單,但馮諾依曼這個架構儲存和計算物理上是分離的,所計算的過程中需要不斷的透過匯流排交換資料,把資料從記憶體讀到CPU裡,計算完後再寫回儲存。

在這個過程中,我們希望儲存和CPU的速度差不多,但實際上儲存速度遠低於計算速度。中間這個圖是一個典型的儲存器的體系結構,實際上主存DRAM晶片的速度遠低於CPU的快取和計算的速度,DRAM讀每個位元的功耗也比CPU高很多。

清華高濱:基於憶阻器的存算一體單晶片算力可能高達1POPs|CCF-GAIR 2020

另外就是匯流排傳輸,根據臺積電的資料,10奈米的工藝下,資料的傳輸和快取已經佔比超過60%,達到了69%。所以大部分的功耗和延遲不是用在計算上,而是用在資料在總線上的傳輸。

更可怕的是,這個統計只是普通的科學計算,這些計算的資料快取量並不是很高,大部分的AI演算法都是資料密集型計算,資料量更大。

對AI的演算法,這樣一個傳輸的功耗和延遲的佔比可能都超過99%。這一現象通常被稱為儲存牆的問題。

這讓芯片面臨兩個巨大的問題,一個是算力不足,還有一個是能效過低。

所以我們就需要從積體電路的三大基石來考慮,透過引入新架構和新器件來解決晶片的算力和能效的不足。

具體怎麼做呢?看看歷史的發展,從最早期的傳統計算機到最近這幾年透過多核並行加速的技術。有了AI以後,學術界、產業界開始考慮用近存計算,馮諾依曼架構的存算分離是一個很重要的瓶頸,把儲存和計算儘可能的做得近,像谷歌很著名的TPU就是採用了這樣一個近存計算的思想,還有GPU也採用這個思想。

清華高濱:基於憶阻器的存算一體單晶片算力可能高達1POPs|CCF-GAIR 2020

比如,把片上做很大容量的SRAM,或整合3D DRAM,像HBM,堆到計算晶片上面,從一定程度上緩解了儲存牆的問題,但是並沒有本質解決。

要想從本質解決這個問題,就需要進一步把儲存和計算融合在一起,這就出現了存算一體的技術。

存算一體技術用一種新的半導體器件,這種器件既能夠做計算又能夠做儲存,實現了最底層的融合。

對於存算一體,國內外都在關注,比如IBM就公佈了他們的三步曲,第一步是想採用近似計算的數字AI晶片,第二步是基於模擬計算的AI晶片,第三步是採用最佳化材料體系的模擬計算晶片,用這種新材料、新器件來做。

在國內,去年華為任正非就專門提到邊緣計算不是把CPU做到儲存器裡面,就是把儲存做到CPU裡,這改變了馮諾依曼結構,儲存和計算合二為一,速度更快。

今年,阿里達摩院在未來十大科技趨勢的第二條就提到,馮諾依曼架構的儲存和計算分離,已經不適合資料驅動的人工智慧的應用,要把它們合在一起突破AI算力瓶頸。

存算一體技術的研究進展

什麼是存算一體的技術?存算一體技術現在發展到什麼樣的程度了?剛才我就提到,想做存算一體,首先得有一種新的器件,能夠融合計算和儲存。什麼器件能做到這一點呢?這就要先講憶阻器的概念。

憶阻器其實也是一個很古老的概念,是由蔡少棠這位伯克利大學的華裔教授提出,他在1971年的時候預測了有這樣一種新的器件

,當時完全是從物理理論來分析,把電路里最基本的三種無源器件:電阻、電容、電感擺起來,發現從對稱性的角度來說少了一塊。

清華高濱:基於憶阻器的存算一體單晶片算力可能高達1POPs|CCF-GAIR 2020

蔡少棠教授透過理論推導,最後發現如果有他稱為憶阻器的新器件,把憶阻器加進這個圖裡,整個對稱性就非常完美了。但幾十年來一直沒有人能做出來,一直到2000年以後,很多公司和學校逐漸把憶阻器做出來了。

憶阻器本身是一個兩端型的器件,上下兩個電極,中間一個介質層,介質層的電阻可以發生變化。而且,這種變化是非易失的,也就是掉電以後,電阻的狀態仍能保持。

憶阻器剛做出來,很多企業都說用它做儲存很好,比現在的技術要快很多,近期大家發現它還可以做計算,因為它的很多特性跟生物的神經突觸很像,所以有些人又把它稱為電子突觸。

清華高濱:基於憶阻器的存算一體單晶片算力可能高達1POPs|CCF-GAIR 2020

基於憶阻器,就可以把原來馮諾依曼架構裡面的處理器、記憶體、外存都合在一起,用一個憶阻器的陣列來做,稱它為存算一體陣列。

其中,最基本的要素就是我要把憶阻器的效能做好,要讓這一個器件能夠儲存多位元的資料,而且還要速度快、功耗低。另外一方面,這種新的計算正規化不再是傳統的布林邏輯計算,而是基於物理定律來計算。

舉一個很經典的例子,用憶阻器陣列來算矩陣的乘法。向量矩陣乘法在神經網路裡面是一個非常基本的運算元,這過程要用數位電路來算,要多位元的加法器和乘法器,還需要多個SRAM。

清華高濱:基於憶阻器的存算一體單晶片算力可能高達1POPs|CCF-GAIR 2020

但用憶阻器陣列,直接把要乘的矩陣元素全都對映成憶阻器的電導值,寫到憶阻器的交叉陣列。加了電壓到電阻會得到一個電流,這是歐姆定律告訴我們的結果,這條位線是多個器件並列的關係,基爾霍夫定律又告訴我們,器件之間的電流又會相加,它自然在陣列裡就把乘法和加法的運算完成了。

所以,從儲存器的角度看,它就是一步讀操作,加了電壓讀電流,這一步操作就把整個量的乘法完成,效率很高,也不需要任何權重的資料搬運。

再回過頭來看計算機的幾大基石,如果要做一種存算一體型的計算機,它的三大基石都變了,器件從電晶體變成了憶阻器,計算的正規化從布林邏輯的數字計算變成了基於物理定律的模擬計算,架構變成了存算一體架構。不過,圖靈機的框架沒有變,只是它的幾個構成的基石變了。

清華高濱:基於憶阻器的存算一體單晶片算力可能高達1POPs|CCF-GAIR 2020

我們希望使用者感受不到下面的變化,所以應用軟體和程式語言跟以前是一樣的,中間的對接就要在編譯器、指令集這一塊下工夫,做專門的存算一體的編譯器、指令集,形成新的計算機系統。

關於憶阻器的存算一體技術,國際上也做了很多,大致可以把過去的研究分成兩個階段。第一個階段是2008—2013年

,這時候憶阻器剛剛出現,惠普實驗室首先發現了憶阻器開始,大家都在做器件的研究,開發可以儲存多位元資料的器件。

第二個階段從2015年到2018年

,大家器件開發好,就開始研究計算正規化,在憶阻器陣列上完成各式各樣的計算。這時候很多大學、公司都開始做這件事,包括清華大學。

2018年以前,業界做了很多事,尤其在器件開發和存算一體的計算正規化這兩個方面都有很重要的進展。但完整的存算一體晶片和系統,在2018年以前並沒有突破。

這面臨著一個很重要的問題,存算一體的正規化它本質上是模擬計算,計算精度的影響機制很複雜,計算精度很難調控。

有人做了一個分析,在此之前已有的憶阻器做一個很簡單的資料集的識別,數字計算的精度可以到97%以上,但是憶阻器的系統都是60%以下,所以極大地限制了系統和晶片的開發。

我們發現了兩個關鍵的問題,一個是雖然大家做了很多器件,但器件的效能並不穩定。

這是因為憶阻器本質上是靠內部的氧離子遷移來改變器件的電阻值,這跟電晶體靠電子和空穴的工作機制很不一樣,電子和空穴的數量很大,它把一切的離散性都平均掉了,但憶阻器靠離子,離子的數量比較少,所以導致這個器件存在比較大的離散性和不穩定性,就會對計算精度產生影響。

所以我們團隊設計了一種新的器件結構,上面設計了一個熱交換層,調控器件內部的溫度,還做了一個阻變層,一個疊層結構。基於這樣兩個設計,就可以讓器件的狀態變得很穩定,可以實現穩定得多位元的調控。下面的圖顯示,我們團隊在一個器件上做的電導調控的精度已經非常高了。

清華高濱:基於憶阻器的存算一體單晶片算力可能高達1POPs|CCF-GAIR 2020

另一個問題就是計算的誤差累積。

也是做了一個很簡單的分析,對ResNet裡每一層引入1%的誤差,最後它的誤差非常大。對憶阻器陣列,誤差是不可避免的,任何一個器件做得再準確,它都有一定的離散性,這個離散性做陣列的電流累加時,離散就會被放大,得到更大的波動。這還僅僅是一個陣列的波動,有很多層累加以後,最後這個誤差就會越來越大。

所以針對這個問題,我們團隊也做了一系列的創新,首先我們在電路上做了一些設計,比如說在電路里,導線和憶阻器是串聯關係,導線的電阻不可迴避。我們設計了一種新型的融合型陣列結構,用正負兩種電流做抵消,直接讓源線上的電流降低一個數量級,導線的壓降就小很多。

清華高濱:基於憶阻器的存算一體單晶片算力可能高達1POPs|CCF-GAIR 2020

基於這些設計,我們團隊去年設計出了一款完整的全系統整合的憶阻器晶片,在今年2月份積體電路頂級會議ISSCC上發表,這是全球首款全系統整合的憶阻器存算一體晶片,可以執行雙層全連線神經網路。

清華高濱:基於憶阻器的存算一體單晶片算力可能高達1POPs|CCF-GAIR 2020

這款憶阻器存算一體晶片用的是130nm工藝,拿它與28奈米的樹莓派的CPU做對比,它們的計算準確度相當,但我們的晶片推理速度已經比它快20倍。更重要的是,這款晶片能效達到78.4TOPs/W,比GPU已經高3個數量級。

有了硬體,也要開始考慮在演算法和架構層面做創新。我們團隊提出來一種混合訓練的框架,直接把器件和電路的各種非理想因素在訓練過程中都考慮到,透過建模,把這些因素都放到訓練的過程中,這樣它就可以容忍各種各樣非理想的特性。

清華高濱:基於憶阻器的存算一體單晶片算力可能高達1POPs|CCF-GAIR 2020

我們又進一步又提出自適應的訓練,權重部署之後,可能還有一定的離散性。我們在晶片上做一些原位更新,對權重做一些微調,從而使整個晶片的準確率得到進一步的恢復。

我們把器件、電路、架構、演算法等等所有的創新納入到一個框架下,做了一個協同模擬的工具,透過這個工具我們就設計完成了一款完整的存算一體的計算系統,這就是今年1月份我們在《Nature》上發表的,這個系統包括了所有的憶阻器陣列,各種外圍控制電路。完成了一個多層的卷積神經網路,透過這個系統,不但證明了存算一體的架構、模擬計算的正規化的可行性,也證明了它在算力和能效的優勢。

清華高濱:基於憶阻器的存算一體單晶片算力可能高達1POPs|CCF-GAIR 2020

上個月的人工智慧大會上,我們在《Nature》發表的文章獲得了最高獎SAIL獎,這是會議上唯一一篇論文獲獎。

再跟分享一下我們最近的一個工作。我們發現現在的人工神經網路其實跟生物並不太一樣,並做了大大的簡化。實際生物裡除了突觸和神經元外,中間還有樹突,但現在的神經網路一般只考慮了突觸和神經元,並沒有考慮樹突的存在。

過去,大家以為樹突就是傳遞訊號,所以設計晶片的時候一般就是把樹突簡化成一個連線線。最近兩年的生物學研究告訴我們,樹突有訊號處理功能,能做很多主動的計算。

所以,透過對生物的調研,總結出來了生物神經網路各個部分的功能,突觸主要是權重和可塑性,神經元胞體功能是積分和發放。對樹突來說,它有積分和過濾兩個功能,一方面它可以做一些時間域和空間域的初步積分,另一方面它會把未達到閾值的訊號過濾掉,不再傳到神經元胞體。

我們把這三部分用三種憶阻器來做,建立了一個更完整的神經網路,這個系統做複雜的計算任務很有優勢,比如對於嘈雜背景下的識別任務,樹突能把很多無用的訊號過濾掉,使能效和準確率得到更好的提升。

未來展望

我們希望做新型的存算一體計算機,這個計算機從最底層的器件到編譯器都會有一個變革性的改變,但不改變最上面的程式語言。透過這樣一種技術,可以使計算的能效有百倍到千倍的提升,而且使單晶片的算力達到500TOPs甚至1POPs(1POPs=1000TOPs)。

清華高濱:基於憶阻器的存算一體單晶片算力可能高達1POPs|CCF-GAIR 2020

當然,未來還有很多挑戰,比如基礎理論、材料器件、電路系統、軟體工具鏈、演算法應用。

最後總結,摩爾定律的變緩,但大資料、人工智慧對資料量需求的不斷提升,需要開發新的技術。透過基於憶阻器的存算一體技術可以實現算力的提升和能效的提高。而且,存算一體有一個很重要的優勢,就是對工藝的要求並沒有那麼高,可以在非先進的工藝下實現更高的算力,所以基於憶阻器的存算一體技術在AI、區塊鏈、通訊,以及各種科學計算等方面都可能會有很大的應用前景。

注:文中配圖雷鋒網獲演講者授權使用

福利:關注『芯基建』公眾號,回覆『清華大學高濱』獲取演講PPT。