近來人工智慧(AI)話題正熱,預計還將會再熱一段時間。因此,在ASPENCORE旗下中國版《電子工程專輯》、《電子技術設計》、《國際電子商情》三大媒體聯合舉辦的「2019年中國IC領袖峰會」上,中國半導體產業協會副理事長、設計分會理事長魏少軍以「人工智慧晶片要上一個新台階」為題,分享他最近關於AI的一些思考,以及關於AI晶片發展的大概願景。

AI晶片的四個階段

首先,魏少軍將AI晶片的發展劃分成四個階段:AI Chip 0.5、1.0、1.5、2.0。

20190329_China_AI_NT61P1

AI Chip 0.5階段是指利用已有的晶片(如CPU、GPU、FPGA、DSP等)來實現AI功能。這是比較早期的實現方式,只要實現AI功能就好。

AI Chip 1.0階段出現了一些AI專用晶片,比如TPU、SCNN、UNPU等。它們屬於領域專用,根本點在於如何解決強大的運算能力和功耗之間的關係,也即尋求一種最佳的效率(OPS/W)。魏少軍指出:「各種AI的演算法都需要強大的運算力,而用原來的晶片去做無可避免地會帶來功耗的上升。因此,我們需要開發一些專用晶片,在保持運算力的同時降低功耗。」

AI Chip 1.5階段出現了一些半通用、可重構且兼顧訓練和推理的晶片,比如Thinker、DPU等,用來解決演算法太多等問題。目前這類晶片所報導的還不是特別多,我們還主要處在AI Chip 1.0階段。

AI Chip 2.0階段是什麼?現在還不知道。魏少軍認為它應該是通用的,同時應該能自我調整。他並補充說:「當然,我們希望它是智慧化的。」

早期的AI Chip 0.5~1.0階段主要聚焦在雲端的訓練。1.0~1.5開始較多地討論邊緣端以及與推論相關的內容。「但這並不完全集中在推論,未來的發展應該是兩者兼顧。」因此,從1.5~2.0應該是雲和端、訓練和推論兼顧的發展。

每個階段中聚焦的重點是什麼呢?0.5階段主要聚焦於性能,即怎麼樣能夠運算得更快;這中間還經歷了從CPU (速度不夠快)到GPU (功耗很大)再到FPGA實現的轉變。1.0階段不僅關注性能的問題,更關注能耗(能量效率)的問題。1.5階段除了性能、功耗和能效外,更關注的是靈活性。2.0階段則包括更重要的智慧化。一言以蔽之,0.5階段是實現,1.0階段是應用,1.5階段是系統,2.0階段是智慧。

AI Chip發展藍圖

AI晶片到底會怎麼樣發展?從下面的AI Chip發展藍圖來看,這類晶片會慢慢出現兩種不同的架構:越來越多的演算法;越來越多的可程式性。同時,演算法的設計和硬體的設計兩者要結合起來,目標是實現更低的延遲、更高的能量效率以及更通用。因此,在這個過程中,演算法和硬體的協同設計,成為AI晶片發展的重要特點。

20190329_China_AI_NT61P2

此外,圖中右上角所述的「更高的能量效率面向小型化的AI應用」,主要是指邊緣應用。而左下角「更高的硬體靈活性面向綜合的AI應用」,則更多地聚焦雲端應用。「這樣的發展藍基本上可以反映在發展過程中所面臨的不同問題,以及要解決的重點問題。」魏少軍認為,我們在設計AI晶片的時候,已不像以前只關心晶片或關心軟體,而是需要協同的設計、協同的最佳化、協同的驗證和協同的實現。

AI服務需從「雲」走向「端」

今天的AI服務更多還是在雲端,阿里巴巴、Google、百度、IBM、Microsoft等都在發展AI雲服務。這類服務內容已經很豐富,包括影像辨識、語音翻譯、智慧家庭、智慧醫療等等。

但晶片人更多的是希望從雲走向端,有足夠的量才能實現願望和現實利益。以Arm的例子來看,該公司把AI應用分成三類:大端(雲端)、中端和小端。從數量上看,大晶片、中晶片、小晶片各有100倍的差距。但是不管怎麼做,雲端和邊緣端的協作是必然。

ASIC成長速度最快

從Tractica的報告來看,各類AI晶片中,專用積體電路(ASIC)的數量成長將最快。這個預測基於的點是什麼?就是大量的應用在端,需要用到更多領域的專用晶片。

20190329_China_AI_NT61P4

但這其中將面對兩個問題:第一個是演算法仍在不斷演進,新演算法層出不窮;第二個是一種演算法對應一種應用,沒有統一的演算法。這對於做ASIC是件非常痛苦的事情,這在短期也很難解決。

舉例來說,卷積型的CNN更多的是用於視覺特徵的提取;全互連的FCN更多的是用於分類;RNN則主要用在串列資料的處理上,比如說語音的辨識和翻譯等等。

因此,我們很難有一個具體的演算法,能夠覆蓋各式各樣的應用——實際上,神經網路的結構是不太一樣的。

此外,在不同的應用中,能量指標也不太一樣。例如穿戴式裝置、智慧感測器等的功耗大概是1mW;行動電話、智慧家庭、智慧玩具等是100mW;視訊監控、工農業應用可能會達到瓦級;而到了自動駕駛則可能會是上百瓦。

能量效率指標在不同應用中要求不同,要想全部覆蓋也是個比較麻煩的事情。

AI晶片需要高效通用的深度學習引擎

總的來說,我們需要解決下圖中的三個問題。比如說,能不能找到一個通用的神經網路運算——如果不能百分之百覆蓋所有的應用,哪怕能覆蓋掉一部份也好。另外,在保證足夠大運算力的同時,還需要考慮能量效率問題。例如,我們想為手機增加AI功能,但如果增加一點點這樣的功能,會使手機電池壽命突然減半,那麼就肯定不可取。

軟體定義晶片是AI晶片發展方向

魏少軍認為AI晶片未來的發展方向是軟體定義晶片。如下圖所示,GPU相比CPU沒有太大的變化,但是FPGA特別是ASIC時就會發生重大變化。

20190329_China_AI_NT61P7

對於未來晶片架構的創新,軟體定義晶片,或者稱粗細微性可重構架構(CGRA),即要兼顧硬體可程式性與軟體可程式性。這個概念在國際半導體技術發展藍圖(ITRS)和美國國防部先進研究計畫署(DARPA)的ERI專案中都有規劃。魏少軍表示:「它應該是軟體、硬體均可以程式設計,而且是混合顆粒度的。雖然能量效率和運算效率比不上ASIC,但當然比CPU、GPU要好很多。」

總結

魏少軍說,做晶片的人為了實現差異化,不停地在定義、設計、製造、銷售這個週期中打轉。隨著時間的推移,晶片的價值持續降低,差異化也在變小。但如果我們設計的晶片能像人類的成長過程一樣,透過接受教育而變得跟別人不一樣,那麼我們的晶片將越用越有價值,越用差異化越大。這是實現競爭的一個非常重要的方法。

透過在使用過程當中不斷獲取相關的參數以及學習的內容,再進一步發展,最終形成晶片的個性化。隨著時間的推移,個性化也越來越強。魏少軍總結說:「這樣的發展思路也許對於今後發展AI,甚至是個性化、差異化的晶片過程中,將會起到很重要的作用。」