從早期的桌面PC游戲到街機游戲機,到后來的家庭游戲機以及移動設備端等,PowerVR一直都與圖形技術密切相關,今年是PowerVR 25周年,近期我們發布了一系列的文章來慶祝。除此之外PowerVR還擁有涉及計算機視覺和AI應用方面的一系列IP產品。
上個星期PowerVR在其發展史上如虎添翼新增一項全新的IP產品——硬件神經網絡加速器:“PowerVR 2NX”。我們將其命名為神經網絡加速器(NNA),它能夠提供全面的硬件解決方案,支持多種神經網絡模型和架構以及機器學習框架,比如谷歌公司推出的TensorFlow和Caffe,具有行業領先的性能和低功耗特性。
毫無疑問神經網絡變得越來越流行,在各種各樣的產品中都可以找到它的相關應用。它們會根據你的興趣自動調整社交多媒體內容、讓你的照片顯示得更加好看、在AR/VR頭戴設備中增強檢測和眼球跟蹤功能。在智能監控領域它們可以應用于安全保障、提供增強的面部識別功能、群體行為分析等。在網上支付系統中他們對于詐騙行為的檢測也比人類更加的強大。“神經網絡”也將應用到無人駕駛汽車系統中,幫助避免碰撞事故的發生,無人機跟蹤有一天會幫助我們運送包裹,最近比較受大家關注的就是通過面部拍照來解鎖手機了。
硬件是前進的方向
為了能夠實現這么多功能,神經網絡首先需要經過訓練,這通常需要強大的服務器硬件提供支持。物體識別的實現其實就是不斷的進行推斷和對比,而且需要實時的方式來完成。
當然神經網絡越大,需要的計算量就越大,這就需要更高水平的性能支持,尤其在移動應用方面。盡管神經網絡推斷引擎可以在CPU上運行,但是它們通常采用GPU利用其強大的并行計算特性,這會幫助更快處理神經網絡計算。然而為了在嚴格的功耗要求下滿足下一代性能要求,專用的神經網絡加速硬件則是必需的。
這對硬件來說是一個自然演進過程。原本早期的桌面處理器甚至沒有集成數學運算協處理器模塊,無法在游戲類應用軟件中提供浮點數計算加速功能,然后自20世紀80年代這種功能已經成為CPU設計的標準。在20世紀90年代以后CPU集成了內存緩存以進一步提升性能,不久GPU也被集成于其中。隨后在2010年代出現了專用于編解碼的ISP(圖像信號處理)和硬件設備,以實現流暢的視頻回放。現在輪到神經網絡擁有專用的芯片了。
保留在設備端
在很多案例中,神經網絡的推斷處理過程是放在云服務器強大的硬件上來執行的,但是由于多種原因這部分工作現在需要轉移到本地硬件設備上來,有些應用必須要快速的響應,由于延遲問題通過互聯網運行神經網絡是不切實際的,轉移到本地設備上來能夠消除可能發生的安全問題。況且蜂窩網絡(3G、4G、5G)也不是在任何情況下都可行,本地專用的硬件設備則更加可靠,除了能夠提供更強大的性能,還能大幅減少系統功耗。
無人機就是一個案例,它將采用神經網絡硬件加速實現更快更高效的碰撞檢測
舉個例子,無人機的飛行速度一般會超過150mph或者67米/秒,沒有硬件的情況下,它需要檢測前面10-15米范圍內的障礙物從而避免碰撞,由于延遲、帶寬和網絡的可靠性等因素,采用云服務器的方式幾乎是不現實的。采用本地真正的硬件解決方案比如PowerVR 2NX,無人機可以運行多個神經網絡,能夠在1米范圍內實時識別和跟蹤前方的障礙物。如果我們想借助無人機幫我們傳遞包裹或者以獨特的視角觀看各種體育運動,神經網絡硬件輔助則必不可少。
如今我們的智能手機保存了太多我們的照片,一般會有1000張或者更多,手機系統可以采用不同的方式幫助我們自動進行排序,比如識別出包含某個人的所有照片,這個過程需要大量的分析計算,一款高級旗艦級的GPU運行神經網絡處理過程可能需要60秒,但是采用PowerVR 2NX則僅需要2秒鐘。
PowerVR 2NX能夠為移動設備提供高速的圖片處理功能,同時保持低功耗
同時我們還要考慮電池使用時長,GPU處理大約2400張照片會使用1%的電量。相反地,消耗同樣的電量PowerVR 2NX能夠處理大約428000張圖片,這無疑展示出其行業領先的功能特性。
低功耗特性支持更多新的應用場景,比如智能監控。2NX足夠強大能支持采用本地硬件平臺進行分析處理,比如部署在城市中心、體育場內的攝像頭或者智能家居安全系統等都有其相關應用。因為2NX支持不同的網絡類型,可以做出更智能的決策,減低了錯誤發生的幾率。由于其低功耗特性,這些攝像頭都可以采用電池驅動,方便了部署和管理。
靈活的位寬支持
為了支持不同的應用案例,2NX NNA進行了全面的設計支持高效的神經網絡推算過程,是什么讓2NX硬件加速器區別與其他的神經網絡解決方案(DSP/GPU)?
首先2NX超低功耗利用了我們在移動平臺設計方面的豐富經驗,第二個是靈活的位寬支持,更重要的是每個推理層都具備此特性。神經網絡訓練通常采用32位全精度,但是這樣無疑會需要更高的帶寬,更多的功耗,這對于移動設備的功耗要求明顯是不允許的,盡管硬件設備有足夠的性能支持神經網絡的運行,但是這對電池的使用壽命會有很大的沖擊。
為了解決這個問題,2NX為權重和數據提供可變的位寬支持,這樣就能夠在保持較高推理精度的同時大大降低對帶寬的要求,功耗要求也隨之減少。我們的硬件是目前市場上唯一能支持從16位到4位帶寬的解決方案。
與其他解決方案不同,我們降低位寬要求并不是采用生硬的方法,在每個分層我們都可以靈活配置權重和數據的位寬,因此開發者可以全面優化他們訓練網絡的性能。而且我們不光要保持精度還要保持精確性,結果就是在更低的帶寬和功耗的情況下提供更高的性能。
實際上2NX需要的帶寬僅是其他競爭解決方案的25%左右,在某些應用場景從8位位寬降低到4位位寬精度,2NX消耗的功耗則降為69%,但是精確度的降低卻不足1%。
領先的性能
從原始性能的角度來看,PowerVR 2NX也是行業領先的。最近某個智能手機制造商宣布其硬件平臺支持人臉檢測并可用于解鎖手機,相當于每秒6000億次的推理操作。PowerVR 2NX單核IP運行在保守頻率800MHz,能提供2048MACs/cycle(行業標準性能指標)操作,意味著每秒3.2萬億推理操作——相當于最有競爭力的對手的兩倍。2NX是一個高度可擴展的解決方案,如果需要更高的性能,則可以使用更多的核心。
2NX非常強大,盡管面積非常小但是能夠提供行業最高的推算/mm2指標。實際上在SoC中,我們推出的PowerVR GPU結合NNA的解決方案,相比競爭對手純GPU解決方案占用更少的硅片面積,當然2NX可以單獨使用,不是必須要結合GPU,CPU也僅僅是用于驅動。
我們推出的2NX IP同樣具備存儲管理單元(MMU),可以應用于安卓(Android)和其他復雜的操作系統(OS)中,而且不需要集成額外的芯片面積或者其他復雜的軟件。
廣泛的支持:不同的網絡類型、模型、框架和API等
神經網絡涉及各種各樣的形式和特性,選用哪種很大程度上依賴于我們要實現的系統功能。2NX NNA支持多種形式的神經網絡,包括卷積神經網絡(CNN)、多層感知器(MLP)、遞歸神經網絡(RNN)和SSD物體檢測框架。目前2NX支持主要的神經網路框架,比如Caffe和TensorFlow,對于其他框架的支持也在持續開發中。
使用我們提供的優化轉換和調優工具,結合Imagination推出的深度神經網絡(DNN)API,開發者能夠快速部署他們所選擇的網絡框架并且運行PowerVR NNA加速器。PowerVR長久以來一直在支持安卓系統,當谷歌公司發布安卓系統神經網絡API后,2NX也將緊跟其后全面支持安卓系統。
當然開發者也可以采用現在的工作流程開發移動App原型,然后使用Imagination DNN API與2NX進行對接,實現明顯的應用系統加速和功耗降低。
總結
隨著我們的世界與計算機的關系越來越密切,機器也會更加的理解這個世界,PowerVR 2NX NNA代表的是神經網絡加速和性能的一個轉折點。在行業內具有最高的“推理/milliwatt”和“推理/mm2”性能指標,它是唯一能夠滿足在移動硬件平臺部署神經網絡功耗和性能約束條件的IP解決方案。除此之外PowerVR NNA還支持主要的神經網絡和框架,結合Imagination推出的DNN API使得PowerVR 2NX成為驅動未來神經網絡應用最理想的解決方案。
評論