Live回顧|清微智能科技CTO:可重構計算晶元的技術原理及實現難點
【大咖Live】 人工智慧與晶元專場第三期,我們邀請到了清微智能CTO歐陽鵬,帶來了關於《可重構計算晶元的技術原理及實現難點》的主題直播分享。目前,本期分享音頻及全文實錄已上線,「AI投研邦」會員可進雷鋒網(公眾號:雷鋒網)「AI投研邦」頁面免費查看。
本文對這期分享進行部分要點總結及PPT整理,以幫助大家提前清晰地了解本場分享重點。
分享提綱
一、 什麼是可重構晶元;
二、 可重構晶元的特點及實現原理;
三、 關鍵技術及設計難點;
四、 目前的產品成果。
以下為清微智能CTO歐陽鵬的部分直播分享實錄,【AI投研邦】在不改變原意的基礎上做了整理和精編。完整分享內容請關注【AI投研邦】會員內容。
大家好!非常開心能夠來到這裡受雷鋒網的邀請,然後來給大家做一個技術的講座。我是清微智能CTO歐歐陽鵬。清微智能科技有限公司,它是一家立志讓智能無處不在的這麼一家公司,公司的定位是做全球領先的這種高能效人工智慧晶元及解決方案的一個提供商。
我們的核心技術其實就是可重構計算技術,這個技術是來源於清華大學,也就是來源於清華大學的可重構計算實驗室,應該是從2006年我們開始做技術,到現在差不多已經做大概13年的的積累,然後我們也是說想基於可重構計算技術本身去搭建這種高能效的,然後通用的這種人工智慧晶元。在原先我們主要是在清華大學做研究積累,然後直到去年我們出來和產業化的朋友一起成立了這麼家公司,所以公司技術團隊來於清華大學微電子所。然後這個團隊本身也包括一些上市公司的CTO,還有來自MVD聯發科華為阿里等等平均大概有十餘年的這種軟體演算法和硬體經驗的一些研發骨幹組成。
大家其實可以看這張圖,從2015年我們獲得國家技術發明二等獎,到2016年至2018年我們連續推出了think系列的晶元,從think一代到二代,還有think S和think M應該是說做了整個think系列的這種晶元,然後從2018年7月我們成立清微科技,然後到今年6月份,也就是不到一年的時間,我們完成了其中一款產品的量產。
下面我們可能就給大家介紹一下我們核心的一個技術,本次直播有很多同學可能還有很多同行,所以說儘可能的以簡明的方式去再去給大家講清楚可重構計算技術以及跟同類的一個對比。更重要的是說在做可重構計算的時候,它存在一些什麼樣的難點?為什麼這個難點我們研究了將近十餘年,其實可以看就是人工智慧晶元,其實它的發展其實是已經是不可阻擋。從這張圖也可以看出來,人工智慧計算其實正從雲端逐漸下沉到邊緣設備和物聯網節點。也就是說無論是在雲端還是在邊緣端,其實都需要到人工智慧都需要要有一個能具有人工智慧計算的一個硬體載體。一個下沉帶來的是市場規模急劇的擴大。
從上面這張圖也可以看出來深度學習晶元,其實也就是目前代表人工智慧晶元出貨量從2018年的1.649億,這個可以到2015年的29億以上,然後到了2025年規模可以達到726億美金。所以說人工智慧晶元的發展,帶來了對深度學習晶元的一個需求,我們來看一下人工智慧晶元, 從目前來看,既然它的市場很大,它的規模會不斷的發展,那它到底有什麼樣的一些需求?
我覺得主要是分三點,第一點就是它的靈活性和可編程性的這樣一個需求。因為很多的網路都會出來,已經出現了,而且不斷的在湧現這種網路不同的連接關係,不同的網路結構,你不可能對每一款晶元去做定製化的實現,你也不可能說對新出現的東西你能夠做提前的預知,所以說你的晶元是應該具有靈活性和可編程性的。
第二個就是神經網路本身它其實不僅僅是神經網路,所謂的CN層,第N層等,它其實還有很多非神經網路部分,比如像人臉檢測和識別裡面,它其實有左邊這部分我們常用的這種神經網路,但是右邊部分還有很多其實是非神經網路部分,也就是說對神經網路和非神經網路的高效處理,才能夠使得整個人工智慧演算法處理達到一個很好的效果,原先的方案是說對非神經網路部分要麼用定製化的實現,要麼用CPU來實現,其實你的短板還是在你的非神經網路部分。
所以說人工智慧晶元應該對神經網路和非神經網路都能夠進行高效的處理。這個能效從原先CPU、GPU到IPGA這些能效其實取決於他們本身的這樣一個應用場景或本身的一個架構,它能效值是不高的。當從晶元當從人工智慧從雲端遷移到邊緣端的時候,我們可以發現在雲端它其實有高算力,高能效的需求在這個邊緣端,它其實有低功耗高能效的需求。
所以說隨著人工智慧的需求的發展,人工智慧晶元高能效的需求,比如說能夠到TOPS/W這樣一個以上的這麼一個性能,也是成為了越來越關鍵的一個需求。我們可以看到人工智慧的晶元的需求,其實就是靈活性和高能效,到底我們需要一個什麼樣的一個系統架構?
這張PPT講述了是說橫坐標是一個靈活性或者是通用性,他們其實是可以等價的,然後縱坐標是一個能效,我們可以看到CPU其實具有很好的靈活性,但是它能效率很低,而ASIC的能效非常高,但是它幾乎沒有通用性,沒有靈活性。而FPGA、GPU和現在比如說永信的NPU,其實是在這個能效上有提升,但其實他靈活性其實是在變差的,如果我有新的需求,我才重新的進行設計。
其實我們也看到在這個領域,在這個圖裡面,左上角部分有這麼一個區域,這個區域是說軟體和硬體可編程在執行的時候,它可以接近S的這樣一個執行效率。在這裡面我們做的研究其實就做的研究做的技術積累,其實就是我們講的可通過計算可成果計算,就是能夠打能夠想去達到CPU的這樣一個接近CPU的靈活性和達到一個接近ASIC的這樣一個執行效率。
這個技術本身其實是最近美國的DARPA,他們也提出了軟體定義硬體,目的也是說軟體可編程、硬體可編程,同時想去獲得接近專用電路所謂的ASIC的這樣一個性能。包括國際半導體的發展路線圖,他也講CGRA就是所謂的可重構計算,然後合在一起列為核心關鍵技術,美國把這個技術是列為他們的這樣一個電子復興計劃的核心技術。他們認為接下來他們技術在電子行業領導做領導地位的話,這一塊是他們重中之重。這是他們2017年提出這麼一個計劃,其實我們做這個技術其實是到現在,就是說反過頭來看,我們這個技術其實是比他們早做了十年。
這是一個可重構的一個基礎計算系統。其實我們也可以看到可重構計算本身它有自己的一套工具鏈,我們叫做CGRA的一個工具鏈, 包括我們自己內部用的時候,我們是有一套可以兼容用戶,比如說在Tensorflow去開發,然後能夠直接下沉到編譯到我們晶元上的這樣一套工具。
再一個就是從右圖來看可重構這樣計算系統其實包含了比如說像控制單元、可通過計算陣列,還有一些存儲和輸入輸出設備,這是一個非常基礎的這麼一個計算系統。
這裡本來是有一個動畫的,能夠演示一個基本的一個過程,但是動畫現在放不了,我大致說一下,比如說這裡面有配置、數據,其實最右邊其實列了一個流程,也就是說可重構計算,其是在正列配置的驅動下進行數據的載入,進行循環的計算,最後將結果導出是這麼一個過程,在這裡面其實是可以做到一次配置、多次數據計算。一旦配置完成,它是在數據流的驅動下去完成計算。我們可以進一步再講細節一點,左邊這個其實是可重構架構的一個基礎架構,它包含了這樣一個比如說存儲部分,它包含一個核心的一個陣列計算部分,陣列計算有陣列的基本單元,這些單元你是可以去設計的,它可以是一些粗粒度的,也可以是一些細粒度的。
我們看右邊其實就是一個程序,一個非常簡單的N次迭代的循環,我們其實可以把這個循環轉成數據流圖,這數據流圖我這裡面只是列了四次迭代,比如說紅色用不同的顏色表示。我們再往右邊看,右邊其實是一個從上到下的一個時間軸表示的這麼一個計算過程。在第一個T時刻我再配置一下,我可以完成一個加法運算,然後在下一時刻,他和原著它一代關係往下走,從而完成一個或運算和一個減法運算。然後此時下一次迭代的加法運算,它又可以啟動。
然後所以在這裡面你可以看右邊其實是配置了。原第一次T時刻它是配置的一個單元,到T加一時刻它已經配建了三個單元,然後到T加20克的時候,第三次迭代的加法又已經開始運算,然後第一次迭代的乘法開始啟動,到了第四次以後其實整個電路已經配置完成,所有的執行過程其實在數據的驅動下去完成,也就是說只要在我配置完成以後,它已經是一個ASIC的一個執行方式。所以你可以看到到T+30其實是已經沒有配置,其實是展示了和傳統計算架構的一個對比,傳統是只能指令驅動的方式,比如說左邊這個圖它有自己的指令, 所以這是一種指令驅動的一個實用計算模式。
我們看右圖,右圖是一個可重構的計算模式,可能夠是說我通過配置我可以在正面上我配置不同的功能區域,一旦配置完成以後,它可以實現數據流的驅動,而到了下一個時刻,我又可以把我的這個單元快速的配置成不同的功能,在這個功能下我又可以去進行數據流的驅動,所以它是一個數據驅動動態重構的一個空間計算模式,他沒有指令,它執行效率非常高,而且它充分利用了這種數據的這種局部性,然後能夠快速地對數據進行計算。它是一種接近ASIC電路的這樣執行方式。
前面講了一下可重構計算的一個大致的一個基礎系統,以及它一個基本的一個執行方式,還有和傳統的計算架構的一個對比,我們來看一看可重構計算本身它有哪些挑戰?來有哪些難點?
其實我們可以看左邊是個程序,比如客戶的程序或者開發程序,然後怎麼在我們的可重構的這樣一個計算架構上去執行。總的來說其實挑戰主要有三個方面。
第一個就是說動態配置下的這樣一個數據驅動的執行,如何去充分的去提高陣列的利用率,這是一個問題。
第二就是說我們是一個規則的陣列,但是其實很多運動它是非規則的,它可能有條件,有跳轉,還有控制等等,如何讓它執行的時候能夠提高計算能效,這是他的一個挑戰。
第三個就是你的硬體資源肯定是有限的,但是你的應用其實是無限的,或者說是一個很大的一個規模應用,如何讓大規模的應用在有限的應用資源上能夠很好地運行起來,這其實是映射的一個過程,如何去優化映射的一個效率就變得非常關鍵。
所以說可通過計算它這個挑戰,我認為主要在以上三個方面,基本是做了這麼多年的這樣一個研究, 我大概舉兩個例子,這個例子其實是非常具有代表性,它是一個非常複雜的一個程序。從自身的角度來說,它其實是一個非完美的一個嵌套循環。所謂非完美是說這個程序它有比如有單條語句,然後橫插在循環體當中,嵌套是說它有多層的循環嵌套,其實我們去把這個程序去往可乘過陣列上去做的時候,其實可以看到每一個循環體它有自己的一個迭代間隔,迭代間隔其實影響執行時間,不同的嵌套的循環都有自己的間隔,他們間隔的效率都會對本循環起作用,但是從總的多層的循環來說,有個總的一個間隔,就是說如何協調調配總的間隔,讓整體的執行時間最快就變得非常關鍵。
這裡面我們其實做了一個工作,我們其實可以看把不同的子循環,我們去把它內層的循環,我們去把它間隔,把它循環體給抽出來以後,建立了一個如圖B所涉家數據流圖,然後我們把多層的循環,然後融合在一起,形成一個大的一個循環體,就是由C所示,從這個層面上我們去優化調配每個子循環的迭代執行時間和以及總的一個迭代時間。其實大家可以看到這個數據流圖其實存在很多依賴關係的,如何讓循環體總的這樣一個嵌套的循環體高效的執行,這就是優化技術的這樣一個東西,然後這裡面涉及到怎麼去調配間隔。
另外是說我們在這個裡面我們做了一個壓縮技術,如果循環多了以後,它會帶來配置信息的冗餘,我們通過這樣一個壓縮的技術,我們可以極限化的把配置壓縮到這樣一個非常小的一個片面一個片上去,從而可以讓配置的效率非常高。我們需要說在CGRA上執行時間相比說別的,我們可以減少70%的這麼一個執行時間。再一個就是在可重構計算本身的時候,其實你不同的這樣一個程序的分割,然後在正面上去做映射,哪個單元負責哪個邏輯,他們之間的數據通信,傳輸路徑的長與短都會影響到能耗,所以說我們其實又做了這在能耗約束下的這麼一個模型。
這個模型是說我們在CGRA上去做,我們可以將能耗減少50%。上面其實提到了就是說可重構計算的難點,其實可通過計算我總結了三個方面,但它其實還是有很多的這種關鍵點在裡面,我上面也舉了兩個例子,這是兩我們做兩個優化的技術,也其實一直圍繞CGRA從計算架構到工具鏈的映射還有優化。其實一路下來,我們以前的實驗,我們的可通過計算實驗室,這個也是做將近這麼多年的積累,從所以說其實很多技術其實都體現在的我們的論文當中,我們專利當中包括我們申請了將近120多個專利,還有我們發表的這一系列頂級的論文,還有我們出版的可重構計算的這樣一個專註,還就是獲得了一系列獎勵,所以說可重構計算難點,今天只是用兩個例子來講,當然還有很多的挑戰.
技術是為應用服務的,我們說做了這麼多年研究以後,我們要想的是說將可通過計算技術去做產業化落地。所以接下來我來介紹一下我們從公司層面上做的兩款產品。
其中一款產品叫做智能語音晶元,他代號是TX210,這是我們剛才給大家介紹的已經量產的一個低功耗的一款語音晶元。這款晶元今年出貨大概有幾百萬,然後未來兩年我們應該可以出貨大概4000萬顆左右。其實看左邊TX210它的面積非常小,它功耗非常低,可以在兩毫瓦左右執行。然後它支持主流的一些神經網路,包括你不同的位寬的1到16比特它都支持,所以說它可以應用在比如像手機可穿戴設備,還有這種LT設備,還有這種智能家居方面,右邊其實我們已經做的一些方案,包括我們做的一些像智能開關,智能耳機,智能攝像頭,還有智能手機,應該是有些產品很快大家都可以買到相應的產品,目前這款晶元其實是在市場上還是比較屬於認可的。
下一款晶元就是我們的智能視覺晶元,我認為它是一款多模晶元,它不僅僅是給視覺用,它是也可以做語音,它也支持比如像聲紋比如說語音識別,它可以去做,這款晶元裡面有用到我們的可重構計算引擎,它的AI的算力可以達到十個TOPS/W這麼一個性能。然後他內嵌了一個3D引擎,可以比如說像支持結構光,還有TOF,還有包括雙目立體,整體功耗大概在350毫瓦左右,這款晶元應該今年可以量產。這款晶元其實是這可以用在很多場景,比如像智能家居場景,比如說你這個門鎖都可以用,它還有智能安防,還有智能支付,因為它是有一款3D加AI,所以說它的安全性可以做得非常高。第二是說智能機器人,這樣這款晶元它有能夠提供深度信息,所以在比如像導航這方面他可以去提供支持。這款晶元其實就是定位就是說更智能更安全,還有更高的一個計算能效,這是我們TX510的晶元。
本文為部分內容和PPT,完整內容和PPT查看可進入雷鋒網(公眾號:雷鋒網)「AI投研邦」查看;(AI晶元研究報告即將出爐,會員可免費觀看)


※雲天勵飛李愛軍:視覺AI晶元正在賦能5AIoT整個網路的端、邊、雲 | CCF-GAIR 2019
※曾奪世界破解大師的360後悔了,老周:出去秀便宜了美國人
TAG:雷鋒網 |