AI/AR晶元的新範式——從微軟HoloLens Processing Unit (HPU)說起
AI+AR
人工智慧(AI)與虛擬現實(AR)的概念在最近乃是當紅炸子雞,火遍大江南北。AI與AR的概念區別不小,但是也有不少交集。目前,AI最熱門的應用就是在計算機視覺(Computer Vision,CV)領域,而AR的實現(圖像渲染)自然也離不開CV。舉個例子吧!《龍珠》想必大家都看過(如果你沒看過說明你很年輕!大叔很羨慕你!),裡面的戰鬥力探測眼鏡就是AI+AR的一個極好例子:戰鬥力探測眼鏡用基於CV的AI首先做物體識別,把眼鏡視野裡面的戰鬥對象與背景區分開,然後用一套AI演算法去評估該對象的戰鬥力,最後把戰鬥力標註到眼鏡視野里的目標周圍(什麼?戰鬥力只有5?),從而實現AR。
《龍珠》里的戰鬥力探測眼鏡是AI+AR應用的一個極好例子
HoloLens與HPU
如今,實現戰鬥力探測的AI+AR技術已經不再為賽亞人所獨有,地球人也擁有了這項技術!例如,微軟的HoloLens在已公布的AI+AR設備中可謂佼佼者,憑藉微軟的金字招牌以及酷炫的演示動畫吸引了無數科技愛好者的眼球。目前,用於AI/AR的處理器架構該如何設計仍然處於探索階段,Intel想藉機推自己基於CPU的方案,Nvidia想利用GPU彎道超車,而Qualcomm也拼接Snapdragon平台在一邊虎視眈眈。在最近的商用晶元峰會HotChips上,微軟公布了應用在HoloLens中的處理器晶元(HoloLens Processing Unit, HPU)。HPU的架構和CPU以及GPU都不相同,可謂是開創了AI/AR領域晶元的新範式。
HoloLens可以實現眾多AI/AR應用
微軟公布的HoloLens系統架構如下圖所示。就在絕大多數移動設備的處理器都基於ARM結構的今天,HoloLens的主處理器使用的仍然是Intel的Cherry Trail SoC(包括CPU與集成的GPU),讓人感嘆維持了二十餘年的Wintel聯盟堅不可破。微軟最新公布的HPU也可以在圖上看到,HPU嚴格來說是一款協處理器,其作用是協助主處理器加速運算一些專門的運算(如用於CV的矩陣運算,用於CNN的卷積運算等)。由於CPU必須要考慮通用性而無法對一些AR/VR運算進行優化,因此在應用場景中會大量遇到的專門運算如果都交給CPU做會使系統的整體性能變得很差,於是我們需要設計一款專用的加速器來協助加速這些運算,微軟在這裡的加速器就是HPU。HPU通過PCIe高速介面與主處理器所在的SoC通信,不過PCIe的功耗其實是比較大的,未來可望會用上更先進的互聯技術。
微軟公布的HPU處理能力達到每秒1T(10^12)次像素運算,功耗則小於4W。HPU能夠融合來自5個攝像頭、一個深度感測器以及運動感測器的輸入信息,將信息壓縮並傳送到主處理器。此外HPU還能實現AI手勢識別。據說微軟曾評估了來自於各大廠商的商用晶元,卻沒有找到任何一款產品能滿足系統演算法對性能的要求。這款微軟自己開發的HPU是採用台積電28nm工藝,內含24顆可重配置的Tensilica數字信號處理器(DSP)核心以及高達8MB的Cache。除此以外,還有專用加速器用於給各類專門任務加速。
HoloLens系統架構,HPU與顯示設備緊密耦合併且和主處理器Intel Cherry Trail SoC由高速PCIe介面互聯
HPU有何不同
如果仔細觀察HPU架構,會發現它與目前借著AI/AR及人工智慧風口飛地很高的GPU有點像,但並不相同。說它們「有點像」是因為HPU和GPU都有不少計算核心,這樣可以實現數據的並行處理。HPU和GPU要處理的都是畫面中的一個個像素,而像素之間其實並沒有關聯性,因此可以由並行處理來提高執行效率。與之相對的是CPU,為了照顧通用性CPU無法放置大量的計算核心來實現大規模並行運算,因此完全用CPU來處理AI/AR操作會導致速度很慢。另一方面,HPU與GPU之間也有很大的不同。首先,HPU上的計算核心是可配置DSP而非類似Nvidia GPU裡面的CUDA core。另外,HPU的片上Cache(用於快速存取數據)高達8MB,遠大於GPU的片上Cache容量(Tegra X1上Cache僅有2 MB)。這是為什麼呢?
歸根到底,這些都是因為應用的區別。GPU就像一艘巨輪,設施豪華(運算精度高),耗油巨大(功耗巨大),在處理海量的數據時可以實現非常高的吞吐率,但是實時性並不好:你可以想像巨輪在行駛前需要做許多準備工作,並不是指令一下說走就走(延遲較大)。當然在需要處理的數據量足夠大時,這些準備時間相對於計算時間來說可以忽略不計。HPU就像一艘小船,輕便而省油(功耗較小),而且指令一下可以說走就走(延遲較小),雖然運算的吞吐量不能和GPU相比但是實時性很好。在HoloLens中,實時性非常重要:例如,在你的頭部移動時,你顯示的內容也要相應改變,如果在你頭部移動和現實內容改變之間存在明顯延遲則使用者會感到暈眩(這也是為什麼很多人在玩3d遊戲時會頭暈的原因)。另外,由於HoloLens是移動設備,因此晶元的功耗需要嚴格控制,功耗巨大的GPU架構並不適合。
HPU晶元照片,可見SRAM和DSP佔比例很大
讓我們來看看HPU和GPU的幾點不同是如何對應應用場合的要求的。首先,HPU選擇了可重配置的DSP。使用可重配置的DSP可以根據應用場合切換配置來實現性能-功耗的最優折衷,可以說HPU使用可配置DSP是為了實現在給定功耗下的最佳性能。其次,HPU使用很大的片上Cache。使用片上Cache可以實現低延遲數據存取,從而滿足HoloLens對於實時性的要求。HPU與顯示設備緊密耦和也能幫助降低延遲。與之相反,通常GPU的片上Cache(相對於其晶元面積而言)都較小,而絕大部分數據都存在片外DRAM中並使用高速GDDR介面實現數據傳送。這樣做既增大了數據存取延時又消耗了很大的功耗,並不適合HoloLens這樣的應用。
最後,值得注意的是,HPU還集成了許多專用加速器。這些專用加速器可以幫助HPU快速執行一些演算法(單靠DSP往往無法滿足這些演算法的性能需求)。這使得HPU又有點像Qualcomm的Snapdragon SoC,因為Snapdragon也是在晶元上會集成許多特定演算法(如視頻編解碼,AES加密)的加速器。這些加速器的功耗往往很低,但是使用這些加速器也是要付出代價的:專用加速器在不需要使用的時候會處於閑置狀態無法用做其他用途,這部分用於專用加速器的晶元面積在加速器閑置的時候相當於是浪費了。因此,專用加速器就能量而言效率非常高(即完成運算需要的能量很小),但是就晶元面積而言效率很差(即增加了晶元成本)。因此集成哪些專用加速器需要經過性能-功耗-成本三方面的仔細折衷。HPU集成的這些專用加速器相信會在一些關鍵的應用中起很大的加速作用,從而保證HoloLens能以很高的性能實現演算法同時消耗很低的功耗。根據微軟的數據,使用專用加速器配合DSP可以實現200倍以上的性能改善,效果可謂驚人。
晶元IP隨著AI/AR概念變得更重要
近來AI/AR技術發展非常快。為了實現新的演算法以及滿足新的應用需求,往往要速度更快功耗更低的硬體,這就需要相應的晶元也能快速迭代以滿足演算法和應用的需求。另一方面,許多傳統只在軟體領域活動的巨頭(如Google,Facebook)在這波風潮里也在向著硬體領域蠢蠢欲動,為了使自己的AI/AR硬體性能達標,使用通用的CPU/GPU很困難,必須有定製晶元。以往的先三年技術積累再開始量產晶元的做法根本無法跟上現在的高速節奏,必須有能從頭開始在一年內就交付的快速晶元設計方法。為了滿足這兩個需求,使用晶元IP幾乎是必須的。當使用購買的晶元IP時,設計者只需把精力集中在整體架構設計上,所有沒有時間或者資源做具體設計的晶元模塊都可以向第三方購買。相比從頭設計所有模塊,基於IP的晶元設計方法大大加快了設計速度,而整個晶元中第三方IP所佔的比例也會越來越多。在之前的晶元巨頭靠出售晶元盈利,而晶元中每一個第三方IP都要付出權利金,因此高通這類公司不到萬不得已不會使用第三方IP,而是會傾向於自己做模塊。舉例來說,高通晶元面積中使用第三方IP(不包括ARM的架構授權)的比例通常小於5%。然而,這些從軟體領域過來做硬體的巨頭製造晶元並不指望靠晶元盈利,而是要用在自家硬體里。對於它們來說,硬體是否能盈利甚至都不重要,它們需要的是營造自己的生態圈搶佔市場。因此,對它們來說晶元最關鍵的是性能要強,而且上市速度要快,所以它們完全不介意買許多第三方IP。前面討論的微軟HPU就是一個極好的例子。微軟的晶元設計團隊相對於Intel和高通等半導體業界巨頭來說非常小,但是藉助於從Cadence購買的Tensillica DSP IP,微軟仍然能夠在短時間內快速完成高性能大型晶元的設計,而且第三方IP占的晶元面積高達60%以上。可以說,隨著AI/AR概念越來越普及,相應的晶元IP也會越來越熱門。
除了Tensillica之外,也有其他公司在提供AI/AR方面的晶元IP。老牌DSP和通訊IP供應商最近發布了針對AI和CV的XM6 DSP平台。該DSP平台為深度學習優化,從而可以較高效地完成AI/AR運算。在各大高校和科研機構,AI IP的開發也是一個熱點,例如MIT由Yu-Hsin Chen開發的Eyeriss深度學習加速器IP可以以很低的功耗完成高速卷積運算,自從在2015年的ISSCC(國際固態半導體電路會議)上發表後收到了巨大的關注。我們預期在不久的將來,AI/AR IP領域會越來越紅火。
結語
作為AI/AR處理器晶元的先鋒,HPU的架構與GPU相似(多核並行運算)但又有很大不同(使用定點DSP和大容量片上Cache),另一方面它又從用於手機的多媒體SoC(如Snapdragon)借鑒了集成專用加速器的方法,可謂是博採眾長又不拘泥於一家之說。另外,為了追上演算法和應用的發展,AI/AR晶元可能會大量使用第三方晶元IP。我們預期在未來的AI/AR處理器晶元架構中看到如下的設計範式轉移:GPU追求高吞吐量->AI/AR晶元追求低延時;CPU/GPU追求通用性->AI/AR處理器為特定應用集成大量專用加速器;CPU/GPU模塊多為自己設計->AI/AR處理器大量使用第三方IP。
========
歡迎加入我們的讀者群,與志同道合的人一起交流一起吐槽!點下面的鏈接填寫您的信息我們會邀請您入群!
矽說讀者交流群
我們同時也開通了微信平台(微信號:silicon_talks),將會發布更多半導體行業深度解讀和福利,歡迎搜索公眾號!
推薦閱讀: