天天看點

人工智能的高效邊緣算法發展與應用

人工智能正在成為數十億邊緣物聯網(IOT)裝置中的常客,然而,資料移動的瓶頸限制了這些系統的性能和自主性。記憶體處理(PIM)則是一種緩解資料移動瓶頸的方法,能在解決問題的同時,滿足邊緣成像應用對性能、能效和精度的嚴格要求。

增長的人工智能邊緣處理需求

網際網路的全球化引發了一場計算機架構的革命。具體來說,現在的智能手機、平闆電腦及其他智能裝置都接入了物聯網,這些裝置通過網際網路與人工智能互相連接配接,進而形成了廣域網。

在個人計算、教育、工業、軍事、醫療保健、數字農業等各個領域都能見到廣域網與物聯網的應用,如圖1所示,網際網路将世界上這數十億的裝置集合在了一起。

人工智能的高效邊緣算法發展與應用

圖1

智能裝置的這種內建帶來了前所未有的挑戰,為了處理繁複且每天都在不斷增加的資料,人們需要成本更低廉的計算和通信方法與裝置。

此外,資料流通常是雙向的,不僅從實體世界到網絡世界,而且從網絡世界到可能的實體世界。實作這一願景需要物聯網裝置與人工智能相配合。

目前最有前途的方法是通過使用機器學習(ML)算法,通過吸收大量資料,賦予系統從經驗中自主學習的能力,特别關注深度學習和圖像推理。

2020年一年内,人們建立、複制和消費的數字資料總量已超過數十zb,國際資料公司估計,這一數字将在未來幾年增長到數百zb。2019的新冠疫情大流行,普及了居家辦公,這使得視訊會議和流媒體資料的突然增加,進而推動了網絡資料的增長。

在完全依賴于智能手機和嵌入式系統的任務執行中,這些資料的增加給計算和存儲系統帶來了越來越大的壓力。

邊緣計算作為可持續人工智能擴充的推動者的想法受到重視,因為就現代數字系統生成理論來說,它相當大一部分資料來自位于邊緣的傳感器,在這種範式下,算法在資料生成的地方就會開始,如圖2所示。

人工智能的高效邊緣算法發展與應用

圖2

與傳統方法相反,随着雲邊緣層次的出現,AI移動到邊緣層,如圖所示。這種新模式為邊緣處理節點上更密集的計算帶來了壓力,但它也減少了與雲通信所花費的時間和精力,并引入了資料隐私和延遲優勢。

随着資料生成的增長和人工智能應用需求的增長,資料的處理要求逐漸向五個主題靠攏,而人工智能的邊緣算法流行恰好迎合了這五個主題。

第一個發展主題是低延遲。許多應用程式具有互動特性,是以不能承受長時間的延遲,特别是對于記憶體、存儲和網絡請求。

第二個主題是可靠性。通信網絡不是在任何地方、任何時候都可靠的。為了確定最大的正常運作時間,基于人工智能的決策必須不依賴于通暢的通信網絡。

第三個主題是隐私和安全。一些應用程式要求将敏感資料儲存在受控的本地環境中,避免其與雲之間的循環,例如醫療、金融或自動駕駛等。

第四個主題是低帶寬。在收集地附近處理的資料不需要發送到雲,這減少了網絡和邊緣計算系統的總體帶寬需求。

第五個是資料來源正規性。資料的來源正規性可能會影響資料分析效率,阻礙其在遠離産生地的地方進行處理。資料中心存儲則可能需要遵守區域資料保護立法,例如歐洲的通用資料保護條例(GDPR)和加拿大的個人資訊保護法(PIPA)。

為了實作這些目标,計算機架構師和軟體開發人員必須合理利用雲端與邊緣系統,實作雲端與邊緣系統結合的整體願景,通過在生成和存儲資料的地方處理資料,将元件之間不必要的資料移動降到最低,因為這是資料遷移與記憶體處理主要的性能和能源瓶頸。

人工智能邊緣算法與資料轉移瓶頸

目前,神經網絡被廣泛應用于許多領域,并正在成為其他新興應用的組成部分,如自動駕駛汽車、永遠線上的生物信号監測、增強和虛拟現實、關鍵物聯網和語音通信,所有這些都需要人工智能算法在大量資料上運作,如圖3所示。

人工智能的高效邊緣算法發展與應用

圖3

與人類相比,支援這些新興應用程式的系統需要能夠更快、更好地做出決策,不僅如此,它們還需要考慮不斷增加的訓練和推理資料量,以此來支援對決策的持續微調。cnn就是一種基于圖像的決策任務的标準系統。

這些模型大量使用卷積和乘法累加(MAC)操作,卷積算法成本很大,能占算法程式總成本的90%以上,出于這個原因,最先進的神經網絡加速器通常都專注于MAC操作,優化它們的性能和能源效率。

典型的cnn由數億個參數組成,需要每秒執行數十億次操作才能實作實時性能。

随着精度的提高,cnn包含更多的參數和層,變得更寬更深,它也能提供量化的緊湊資料,簡化表複雜的網絡體系結構,降低表示成本,并允許高度的資料傳輸并行性和資料重用,這在受限制的處理環境中特别有用。

資料量化會減小模型權值的位寬,進而顯著降低神經網絡的計算量和存儲需求。然而,在保持準确性的同時,将這些值量化到小于8位,則需要人工努力、超參數調優和密集的再教育訓練,邊緣算法能很好地解決這類問題。

雖然機器訓練需要高動态範圍,但對于邊緣算法來說,在大多數情況下,2位到4位的精度就可以達到日常所需。如果精度水準更進一步,那麼二進制神經網絡甚至可以通過二值化其輸入、權重來近似cnn。

在許多實際設定中,特别是在邊緣計算領域中,二進制神經網絡的性能和能效優勢超過了精度損失。二進制神經網絡的另一個好處是,通過結合更有效的逐位XNOR和位計數操作,能夠近似cnn所需的卷積操作。

圖4展示了從資料中心伺服器到物聯網節點等一系列裝置上,現有的五種廣泛使用的CNN模型,以及他們的記憶體和處理需求。該表顯示了所有網絡的參數數量和MAC操作。W/A表示每個量化級别的權值和激活值的位寬度。所有的網絡都有224 × 224的輸入分辨率。

人工智能的高效邊緣算法發展與應用

圖4

這些裝置是都利用了大量神經網絡算法,以此來拟合邊緣節點,即根據運作模型所需的記憶體。它們的大小含義為權重機激活位寬度32位,2位,1位的函數,以及每個網絡使用的MAC操作的數量。

專業化是高性能人工智能的推動者。現代深度學習算法具有大量的計算、記憶體和能量需求,這使得它們在邊緣裝置上的實作具有挑戰性。機器學習算法的兩個獨特特征或許能夠解決這一挑戰。

首先,每一類深度學習算法都依賴于一組有限的專門操作,其次,在許多情況下,即使在使用低位寬操作時,這些算法也能提供很好的精度。

近年來,針對神經網絡模型的進階描述與其底層硬體映射,一些架構會通過使用專門的指令,幫助彌合二者間的語義差距。這種專門指令以批量并行方式執行操作,最小化記憶體通路和最大化計算資源使用率,進而實作算法目标。

人工智能的高效邊緣算法發展與應用

建構以資料為中心的高效人工智能邊緣算法

縱觀現有的人工智能相關研究,高效的邊緣人工智能兼具高準确性、大吞吐量與低延遲這三種顯著特點。

在準确性方面,圖像分類、目标檢測、句子生成、翻譯等人工智能任務的成功率很高。

而吞吐量衡量的是計算機對輸入資料的處理速度。對于需要提供實時視訊功能的應用程式來說,它們所搭載的人工智能應用程式必須維持每秒數千FPS幀數的處理速率。

例如,自動駕駛汽車處理速度為2,300FPS,超音波醫療裝置資料處理速度為數百至數千FPS。

算法的延遲與輸入元件有關,算法處理單個輸入元件的關鍵路徑決定了延遲度。而5G标準中,定位和跟蹤系統的最大延遲标準為1毫秒,自動駕駛汽車必須提供相同數量級的延遲。邊緣人工智能算法能夠滿足這樣高速标準。

除此之外,算法系統中動力與能量也很重要。大多數支援邊緣計算的裝置都是電池供電的,是以,如何最大限度地延長電池壽命,對設計人員來說是一個關鍵的目标。作為參考,自動駕駛汽車的計算系統需要高達2.5kW的電源。

高效邊緣人工智能需要的資料精度也有所降低。人工智能資料不再總是需要用64位或32位精度。對很多人來說,8位,甚至更少的整數精度都足夠日常使用了。

進一步來說,高效的邊緣人工智能改變了傳統計算模式。20世紀末和21世紀初,以處理器為中心的計算模型得到了廣泛的應用。在傳統計算模型中,程式和資料存儲在記憶體中,而資料處理則在專門的alu(算術邏輯單元)中進行。

随着摩爾定律的引入,緩存、分支預測器、亂序執行、多線程以及其他一些硬體和軟體優化,在過去幾十年中,邊緣算法實作了一系列穩定且基本不受影響的性能改進。

相比之下,存儲系統的改進速度要慢得多。處理器和記憶體系統之間出現了裂痕,這種性能差距導緻了一個難以忽視的資料移動瓶頸,也就是人們常說的記憶體牆。

在現代計算系統中,記憶體決定了計算系統的主要性能,也影響着資料傳輸瓶頸。在延遲和性能方面,資料移動比計算本身要昂貴得多。随着連接配接到網際網路的智能裝置的數量繼續增長,資料移動瓶頸将繼續存在,現在已經達到數十億的規模。

為了合了解決資料移動瓶頸問題,許多人都提出了自己的見解。

到目前為止,最受歡迎與承認的解決方式是,在資料被存儲的地方處理資料,即資料記憶體的邊緣算法。随着對邊緣推理需求的增長,通路資料的效率變得越來越重要。這種方案的提出,有可能能夠改變現有的資料分析模式,克服跨時間和實體局部性的難題。

人工智能的高效邊緣算法發展與應用

資料記憶體邊緣算法引入了神經網絡拓撲,并對其采用量化的形式進行了優化。同時還考慮了專用硬體,引入專用的矢量化指令,以用于解決這些特殊工作負載的需求與PiM體系結構。

在邊緣執行時,PIM可以為人工智能應用程式提供更高的吞吐量,而不會影響裝置的自主性。PIM解決方案與傳統記憶體優化優化的主要差別在于,記憶體邊緣算法會更接近資料。

處理-使用-記憶體(PUM)模式利用存儲媒體的實體特性來執行計算,例如,ReRAM(電阻式随機存取存儲器)或DRAM(動态随機存取存儲器)單元。

相反,在處理-近記憶體(PnM)範式中,資料的存儲地就可以開始算法程式,但在不同的媒體中,邊緣算法的具體應用層有會有所差別,例如,在3d堆疊存儲器中,邊緣算法會在邏輯層中進行。

3d堆疊存儲器是一種新興的存儲器架構,它可以在邏輯層的頂部垂直堆疊存儲器層,而邏輯層可以被設計成支援多種操作的硬體,這樣就可以實作記憶體單元内的計算。

同是邊緣算法的DRAM技術則特别适合位操作,這項技術優化了内部位線,相鄰的存儲器可以以此實作高效互相通信。Ambit21就是在DRAM的模拟操作上,實作了批量多位數、AND、OR與NOT功能,這些操作的組合有助于應用程式的整體開發。

Ambit在執行批量位操作時,可以将性能提高30到45倍,将能耗降低25到60倍,進而使資料庫查詢的總體速度提高4到12倍。基于DRAM的PUM架構PLUTO5則利用了批量查找機制,擴充了PUM的靈活性和性能。

查找功能可以完全在DRAM子陣列内進行,是以不需要将資料移出晶片,進而實作任意複雜的函數查找與激活)同時最大限度地減少資料的總體移動。

與CPU執行相比,PLUTO的性能提高了33倍,能耗降低了110倍。

人工智能的邊緣算法通過更直接的計算,可以大大減少資料的整體移動,進而提高延遲、吞吐量和能源效率,這為未來的超級計算機發展也提供了幫助。

繼續閱讀