當晶元遇到AI,當非主流成了主流|專訪陳怡然
在中國工程院信息與電子工程學部主辦、亞洲超算協會和浪潮集團聯合協辦的AICC2018大會上,陳怡然發表「人工智慧晶元設計的挑戰」的演講。
撰文 | 邸利會
知識分子為更好的智趣生活 ID:The-Intellectual
● ● ●
AI晶元,或許你已經聽說,或許還沒怎麼意識到。當手機刷臉時,當闖紅燈被拍,當無人車送貨,當照片被自動分類,當對著智能音箱大喊大叫,無論是在千里之外的雲端還是近在咫尺的終端,AI晶元已無處不在。GPU、TPU、DPU、NPU、MLU等等,這些都屬於AI晶元家族,背後都有不少巨頭和創業公司的身影,可謂群雄並起,逐鹿中原。
AI晶元是如何誕生的,發展的動力在哪?與傳統的CPU相比有何不同?AI對晶元設計會有怎樣的影響?國內的AI科研以及投資出現了怎樣的偏差?在9月12日舉行的「2018人工智慧計算大會」後,美國杜克大學終身副教授陳怡然接受了《知識分子》的專訪,縱論當晶元遇到被AI,將發生怎樣的進化。
知識分子:AI晶元是什麼,在哪?
陳怡然:凡是主要目的是用來支撐AI應用的計算需求的晶元就叫AI晶元,我覺得現在基本上相對比較全面的定義就是這樣。AI晶元到處都有,原因是AI的應用現在到處都有,只要有這些應用就必然會產生對於計算的需求,有這種需求就一定要有晶元作為支撐,無論是在雲端還是邊緣端都是這樣。
知識分子:AI這一波,我們回顧時通常說,某個時候有某個演算法的發明,AI晶元是否和演算法演進也緊密聯繫,它發展的推動力來自哪裡?
陳怡然:它其實跟傳統的科學計算是一樣的,包括我們常說的Windows~Intel體系。它的推動力來自於AI演算法的不斷演進,數據量增長帶來的處理需求,這兩件事情造成了對計算能力需求的顯著提升,才有不斷的新的AI晶元被設計出來滿足這樣的需求。
如果把AI的演算法作為當年Windows的標準看,GPU可以簡單比作當年英特爾的中央處理器,當然現在不太一樣的是,我們沒有一個單獨的公司去提供AI的演算法,有很多公司在做這件事情,也沒有哪一家公司獲得了當年像Intel微處理器這樣的地位,Nvidia很接近,但依然有別的公司參與。
知識分子:和傳統的晶元相比,AI晶元設計有多大的變化?
陳怡然:AI晶元所針對的演算法跟傳統的科學計算並不太一樣,這就造成了它主要的設計理念,實際上是如何更有效的把這種已經基本上定型的神經網路的架構,通過晶元或者具體來說的晶體管來做物理實現,這就是我們所說的AI晶元架構。
原來做傳統科學計算的時候,要給一個比較通用的計算架構,把它抽象出來,然後在一個很高的層次上通過一些很通用的方式去實現計算。但是AI晶元不是這樣的。它一開始就是給出一個類似物理連接的樣子,我就把這個東西在CMOS電路上儘可能用有效的物理形態把它表示出來,這樣就避免了那種先抽象,然後再普適的過程,當然就變的更加有效。所以這就是為什麼我們會看到,傳統的科學計算的晶元跟AI晶元,架構會有顯著的不同,是因為它的設計理念完全不一樣。
而且這一定是一個長期的過程,因為這實際上是在一個更大的框架,叫做行業特定設計(Domain specific design)之下,說的是要針對特殊場景設計——針對一個場景本身,提取出來它最重要的部分;而不是抽象這個部分,再做有效的設計和實現。這種設計的理念可能今後會是一個很長期的趨勢,原因就是摩爾定律停了,使得晶元的相對成本在整個系統實現成本裡面所佔比重逐漸降低。
今年圖靈獎給了一個約翰·軒尼詩和大衛·帕特森。帕特森曾在一個演講中表示,現在這個年代做一個晶元出來的成本,做最便宜的模型可能只需要幾萬美元(當然做一個很複雜的系統可能還是幾千萬),在這種情況下,大家就可以去嘗試很多定製化設計,然後找到適合的。這就是為什麼做RISC-V這種開源的架構,然後找到一個特殊的應用再去定製化把它做出來,這將來可能會是一個長期的趨勢。
知識分子:通用還會作為一個追求的目標嗎?
陳怡然:通用仍然會是長期存在的,因為這是我們的主幹。但是隨著業務的多樣性,這種針對具體場景的晶元作為輔助會越來越多。
知識分子:AI對於傳統晶元設計會帶來很大的改變么?
陳怡然:對,實際上AI在EDA軟體設計上的應用在美國是非常熱門的話題,原因是,如果人能夠下贏最頂級的棋手,他也應該能戰勝最頂級的晶元設計師,因為畢竟來講,晶元設計還是一個有一定規律可循的優化過程。傳統上來講,我們在設計的時候,都希望把一個晶元設計的工作抽象成一個數學可以表達的模型再去做優化,AI最大的能力是什麼?可以把一個任務在你可能不完全理解,或者不能很好的抽象成數學模型的情況下,它仍然可以做有效的優化,這個是AI最大的功能或者能力。那麼這個能力,用於EDA軟體的改進,用於減小晶元設計的周期,我們可以看到是非常有效果的。所以,現在所有的EDA公司都在做大量的嘗試,而且初步效果非常的好。
知識分子:將來晶元設計的周期縮的非常短?
陳怡然:晶元設計周期會縮短,現在叫做快速設計。現在提出的目標是能夠在24小時內完成晶元設計,原來是需要幾個月,在無人值守的情況下能不能設計?就好像原來做皮鞋,都是培養出了一大堆非常心靈手巧的裁縫,有人剪皮子,有人縫,現在全都是機器去做出來了,完全不需要人工干預。什麼時候能實現這不好說,但一定我們是朝著這個方向去走的。
知識分子:晶元的開發周期會比較長,成本也相對較高。有沒有可能晶元實現了某一個演算法以後,因為演算法的進展也很快,等晶元推向市場,已經並不是一個最適合的?
陳怡然:這種情況經常出現。因為演算法經常會有一些新的不同的設計出現,簡單的變化包括一些數字比如權重變化,不牽涉架構變化例如增加網路層級,這些就比較容易通過片上邏輯來實現。但比較複雜的是它如果出現了完全不同的架構或者以前沒有過的操作,這就很難用已有的片上邏輯來實現。這種情況下非常就變的複雜。
我舉一個簡單的例子,比如說最早的人工智慧晶元只支持MLP這樣的架構,就是直接一個矢量和矩陣相乘就結束了。後來又出現了卷積神經網路,它要做卷積,卷積如果不被支持你就必須把卷積拆分成向量跟矩陣相乘,那這個計算效能就顯著降下來了,這是一個很大的問題。
知識分子:這種問題怎麼去解決?
陳怡然:現在來看有幾種方式,一種方式是在技術上儘可能地會有一些可重構的器件。如果真的遇到原來設計上沒出現過的東西,有些邏輯可以經過簡單的可重構之後去支撐這樣的計算。但是它不是沒有代價的,這樣做一定會帶來性能的損失,至少不像直接做一個針對性的邏輯更為高效。
第二種,我把主要的方法先用一個晶元實現了。如果真的出現什麼新情況,旁邊加一個協處理器,通過兩邊的協同來完成。這有點像當年的386時代有一個整點運算器,有一個浮點運算器。只靠整點運算器也能算,慢一點,把浮點運算器加上就更快一點,這也是一種。
第三種就更極端。因為在實際部署中,一個晶元的銷售周期大概是三年,就是從它做出來到在市場上大規模銷售、使用、消失大概是三年,真正掙錢的周期在12~18個月。如果期間發現真的出現了一個新演算法或者應用這一代晶元不支持,也沒關係,下一代再支持就好了,因為一代晶元的生命周期非常短。但這一招對小公司不適用,因為小公司可能一代掙不到錢就死了。大公司能撐住,下一代加回來就行。所以在技術和商業模式上大家都有各種各樣的方法可以去應對,並不是這12~18個月內不能出現新的演算法或應用。
知識分子:我們現在已經討論晶體管很難做的更小了,這對於AI晶元設計會有怎樣的影響?
陳怡然:有幾點。第一點,摩爾定律發展下去,越做越小,可單位晶體管數目的成本其實不會再往下降或者降得很有限,原因是製造成本越來越高。在這種情況下,如何用相同的邏輯數量去做更多更有效的計算,或者進行計算的表達就變的非常重要。
一些新型的器件或者新型的工藝可以有幫助。我舉兩個例子,比如說有一種技術叫3D堆疊,可以在同一個單位面積上堆疊更多層,每層有很多的存儲器或者計算邏輯,這樣數據可以離計算非常近,提升計算時的數據傳輸效率。這當然就對AI晶元設計比較有效,因為AI計算時很大程度上是數據來回搬來搬去。
另外,也可以去看一些新的器件和材料,有些會更有效的去做一些AI的運算。比如像憶阻器這種東西,它器件的特性非常像神經網路的神經突觸。如果用晶體管來實現,可能需要幾十甚至上百個才能做出一個神經突觸。可是一個甚至比晶體管還小的納米器件就可以做這件事。所以後摩爾定律對AI晶元還是有幫助的。
知識分子:您提到憶阻器,現在對類腦晶元有很多不同的聲音,有一種反對聲音認為這個東西好像不太靠譜,包括IBM的TrueNorth,國內也有一些嘗試,您怎麼看這種類型的晶元?
陳怡然:首先說一條,我們其實並不非常清楚的知道人腦是怎麼工作的。因為我們對人腦的理解甚至對人腦認識的工具都處於非常原始的狀態,當然我們已經有了一些初步理解。那麼這樣來講,其實類腦晶元或者深度學習加速晶元,或者是類腦演算法、深度學習的演算法,它們的緣起實際上是一樣的,都是最早對於人的神經網路尤其是視覺網路的學習和認識,只是在後期兩邊分道揚鑣了。一邊覺得我希望在數學上做越來越多的事情,能夠讓它完成這個工作就好了。另外一邊希望從生物上對這個網路有越來越多的理解,通過這個理解指導我的網路設計。這相當於兩個流派,打一個比方,就像劍宗跟氣宗,這兩個實際上都是屬於華山派的,現在互相不服氣,深度學習加速晶元就說你們那個生物的好像沒什麼用,生物的說,你們那個解釋不清楚,我覺得沒有這個必要。
按照我的理解,一般來說類腦或者神經形態計算,其實今天早上高文老師也講了,就是希望能夠通過特殊的編碼形式,能夠完成更有效的計算,而不是簡單的對於某些數學模型直接的實現。我覺得這一部分還有很長的路要走,還是在一個初始的科研階段。不過真的有所突破的話,對於晶元的設計還是有很多的借鑒意義。我們完全沒有必要畫一條線說,你們那個就是純粹的科研,我們這個就是純粹的做應用,我覺得這是沒有必要的。
知識分子:AI晶元研究現在大的趨勢或者方向是什麼樣的?
陳怡然:現在很重要的一個趨勢主要是軟硬結合,因為在很長一段時間之內我們做演算法的跟做計算的分開,甚至互相都不太提及對方的貢獻,我覺得這是不好的。我們以前的數據分析的科學家,做演算法的科學家跟做計算的科學家實通過他們三方的努力才把AI技術推到現在的程度,我們要保持他們這種相互之間的支持。從我們的具體實踐來看,我們也看到了如果你只是做演算法,不想管它怎麼算出來了,和你做晶元不管前面的演算法將來會做什麼樣的變化和優化,都不可能達到一個最優的效果,所以這是現在的一大特點。
知識分子:感覺現在AI這一波來了以後,包括加上硬體本身的發展,摩爾定律結束,感覺好像進入了一個重新跟過去很不一樣的時代?
陳怡然:前兩天在杭州,我們開玩笑說很恍惚,為什麼?原來我們覺得主流的一些東西,現在好像變的不主流了。比如說我們以前覺得科學計算是一個主流,大規模並行計算是一個主流,現在發現AI是一個主流,但是AI不是科學計算,而且深度學習又不能完全解釋它,那究竟誰在成為主流?我覺得說不定誰的應用最多誰就是主流,我們以前做科學計算的時候,我們要講求通用性,那時候它是主流。今後我們發現其實這種多樣性,這種神經形態的計算的模型,我們稱之為認知計算的這種東西變的越來越多,那麼它可能就變成一個主流。這是我們現在感到迷惑和恍惚的地方,我覺得這畢竟是一個新的時代,不以人的意志為轉移,大家只能去擁抱它。
知識分子:現在有一種反對的聲音,感覺降溫也好反對也好,覺得現在AI離應用實際真正用的好、落地的場景,比如說很熱大家都在講的自動駕駛、安防也好,甚至有不同的聲音認為這個東西離應用好像還沒有那麼完美,甚至還沒有怎麼落地,我不知道從AI晶元設計的角度來說有沒有去考慮過這個問題?
陳怡然:有,因為做晶元來講,我得知道哪個應用將來最火,我才去設計,那我不知道什麼會最火我該怎麼辦。我覺得AI這件事情的應用,是很多因素造成現在的情況。最簡單的,從投資角度,做一個AI的應用,得找到人買單。所以為什麼大家做人臉識別,因為它的用戶有很強的付款的意願,比如安防之類的。但是實際上我們發現很多傳統行業,也有大量AI的應用,比如生產線質量檢測。那為什麼沒有人去做?因為這種應用往往是很碎片化的,造成了它的定製化成本非常高。他們這些產業利潤率又特別薄,他們願意掏錢的願望和能力都沒有那麼高,你就掙不到錢,所以我們沒有去做。我覺得AI的應用仍然有很多,有各種各樣現在我們完全沒有在做的。但因為它是一個經濟問題,不全是一個技術問題,這是第一。
第二,泡沫出現在頭部企業和應用,但是並不代表整個產業我們都解決完了。仍然有很多問題都是是可以解決但是沒有解決的,所以AI會持續很長的時間。泡沫也許會消亡,但是從研究和技術發展的角度來講,AI會在很長一段時間內成為一個平穩發展的行業。
知識分子:AI晶元方面,我沒有提到,但您認為還可以強調的?
陳怡然:我想說的一點就是,其實AI沒有運算的支撐是不可能大量更好更有效的部署的。我們要更多的去重視它的計算平台,更多的注重它在具體場景的實現。
尤其是在國內,現在有大量注意力是集中在AI的應用層面上,甚至投資也主要是在應用層面上。如果不是因為中興這件事,我覺得AI晶元這件事不會像現在這麼火,這也從另外一個角度說明其實我們在國內的投資眼光之前實際上是有它的偏見的。
我舉一個簡單的例子,我最近聽到一種論調,在AI晶元架構這個領域,說我們現在跟美國是同一個水平線上。我想舉一個例子,比如說像IBM的TrueNorth晶元,立項實際上是2007年,2008年項目正式開始,11年前它就有這樣的眼光,說要做一個類腦晶元、加速晶元。那我現在要問的一個問題就是,有沒有人可以告訴我,你覺得十年之後我們想要一個什麼樣的AI晶元,或者在計算領域十年之後什麼會是最需要的技術,還沒有人能告訴我這件事情。所以我覺得我們還是有太多的工作需要去做,不能滿足於現狀,看到一兩個還不錯的點,就下結論說我們已經夠了,我們的投入、人已經夠了,我覺得這是不行的,這是沒有遠見的。
知識分子:這就涉及到怎麼樣才能有眼光,去選擇非常重要的問題持續進行研究或者投入,您這方面有怎樣的建議?
陳怡然:這個問題就太大了,我覺得你們可以單獨去請一些人講。但是我覺得至少有一點,一定要有多樣性。實際上你看到的這些有點名氣的老師都是當年做的某一個點,這個點後來恰好越來越火,其實有很多老師做的很多工作甚至這些有名的老師自己做的其他一些東西後來也就默默無聞了,因為它們沒有變成一個熱點。那是不是我們吃了第七個餅吃飽了,前面六個就不需要了?不是這樣的。這種多樣性一定是需要的,有多樣性就會在某一天某一點爆發的時候,說這是我們當年的一個積累——這種積累就像一個很小很小的種子,最後長成了一棵參天大樹。
推薦閱讀: