天天看點

清華魏少軍:人工智能時代中國晶片設計的應對之道

魏少軍是清華微納電子系教授,在2019杭州雲栖大會上,他分享了“人工智能時代中國晶片設計的應用之道”,以下是他的分享内容文字整理,經編輯。

清華魏少軍:人工智能時代中國晶片設計的應對之道

現在每個人都在談人工智能,我一直研究晶片的架構,是以對晶片架構情有獨鐘,當看到人工智能的時候,第一個想到的就是人工智能晶片的架構是什麼?

回過頭看,對深度神經網絡的研究可以追溯到早期(上世紀80年代),諾貝爾生理學和醫學獎獲得者David Hunter Hubel發現了視覺神經、神經元、突觸,他想象了突觸和神經元之間是怎樣連接配接的。

是以,找到了一種似乎看起來可行的,通過一個節點表示神經元,通過節點互聯表示突觸,并用其上的權重來表示突觸的通與不通或半通,是以形成了所謂的人工神經網絡,進一步形成了深度神經網絡。

清華魏少軍:人工智能時代中國晶片設計的應對之道

今天我們說“無産業不AI,無應用不AI,無晶片不AI”。ARM公司院士Rob Aitken曾談到,從Cloud的Big ML到Edge的Medium ML再到物聯裝置的Little ML,大概各有兩個數量級的差距,從10的8次方到10的12次方。另一個角度看,從實際現實的信号輸入到雲中的結構化資料,中間也需要大量的過程。是以可以看到,從雲上的AI到應用上的AI可以說是無所不在,隻是目前更多還是在考慮雲上的AI。

樂觀預測,到2025年的時候,深度學習晶片市場将達到663億美元。2018年,主要是GPU占主導地位;到2025年的時候,以專用目标作為主要目的晶片數量會遠遠超過GPU等通用晶片。這至少說明了一件事,就是AI晶片到2025年将具備巨大的市場規模(600億美元以上),全球現在晶片市場也就是4000多億的規模,是以到2025年将有1/6由AI晶片主導,是以影響是非常大的。

清華魏少軍:人工智能時代中國晶片設計的應對之道

人工神經元等神經網絡的機理其實是權重和,也就是各種層次的權重和,這樣的結構要去真正完成計算任務,就需要很好的訓練(通過資料的訓練),找到權重的數值,最終形成訓練的結果,以指導最後的推理計算。這看起來好像很簡單,但它孕育着巨大的問題,即它需要巨量的計算能力,也就是算力。不同的人工神經網絡适配不同的應用,例如CNN卷積神經網絡可用于視覺識别,FCN全連接配接神經網絡可用于手寫體識别,RNN循環神經網絡可用于語音識别和翻譯等。人工神經網絡到目前為止有兩個問題還沒有解決:一是算法仍在不斷演進,新算法層出不窮;二是一種算法對應一種應用,沒有一個統一的算法。

如果要去設計AI晶片而且在一個晶片上能夠實作多種不同的應用,顯然是不可能的,因為每一個都要做大量的運算,是以一顆晶片能完成一種神經網絡的運算已經不得了。例如:1997年到2007年的ANN神經網絡隻有三層、網絡參數為1萬、晶片運算量為20萬次/秒;2012年的AlexNET神經網絡為7層、網絡參數為6000萬、晶片運算量為10億次/秒;2014年的GoogleLeNet神經網絡為22層、網絡參數為5000萬、晶片運算量為15億次/秒;2014年的VGG19神經網絡為19層、網絡參數為1.38億、晶片運算量為196億次/秒;2015年的ResNet神經網絡為152層、網絡參數為1.5億、晶片運算量為113億次/秒。

清華魏少軍:人工智能時代中國晶片設計的應對之道

是以,一顆晶片對應一種應用,兩種應用就是兩顆晶片,N個應用就要N顆晶片,這是應該現代AI晶片設計的重大瓶頸。前段時間清華大學的施路平教授在《Nature》上發表了一篇封面文章,把類腦計算與深度神經網絡合到一個晶片中,引起了《Nature》的高度重視。原因在于現在做晶片之難,除了本身的高計算量之外,把AI從雲推向邊緣時的能量效率也成為巨大的問題。

可以看到VGG19,大概需要196億次的運算加上同時處理1.38億的參數,如果不考慮能量效率的問題,手機大概算一次電就沒了,是以肯定是不行的。

是以說AI晶片需要高能效的通用Deep Learning引擎,它确實需要一個全新的算法,傳統的算法都不行。其實計算能力的提升并不複雜,人腦的計算能力其實非常有限,超算早已超過人腦,是以簡單的追求人腦的計算能力不是目标。相反要看到,人腦和機器邏輯去比較,最重要的一點是人腦有140億神經元,工作頻率隻有200Hz,傳導速率以每秒鐘120米的速度,由于人腦皮層有半米也就是1/4平方米,是以還是可以完成10的16次方運算。而人腦的重量為1.2-1.6公斤,而能量效率非常高(隻耗20瓦),但機器以天河2号超級計算機為例堆積了很多晶片,可以實作10的34次方運算,代價是720平方米占地面積、5噸重量以及24兆瓦功耗。是以,在現實中,不可能每個人一天到晚背一個超算去工作。是以,一定要找到一種能夠實作與人腦差不多能量效率的設計,當然現在不知道應該是什麼樣的設計。

清華魏少軍:人工智能時代中國晶片設計的應對之道

總結一下AI晶片應該具備的基本要素:第一,可程式設計性,可适應算法的演進和應用的多樣性;第二,架構的動态可變性,要适應不同的算法,實作高效計算;第三,要有高效的架構變換能力,變換時鐘周期要很低,低開銷、低延遲;第四,高計算效率,避免使用像指令這樣的低效率架構;第五,高能量效率,達到10TOPS/W,某些應用的功耗要低于1mW,某些應用的速度要達到25F/s的識别速度;第六,低成本,要能進入家電和消費類電子産品;第七,體積小,要能夠裝載在移動裝置上;第八,應用開發簡便,不需要晶片設計方面的知識等。

是以,目前流行的CPU+軟體、CPU+GPU、CPU+FPGA、CPU+ASIC的做法,均不是理想架構,可能需要一種全新的架構。

也正是因為如此,我們今天還沒有真正實作人工智能,UC伯克利大學的Michael Jordan教授曾說過:今天所說的Artificial Intelligence其實不是AI,更多是Intelligence Augmentation或叫IA增強智能,也就是利用這些技術來幫助人類真正實作和加強智能能力,而離真正的AI還差很遠。

清華魏少軍:人工智能時代中國晶片設計的應對之道

去年3月9号,我在2018 GTIC會上提出了一個問題,當時問題的前半部分是:是否會出現類似通用CPU那樣獨立存在的“通用AI處理器”,如果存在的話,它的架構是怎樣的?實際上我那時候心裡是有一點點答案的,但我想聽聽世界上的大牛們是怎麼說的,而當時問題的後半句沒列出來,想問的是如果不存在的話,今天做AI晶片的公司将何去何從?

後半句問題今天已經有答案了,我認為是存在這樣的一個通用AI晶片的,因為在過去一年當中看到太多的相關技術,給了我們很大的啟示。問題是怎麼去看待這樣的AI晶片。

John L. Hennessy和David A. Patterson在圖靈獎講座《計算架構的新黃金時代:專用領域硬體/軟體的聯合設計、增強安全、開放指令集以及靈活晶片開發》中有一個名言,叫AI等于Architecture+Intelligence,我覺得這句話還不能夠很清晰地表達AI的意義,我更多認為AI等于Architecture+Innovation,也就是說要做AI的話,首先想到的是架構的創新,如果架構上不創新,按照現在的這種方式走下去,恐怕很難獲得真正所需要的架構。

AI處理器現在有很多種架構,比如ASIP的Cambricon、RS Dataflow的Eyeriss、Systolic Array的TPU、Sparsity的SCNN、Flexible Bit的UNPU等,問題是這些是不是最理想的呢,現在需要認真思考一下。

為了做這個事情,我們花了一年時間做了一個路線圖:橫軸是Deep Learning的Algorithm算法,縱軸是Hardware Architecture硬體架構。沿着橫軸有各種各樣不同的DL Algorithm,可能還在不斷地演進,稱為“More Algorithm”;縱軸上看到有各種各樣的Hardware Architecture,稱為“More Architecture”,或者更時髦的詞叫“More than Algorithm”。最重要的不在于這兩點,實際上要看的是中間結果,中間結果是算法與硬體的Co-design。做晶片的人都知道,曾經非常崇敬Hardware和Software的Co-design,現在看來不行,而要從Algorithm入手,也就是說硬體和算法這兩者要結合到一起。派生出不同的應用場景也是自然的,現在面臨的是各種各樣的Co-design、Co-optimization、Co-verification、Co-implementation,是以做晶片不再容易,而變得越來越複雜。

清華魏少軍:人工智能時代中國晶片設計的應對之道

現在的實作是怎樣的呢?可以分成三個階段,當然還有第四個階段叫AI Chip2.0。

第一個階段,可稱為AI Chip 0.5的早期階段,那時候要實作AI應用沒有任何的現成算法,是以把CPU、GPU、FPGA、DSP都拿來用了,當時關心的是能不能實作AI計算,隻要能實作就好,而不關注Performance性能夠不夠,當然GPU的Performance最高,是以用GPU的最多。到了AI Chip 1.0階段,開始出現像Google TPU、MIT Eyeriss等。這時候不僅僅關注了Performance,還關注了像Power Consumption、Energy等問題,都是與應用密切相關的問題。是以,要考慮一個新産品、新技術的落地,最簡單的辦法就是做一個專用的晶片。到了AI Chip 1.5階段,開始發生變化了,有兩個标志性的成果:一個是清華的Thinker,還有一個是Wave Computing的DPU,分别考慮的不僅僅是專用的領域,是半通用的Reconfigurable可配置的,同時能夠把Training訓練和Inference推理兩個任務放在一起,就意味着在性能、能量、效率、功耗等之外又加了一個Flexibility,即靈活性。在這個過程中看到Reconfigurable和System是關注的重點。到這兒還是一個Semi-General,還不是一個真正意義上的通用晶片。通用AI晶片是什麼呢?目前為止還沒有看到,它應該是一個通用的、自适應的、智能化和智慧化的設計,其中Intelligent和Intelligence成為兩個關鍵詞。

早期的AI晶片更多在考慮訓練,像雲端更多是訓練計算任務,因為雲端的計算能力足夠強,找到那些權重參數要花費很多的算力。後來要通向終端應用的話,要有Inference能力,未來的晶片應該不分Training與Inference,應該兩個都包含在其中,因為有可能在終端也要做Training和Inference,最終能不能實作也要拭目以待。

我們看到從AI Chip 1.5階段開始出現了一種新的架構,是可配置Reconfigurable的,其實這個技術早就出現了,它在1990年就出現了,中間經過了90年代的發展期,後來又高速發展,到現在為止人們突然發現它可以用來做AI晶片。Wave-Computing就是采用了這一結果,隻是它用的是靜态任務。

清華魏少軍:人工智能時代中國晶片設計的應對之道

第二種稱之為軟體定義,可以把軟體的可程式設計性和硬體的可程式設計性定義為兩個軸,嘗試着把現在已有的晶片往入四個象限,例如CPU、DSP等以軟體程式設計為主的在第二象限中,第三象限有ASIC和SoC,第四象限是FPGA和EPLD,問題是第一象限是什麼呢?并不知道第一象限是什麼,這就找到了一個全新的路徑,第一象限應該空間可以發掘。我們稱第一象限為可重構計算的晶片或叫軟體定義晶片,通過軟體來定義硬體的架構和功能,而且是實時和動态的定義,這樣就可以解決算法在不斷演進、硬體功能不斷變化,如何适應算法的變化和算法的選擇。通過這種方式,清華也做了重要的嘗試,比如Thinker,這是一系列可重構神經網絡的計算架構,這個計算架構用的是一種與其它理論不太一樣的思路,它具有跟ASIC差不多的性能,但具有CPU一樣的靈活性。

清華魏少軍:人工智能時代中國晶片設計的應對之道

去年年初,MIT Technology Review專門寫了一篇評論文章,對清華的這顆晶片進行評論,認為中國取得了一個宏觀級的成果,這顆晶片我們今年把它推向市場以後,也成立了一個公司,今年大概已經可以到千萬美元的量級、幾百萬顆的訂單了,一下獲得了很好的機會。

為什麼很好呢?因為它的能量效率極高,絕對功耗又極低,用它進行語音處理的時候隻有200多個微瓦、0.2個毫瓦,一節電池可以用一年,用于人臉識别時大概6個毫秒可以識别一個人臉,而且同時可以識别很多的人臉,識别率高于人的識别,而每一個識别的功耗隻有12毫瓦。

最後,一個更為理想化的想法是怎麼能夠讓晶片變得更智慧一些,剛才資訊化最終都想能夠實作智慧化,什麼叫做智慧化?需要具有自己學習的能力。人類通過接受教育、通過學習,變得與衆不同。是以,學習和教育或者訓練和推理,很可能起到重要的作用。設想一下,如果晶片也可以通過學習和接受教育,那是不是這顆晶片能變成越來越聰明呢,變得與其它的晶片不一樣呢?如果能做到這一點,晶片的智慧化就至少有了一點點眉目。

清華魏少軍:人工智能時代中國晶片設計的應對之道

我們給出一種可能的智慧晶片架構,大家可以看到它包含了可重構的核心加一個訓練核心,同時有很多On Chip或On Device的Compiler軟體,其它新設計包括Algorithm和Software的進化,當然最難的是怎樣甄别軟體和應用,這是可以實作的。經過時間的推移和技術的不斷推進,相信這個問題可能可以實作的。

如果看架構的主要功能,可以看到三個紅色的部分,現在看起來最難突破,也是最後才能突破的,也就是如何根據應用來定義一個或找到一個最适合的神經網絡。通過應用定義的神經網絡去找到對應的軟體,這又是個難點。當然,怎樣把資料抽取出來進行訓練以及進行推理,這也很難。這個問題可能不是今天能解決掉的,但未來可能可以解決。

藍色的硬體方面,至少知道該怎麼做,從Reconfigurable Processor的角度是可以說清楚的,Training Engine隻要性能足夠高、能量效率足夠高,也是可行的。

剩下綠色要解決的是比較難的。第一個叫On-Chip Compiler能不能做到,而且這個Compiler應該是具備一定智能化的Compiler,這個事情本身就是個難點。更難的是Software Evolution也就是軟體的自演進,怎麼能夠讓算法和軟體自己演進,而不是簡單的改參數,而甚至是自己程式設計,可以對架構進行變形,架構變形後再自動産生相應的算法,算法再産生軟體,這樣一個過程能否智能化?如果這個過程能夠實作智能化,就認為向前邁了一大步。再把剛才紅色的問題攻破以後,AI晶片就具備了初步的智慧功能,可以通過不斷地訓練和使用過程,不斷地自我學習,變得越來越聰明,越來越适合應用。

設想一下,當有這樣一顆晶片用在阿裡雲中,想換掉這顆晶片的難度都會變得非常大了,因為換掉它要付出巨大的代價,所有的訓練和學習都浪費了,是以一定會想辦法把“知識”傳遞下去。

清華魏少軍:人工智能時代中國晶片設計的應對之道

這樣的智慧晶片,除了剛才講到的人工智能晶片所具有的特性之外,更重要的是以下三點:學習能力,接受教育,成長能力;算法、軟體的自主演進能力;自主認知,自主判斷,自主決策的能力。這三點都是難上加難,需要真正意義上花費大精力去實作。當時,講技術、講晶片、講算法,再多也沒用,應用是真正要解決的問題,AI晶片最大的障礙不是技術問題,是如何落地的問題。今天要甄别一個AI能不能有實際應用,真的很難。

列出一些應用來,它們可以用AI去實作,但十有八九不用AI也能完成,甚至完成的更好,這時候AI的壓力就變得非常大。那麼,到底哪些應用需要AI?需要AI幫忙解決什麼樣的問題?什麼是AI的“殺手級”應用?以及什麼樣的AI應用是我們每天離不開的?如果把這些問題搞清楚,也許就知道如何去發展真正意義上可用的AI晶片了,那時候AI就真正的來臨了。(文/甯川)

繼續閱讀