HoloLens HPU
按:本文作者矽說(微信號:silicon_talks)。
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 的卷積運算等)。
微軟最新公佈的 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 使用很大的片上 Cache。使用片上 Cache 可以實現低延遲數據存取,從而滿足HoloLens 對於即時性的要求。
HPU 與顯示設備緊密耦和,也能幫助降低延遲。與之相反,通常 GPU 的片上 Cache 都較小,而絕大部分數據,都存在片外 DRAM 中,並使用高速 GDDR 接口實現數據傳送。這樣做既增大了數據存取延時,又消耗了很大的功耗,並不適合 HoloLens 這樣的應用。
最後,值得注意的是,HPU 還整合了許多專用加速器。這些專用加速器可以幫助 HPU 快速執行一些算法(單靠 DSP 往往無法滿足這些算法的性能需求)。這使得 HPU 又有點像 Qualcomm 的 Snapdragon SoC,因為 Snapdragon 也是在晶片上,會整合許多特定算法(如視頻編解碼,AES 加密)的加速器。
這些加速器的功耗往往很低,但是使用這些加速器,也是要付出代價的:專用加速器在不需要使用的時候,會處於閒置狀態無法用做其他用途,這部分用於專用加速器的晶片面積,在加速器閒置的時候,相當於是浪費了。
因此,專用加速器就能量而言,效率非常高(即完成運算需要的能量很小),但是就晶片面積而言,效率很差(即增加了晶片成本)。
因此整合哪些專用加速器,需要經過性能-功耗-成本三方面的仔細折衷。HPU 整合的這些專用加速器,相信會在一些關鍵的應用中,起很大的加速作用,從而保證 HoloLens 能以很高的性能,實現算法同時消耗很低的功耗。
這些加速器的功耗往往很低,但是使用這些加速器,也是要付出代價的:專用加速器在不需要使用的時候,會處於閒置狀態無法用做其他用途,這部分用於專用加速器的晶片面積,在加速器閒置的時候,相當於是浪費了。
因此,專用加速器就能量而言,效率非常高(即完成運算需要的能量很小),但是就晶片面積而言,效率很差(即增加了晶片成本)。
因此整合哪些專用加速器,需要經過性能-功耗-成本三方面的仔細折衷。HPU 整合的這些專用加速器,相信會在一些關鍵的應用中,起很大的加速作用,從而保證 HoloLens 能以很高的性能,實現算法同時消耗很低的功耗。
根據微軟的數據,使用專用加速器配合 DSP 可以實現 200 倍以上的性能改善,效果可謂驚人。
晶片 IP 隨著 AI / AR 概念變得更重要
近來 AI / AR 技術發展非常快。為了實現新的算法,以及滿足新的應用需求,往往要速度更快功耗更低的硬體,這就需要相應的晶片,也能快速更替,以滿足算法和應用的需求。
另一方面,許多傳統只在軟體領域活動的巨頭(如 Google,Facebook)在這波風潮裡,也在向著硬體領域蠢蠢欲動,為了使自己的 AI / AR 硬體性能達標,使用通用的 CPU / GPU 很困難,必須有客製化晶片。
以往的先三年技術累積,再開始量產晶片的做,法根本無法跟上現在的高速節奏,必須有能從頭開始,在一年內就交付的快速晶片設計方法。
為了滿足這兩個需求,使用晶片 IP 幾乎是必須的。當使用購買的晶片 IP 時,設計者只需把精力,集中在整體架構設計上,所有沒有時間,或者沒太多資源,做具體設計的晶片模組,都可以向第三方購買。
為了滿足這兩個需求,使用晶片 IP 幾乎是必須的。當使用購買的晶片 IP 時,設計者只需把精力,集中在整體架構設計上,所有沒有時間,或者沒太多資源,做具體設計的晶片模組,都可以向第三方購買。
相比從頭設計所有模組,基於 IP 的晶片設計方法,大大加快了設計速度,而整個晶片中第三方 IP 所佔的比例,也會越來越多。
在之前的晶片巨頭,靠出售晶片盈利,而晶片中每一個第三方 IP 都要付出權利金,因此高通這類公司不到萬不得已,不會使用第三方 IP,而是會傾向於自己做模組。
舉例來說,高通晶片面積中,使用第三方 IP(不包括ARM的架構授權)的比例通常小於 5%。
舉例來說,高通晶片面積中,使用第三方 IP(不包括ARM的架構授權)的比例通常小於 5%。
然而,這些從軟體領域,過來做硬體的巨頭製造晶片,並不指望靠晶片盈利,而是要用在自家硬體裡。對於它們來說,硬體是否能盈利,甚至都不重要,它們需要的是營造自己的生態圈搶佔市場。
因此,對它們來說晶片最關鍵的是性能要強,而且上市速度要快,所以它們完全不介意買許多第三方 IP。
因此,對它們來說晶片最關鍵的是性能要強,而且上市速度要快,所以它們完全不介意買許多第三方 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。
沒有留言:
張貼留言