熱門:瘦小腿瘦小腿瘦小腿

  1. 首頁
  2. 科技日報
  3. 科技

清華魏少軍:剖析AI晶片兩大技術痛點 3年內將現出局者

  • 小白兔

  • 2018-03-22 22:00:14

3月9日,由智東西主辦,極果和AWE聯合舉辦的中國首場AI晶片峰會在上海浦東成功舉辦。本次大會共吸引近萬名觀眾參加,到場人數比預計翻了3倍。即使是下午場,依然爆滿,有的觀眾寧願站著也要聽完全場。在大會現場,近40位人工智慧及AI晶片業界翹楚共聚一堂,系統地探討了AI晶片在2018年的技術前景和產業趨勢。

作為GTIC 2018大會的開場主旨演講嘉賓、AI晶片學術圈的代表人物,清華大學微納電子系主任、微電子所所長魏少軍教授發表了主題為《AI晶片發展需要應用和架構創新雙輪驅動》的演講,從四大角度剖析了當今AI晶片所面臨的挑戰、可能的解法、對AI應用與晶片架構的思考等,並分享了清華微電子所打造的Thinker系列AI晶片的歷程。

以下為魏少軍教授演講的要點精析,文後將附上魏少軍教授演講全文速記+PPT。

一、應用和架構創新是AI晶片的必經之路

目前,AI晶片發展面臨著兩個現實的問題:一是人工智慧新演演算法層出不窮、尚未固定;二是現在一個演演算法對應一個應用,沒有一個演演算法能夠覆蓋所有應用,也沒有出現一個殺手級的AI應用。因此相對應的,我們現在打造AI晶片也需要解決兩大要素,第一要這款晶片要適應演演算法的演進,第二要做一個創新的晶片架構,使其能夠適應所有的應用。

沿循著打造AI晶片的兩大要素思考下來,一種新型的晶片技術被推到了聚光燈下——“軟體定義晶片”,也稱可重構計算。魏少軍老師帶領的清華微電子所團隊在10年前就已經開展了這方面的研究。

“軟體定義晶片”顧名思義就是讓晶片根據軟體進行適應與調整,這是一項專用晶片架構設計上的創新,簡單來說就是將軟體通過不同的管道輸送到硬體中來執行功能,使得晶片能夠實時地根據軟體/產品的需求改變功能,實現更加靈活的晶片設計。硬體跟著軟體不斷變化,既能適應演演算法的演進,又能適應多個不同應用。

去年的時候,由美國國防部先進計劃署(DARPA)推動的電子產業振興計劃(ERI)針對後摩爾定律(post-Moore’s-law)時代的新材料、架構與設計流程,其中一個課題就是軟體定義硬體(software define hardware)。

二、打造超低功耗AI晶片Thinker系列

前年,一個偶然的機會,依照可重構計算晶片的框架,魏少軍教授團隊中的尹首一副教授帶隊設計研發了一款代號為Thinker 1的可重構混合神經網路計算晶片。這款晶片不僅可以動態地調整計算和記憶體需求,使得晶片能夠支援人臉識別和語音識別的神經網路應用,而且晶片的功耗非常小。

▲清華大學微電子所提供的Thinker晶片的顯微照片

Thinker 1不僅在AI效能與演演算法通用性上取得了突破性的進展,還獲得了學術界的重要認可,在2017 ACM/IEEE ISLPED國際低功耗電子學與設計會議上,Thinker1獲得了設計競賽獎,這是中國大陸單位首次以第一完成單位獲得此獎項。

Thinker 1是一塊實驗性質的驗證晶片,隨後,可重構計算團隊又打造了兩款Thinker系列晶片,分別為Thinker 2人臉識別晶片,能夠做到超低功耗的6ms人臉識別;以及Thinker S語音識別晶片功耗則更低,只有0.3毫瓦。這系列晶片在國際上廣受好評,獲得了眾多獎項。

三、AI晶片2-3年內出現先烈

在演講的最後,魏少軍教授分享了幾項總結與思考:

1、應用領域的確立是AI領域的確立前提,但是AI的殺手級應用還沒有出現,因此AI發展有很長的路要走。

2、未來能否出現像通用CPU這樣獨立存在的通用AI處理器?如果存在的話,它的架構是什麼樣,如果不存在,如今的AI晶片公司又該何去何從?

3、2到3年內,AI晶片行業將會碰到一個低潮,今天的一部分、甚至大部分的創業者成為技術變革的先烈。附:以下為魏少軍教授演講《AI晶片發展需要應用和架構創新雙輪驅動》全文速記

魏少軍:大家上午好,感謝主辦方給我個機會介紹我們的工作。主持人說我們是做人工智慧晶片,錯了,我是做晶片設計的,研究晶片的設計和理論。兩年前我們用前些年的研究成果嘗試做了一些AI晶片,結果效果不錯。後來我們在國際上連續發表了一些有影響力的論文,有些結果被一些引用,突然發現我自己成了AI晶片的專家,其實不是。今天我跟大家做一些溝通,主要希望提出一些可能跟在座的大佬們不太一樣的觀點,供大家批判和產生共鳴。我觀點中如果有冒犯在座各位,請大家務必原諒。既然是雙輪驅動,那就不是一個事情,我們今天談四個方面的內容。

一、積體電路晶片是實現人工智慧的當然載體。AI其實在50年代出現過,經過30年的發展後轉移到機器學習、再經過30年發展到了深度學習。現在看深度學習是人工智慧的主要內容,但其實深度學習只是人工智慧一個窄面,之所以深度學習作為了主要內容,一個原因就是前年和去年AlphaGo下棋贏了人類高手。而在這個標誌事件之前,早在2011年就進行過一個遊戲比賽,其實比AlphaGo更有代表性,當然可能不一定大家同意我的觀點。(2011年,IBM公司的Watson計算機參加綜藝節目危險邊緣Jeopardy,前兩輪與對手打平,而在最後一輪中,Watson打敗了最高獎金得主布拉德·魯特爾和連勝紀錄保持者肯·詹寧斯。)我們仔細分析兩者的比賽的過程,大家會發現,(這場比賽)高於AlphaGo,只是它不夠時尚而已。

中文有時候比較寬泛一些,“智慧”包含“智慧”和“能力”,我們多數智慧的東西不是能力。人工智慧這個詞有問題,不清楚,英文叫人工智慧(Artificial Intelligence),不講人工智慧兩者結合在一起。

晶片是實現AI的當然載體,無論是CPU、GPU、還是CPU加FPGA,或者其它出現的多個晶片平臺,所有這些東西都離不開晶片。所以講一句話,無晶片不AI,做AI一定要有晶片,晶片是不可或缺的基本內容。

既然人工智慧晶片如此重要,那麼怎麼實現它?這裡面我可能跟在場的嘉賓觀點不太一樣。我們先說AI面臨兩個現實的問題:第一、演演算法仍在不斷演進,新演演算法層出不窮;第二、一種演演算法對應一種應用,沒有統一的演演算法。(對於晶片來說)你希望找到一個架構能夠適應所有演演算法,而不是一個應用做一個晶片。

現在的應用複雜程度不一樣,但無一例外都使用的是一個專用的神經網路,在這樣的情況,我們需要在晶片當中實現一個具備深度學習能力的引擎。我們今天的深度學習需要的計算量和引數量是非常大的數字。以前我們很少的運算量就可以完成一些小工作,引數有10萬個就很多了;但是到了2017年,我們做到17層的神經網路做每秒196億次的運算,有1.38億個引數。我們需要一個好的計算引擎,沒有好的計算引擎我們完成不了這些運算工作。

二、在這個情況下,我們看看AI晶片需要什麼樣的計算要素?它第一要適應演演算法的演進,第二我們要做一個架構適應所有的應用,就是架構的可變性,高效的架構變換能力。此外我們還要關注計算量和計算能效。計算能效要求是多少?大概每瓦10 Tflops,即每秒完成10萬億次的運算。並且某些應用功耗需要低於1mW,有些應用需要識別速度大於25fps、而且晶片體積小,達到低成本進入家電和消費電子,配在裝備上,同時開發需要簡易,一個人開發晶片設計難度很大。因此,我們需要探索架構上的創新。

接著我們談到,應用和架構創新是發展應用創新的必由之路。

今天的AI應用涵蓋了所有方面,無行業不AI,包括人臉識別、語音識別、機器翻譯等等。我們看到螢幕上已經做到了即時的傳譯、無人駕駛、智慧陪伴、能源、農業、或者生產,似乎AI涵蓋了我們生活各個方面,這是給我們一個很重要的印象。但是我想問幾個問題:哪些應用需要 AI?我們希望AI幫忙解決什麼問題?什麼是AI的“殺手級”應用?什麼樣的AI應用是我們每天都需要的?……我覺得這些問題到今天為止都沒有答案,有些東西好像是AI,但是實際上並不是AI。

我給大家說一個笑話,今年是我本命年,我想買一條紅圍巾。我在網上搜了一下沒買,然後在我的手機上的各種檔案中不斷出現紅圍巾的廣告,讓我感覺非常煩。它具備AI的效能,但是這個AI不是我需要的幫助。回想幾年以前,(你在)買一個檯燈之後,網頁上就不斷出現檯燈的廣告,今天的AI還沒有達到我們所需要的程度。

三、應用和架構創新是發展人工智慧晶片的必由之路。做應用確實很難。我們做晶片的人一直想架構是什麼,架構創新很重要,從感知、傳輸到中間的處理,一直到後面的傳輸和執行,都不開的基本架構。反之大家知道這是一個感測器,通過執行器,傳輸中間有很發散的網路,基本的邏輯在這裡。

智慧處理的根本架構是什麼?我們不知道。因為我們不知道人怎麼想問題,大概是什麼樣的結構,只能按照系統、軟體、處理器、儲存這麼來模仿。毫無疑問我們碰到的都是多輸入、多輸出的系統、多工、高度並行化的執行系統,

聽著很有道理,但是我通過一個簡單人類處理事情的流程舉例,我們碰到一個事情,這個事情很多特徵,比如我第一個看到這個人,我看看他長什麼樣子,我認識不認識他?我不認識他、沒見過他怎麼辦,我要認識一下。我們握手交換一下名片,看你是在哪個單位、什麼地方、加深一下印象。

也有可能我們第一次見過,沒有交換名片,我們認識的時候就知道又見面了。在這個過程我們不斷重複這個內容,有可能在中間出現偏差我不認識他,我要認識這個人,就需要把我的知識重新提升一下,這個不斷重複的過程涉及大量內容,需要大量計算。

計算無處不在,計算本身是我們架構基本前提,沒有好的計算量不要提,GPU因為有很好的計算量,別人趕不上它。但是由於計算非常豐富,我們不知道人腦怎麼完全計算,因此我們只好通過這種我們知道的方式,構建一個所謂能夠具備智慧處理能力的晶片,一個是智慧的軟體和硬體。

智慧軟體包含這幾方面的內容:形成知識能力、組織能力、思維推理能力。這些東西不是晶片做的,是軟體做的。我們可以看到晶片更多地是提供計算的平臺、多工並行的能力、極高的能效、和靈活高效的儲存與實時動態能力。因此我們經常說,實現智慧的核心其實是軟體不是晶片,晶片不過是支撐智慧的基礎而已。我們要改變一些思路,就是我們做晶片的人、特別是做AI晶片的人,要把軟體放在足夠高的位置來看。

因此我們希望在這種情況下,硬體可以跟著軟體不斷變化,也就是所謂“軟體定義晶片”的概念。(如果你說)晶片不能被軟體定義,那你是做不好。這個概念我們在10年提出來了,但是陽春白雪,知道的人不多。由美國國防部先進計劃署(DARPA)推動的電子產業振興計劃(ERI)針對後摩爾定律(post-Moore’s-law)時代的新材料、架構與設計流程,在科技領域尋求突破,每一個方向上設定2個課題,去年其中一個課題就是軟體定義硬體(software define hardware)的概念,我把它中間一段話摘出來:打造可實時重新配置的軟體和硬體,使其具備ASIC的效能表現,但不必在資料密集計算中犧牲可程式設計性。也就是說讓硬體的功能和架構跟著軟體實時變化,而所謂的實時所謂的即時指的是執行300~1000納秒內。我只能笑一笑,這個工作我們10年前就已經在做,走在美國同行的前面。

大家說,軟體定義晶片也沒有很奇怪,FPGA早就可以做了。其實FPGA也不行。第一就是細粒度,由於要實現位元級的運算,運算顆粒度必須為細粒度。FPGA顆粒度是細力度,所以配置資訊量非常大,需要幾兆到十幾兆位元組,需要十幾毫秒甚至更長時間。同時一旦配置完畢,不可更改。如果要改變FPGA的功能,只能下電或線上重新載入配置資訊。FPGA的芯片面積效率很低,只有5%,千萬面積的FPGA實現幾十萬,能量效率很低,而且功耗很大。同時FPGA需要非常先進的工藝,且需對工藝進行特別調整,應用者還必須具備電路設計知識和經驗。最後就是FPGA成本非常高。

FPGA可以用來做一個簡單的驗證系統,但是實用系統?對不起恐怕很難,所以我們說FPGA無法承擔軟體定義晶片(Software defines Chip,SdC)的任務。那麼什麼樣的系統可以完成SdC?

我們從架構上去考慮,如果我們像右邊這樣,給出一個和軟體完全一致的硬體結構,沒有考慮硬體本身的開銷,這樣的計算效率一定是最高,毋庸置疑。可軟體可以無窮大,硬體總是有邊界的。

但如果我們把軟體分成若干塊,一塊一塊搬過去,第一塊執行完了以後,執行第二個模組,然後第三個模組搬過去,回來計算第四個、第五個、第六完成這樣。這要求我們的硬體結構和功能必須是動態的,隨時可以改變的。這就是軟體定義晶片的基本概念。

至於工作難點則是怎麼很快的實現它?我們過去10年當中的努力就是解決這個問題,圖裡的計算架構是非常經典的架構,我們可以看到這兩者一個是所謂控制單元劃分的內容,逐步送進去執行,要求根據要求配置計算單位並且完成執行。

問題是,要出現完全可重構的資料通道和可完成變成的控制單位,這樣做到可變化的。這與傳統結構是有差別,我們拿經典的計算模式做了一個比較,它是弓形的,可傳播計算是函性的。經典架構當中,軟體硬體不變,而在我們現在的架構當中,硬體和軟體都在做動態的選擇性的改變,經典架構用高度複用的方式,降低它的成本,而在我們這邊是冗餘應用。

至於我們是不是改變的計算模式,很遺憾告訴大家,我們還是在馮諾伊曼架構當中。有些人我說我們改變了模式,我做出了新型的計算架構,其實我說,你沒有弄明白。

在這樣的架構之下,我們實現AI晶片的時候,可以把硬體按照AI的演演算法來不停的變換,以達到最佳的計算效率,大家可以看到最下面這塊,我們從AI的應用定義採用深度神經網路,再來決定硬體的功能,這樣的結構我們認為是一個最佳的方式。(兩年前)我們在無意當中決定嘗試一下,構建一個AI晶片叫做“思考者(Thinker)”。

大家可以看到左邊有一個陣列,有兩種PE,一種是通用的,一個是超級的,代表不同的計算內容,包括卷積的計算,還有全理解的計算,還有池化等等。通過定義的方式,這塊晶片把每個PE方式進行隨時定義,再傳輸到往來網路運算/我們還可以把陣列上的眾多的PE,通過定義的方式不斷滴改變不同的層面的計算內容,也可以大大提升系統的能效。

在過去2、3年當中,我們(延循著軟體定義晶片的技術)做出了AI晶片,在去年的ACM上做了相關的介紹,Thinker S也在MIT得到了很好的報道。Thinker 2做人臉識別的只需要6個毫秒,功耗極低,Thinker S的功耗則只有0.3個毫瓦。這塊晶片獲得了很多專利、(發表了)很多的論文、並且得到多個獎項。

我把跟AI的相關的內容都用紅線畫出來了,基本在曲線的第一個風波上。我們現在的AI太熱了,有時媒體也起了不太好的作用。

最後,我想總結一下,提幾個問題:1、應用領域的確立是AI領域的確立前提,但是AI的殺手級應用還沒有出現,因此我們說AI的發展有很長的路要走。2、能否出現像通用CPU這樣獨立存在的通用AI處理器?如果存在的話,它的架構是什麼樣,如果不存在,我們今天的已滿足特定應用的晶片恐怕只能做IP核了,我們AI公司何去何從呢?這些問題留個企業家們思考。可能大家不同意我的觀點,但是2到3年內(AI晶片行業)一定會碰到一個低潮,今天的一部分、甚至大部分的創業者成為技術變革的先烈。對不起。(觀眾笑)但是毫無疑問,這將是AI晶片發展中,最令人欽佩、也最令人動容的偉大事件。謝謝大家!

推薦您的文章

其他文章