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 領域晶片的新正規化.接下來將詳細分析 HPU 晶片架構並展望未來 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 晶片結構,可見 DSP 計算核心以及大容量片上 Cache(SRAM)
讓我們來看看 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。