邊緣深度學習設備基準評測:英偉達Jetson Nano勝出
邊緣計算對勢頭正盛的物聯(lián)網(wǎng)的發(fā)展至關重要。近日,機器學習和數(shù)據(jù)科學咨詢公司 Tryolabs 發(fā)布了一篇基準評測報告,測試比較了英偉達 Jetson Nano、谷歌 Coral 開發(fā)板(內(nèi)置 Edge TPU)、英特爾神經(jīng)計算棒這三款針對機器學習設計的邊緣計算設備以及與不同的機器學習模型的組合。結(jié)果表明,無論是在推理時間還是準確度方面,英偉達的 Jetson Nano 都是當之無愧的贏家。另外他們也給出了在樹莓派 3B 與英偉達 2080ti GPU 上的結(jié)果以供參考。
為什么需要邊緣計算?
人類產(chǎn)生和收集的數(shù)據(jù)超過了以往任何時候。我們口袋中的設備就能產(chǎn)生巨量數(shù)據(jù),比如照片、GPS 坐標、音頻以及我們有意無意泄漏的各種個人信息。
此外,我們不僅會產(chǎn)生與個人相關的數(shù)據(jù),也會從很多其它地方收集未知的數(shù)據(jù),比如交通和出行控制系統(tǒng)、視頻監(jiān)控單元、衛(wèi)星、智能汽車以及其它不勝枚舉的智能設備。
數(shù)據(jù)增長的趨勢已然形成,并還將繼續(xù)呈指數(shù)級發(fā)展。在數(shù)據(jù)點方面,國際數(shù)據(jù)咨詢公司(IDC)預計世界數(shù)據(jù)總量將從 2019 年的 33 ZB 增長至 2025 的 175 ZB,年增長率 61%。
盡管我們一直在處理數(shù)據(jù),起先是在數(shù)據(jù)中心,然后是在云中,但這些解決方案不適用于數(shù)據(jù)量很大的高要求的任務。網(wǎng)絡的性能和速度不斷推進新的極限,隨之而來的是對新型解決方案的需求?,F(xiàn)在正是邊緣計算和邊緣設備時代的起點。
本報告是對五種新型邊緣設備的基準評測。我們使用了不同的框架和模型來測試哪些組合表現(xiàn)最佳。我們將重點關注邊緣機器學習的性能結(jié)果。
什么是邊緣計算?
邊緣計算包含把數(shù)據(jù)處理任務放至網(wǎng)絡邊緣的設備上,使其盡可能地靠近數(shù)據(jù)源。這種計算方式能以非常高的速度實現(xiàn)實時的數(shù)據(jù)處理,對很多具備機器學習能力的復雜物聯(lián)網(wǎng)方案而言是必備能力。在此基礎上,邊緣計算能夠緩解網(wǎng)絡壓力、降低能耗、提升安全性以及改善數(shù)據(jù)隱私。
使用這種新范式,針對邊緣機器學習而優(yōu)化的專用硬件和軟件庫組合到一起,能造就最前沿的應用和產(chǎn)品,進而實現(xiàn)大規(guī)模部署。
構(gòu)建這類應用面臨的最大難題源自音頻、視頻和圖像處理任務。事實表明,深度學習技術在克服這些困難方面做得非常成功。
實現(xiàn)邊緣深度學習
以自動駕駛汽車為例。自動駕駛汽車需要快速且持續(xù)不斷地分析傳入的數(shù)據(jù),以便能在數(shù)毫秒內(nèi)解析周圍的世界并采取行動。這種時間限制使得我們不能依靠云來處理數(shù)據(jù)流,而是必須在本地完成處理。
但在本地處理有個缺點:硬件沒有云中的超級計算機那么強大,而我們又不能在準確度和速度上妥協(xié)。
解決這個問題的方案要么使用更強更高效的硬件,要么就不要使用那么復雜的 深度神經(jīng)網(wǎng)絡 。為了得到最佳結(jié)果,必須在兩者之間找到平衡。
因此,真正要解答的問題是:
為了最大化深度學習算法的準確度和速度,我們應該組合使用哪款邊緣硬件和哪種類型的網(wǎng)絡?
在我們尋找兩者的最佳組合的旅程中,我們將比較多種當前最佳的邊緣設備與不同的 深度神經(jīng)網(wǎng)絡 模型的組合。
新型邊緣設備基準測試
我們探討的是最具創(chuàng)新性的用例。這里我們將通過一次一張的圖像分類任務來測量實時的推理吞吐量,從而得到近似的每秒處理幀數(shù)。
我們的具體做法是在 ImagenetV2 數(shù)據(jù)集的一個特定子集上評估在所有類別上的 top-1 推理準確度,并將結(jié)果與某些 卷積神經(jīng)網(wǎng)絡 模型進行比較。我們還盡量實驗了不同的框架和優(yōu)化過的版本。
硬件加速器
盡管過去幾年人們在提升現(xiàn)有邊緣硬件方面做了很多工作,但我們選擇拿下面這幾種新型設備做實驗:
-
英偉達 Jetson Nano
-
谷歌 Coral 開發(fā)板
-
英特爾神經(jīng)計算棒
-
樹莓派(參考上限)
-
英偉達 2080ti GPU(參考下限)
實驗將包含樹莓派和英偉達 2080ti,以便將所測試硬件與廣為人知的系統(tǒng)進行對比,其中樹莓派是邊緣設備,英偉達 2080ti GPU 常用在云中。
這個下限很簡單,我們 Tryolabs 會設計和訓練我們自己的深度學習模型。因此,我們有很多算力可用。所以我們當然也就用了。為了確定推理時間的下限,我們在一臺英偉達 2080ti GPU 上運行了測試。但是,由于我們僅將其用作參考,所以我們只使用了未經(jīng)優(yōu)化的基本模型運行測試。
至于上限,我們選擇了衛(wèi)冕冠軍:最流行的單板計算機:樹莓派 3B。
神經(jīng)網(wǎng)絡模型
我們這次基準評測主要包含了兩種網(wǎng)絡:更古老一點的眾所周知的 Resnet-50 和谷歌今年推出的全新的 EfficientNet 。
對于所有基準,我們都使用了公開可用的預訓練模型,并且使用了不同的框架運行它們。對于英偉達 Jetson,我們嘗試了 TensorRT 優(yōu)化;對于樹莓派,我們使用了TensorFlow和 PyTorch 變體;對于 Coral 設備,我們實現(xiàn)了 S、M 和 L 型 EfficientNet 模型的 Edge TPU 引擎版本;至于英特爾神經(jīng)計算棒,我們使用的是用 OpenVINO 工具包編譯的 Resnet-50。
數(shù)據(jù)集
由于所有模型都是在 ImageNet 數(shù)據(jù)集上訓練的,所以我們使用了 ImageNet V2 MatchedFrequency。其中包含 10000 張圖像,分為 1000 類。
我們在每張圖像上運行一次推理,保存推理時間,然后求平均。我們計算了所有測試的 top-1 準確度以及特定模型的 top-5 準確度。
top-1 準確度:這是常規(guī)的準確度,即模型的答案(概率最高的答案)必須等同于確切的期望答案。
top-5 準確度:即模型的概率最高的前五個答案中任意一個與期望答案匹配。
要記住,在比較結(jié)果時,對于更快速的設備-模型組合,我們運行的測試囊括整個數(shù)據(jù)集,而對于速度更慢的組合我們僅使用了部分數(shù)據(jù)集。
結(jié)果與分析
下圖展示了實驗獲得的指標。由于不同模型和設備在推理時間上有較大的差異,所以平均推理時間以對數(shù)形式展示。
推理時間第一名: Jetson Nano
在推理時間方面,組合使用 ResNet-50、TensorRT 和 PyTorch 的 Jetson Nano 獲勝。該組合用 2.67 毫秒處理一張圖像,即每秒處理 375 幀。
這個結(jié)果很讓人驚訝,因為其超過英偉達公布的推理速度十倍之多。結(jié)果差異的原因很可能是英偉達使用的是TensorFlow,而非 PyTorch。
推理時間第二名: Coral 開發(fā)板
排在第二的是與 EfficientNet-S 搭檔的 Coral 開發(fā)板。其 5.42 秒完成一張圖像處理,即每秒處理 185 幀。
這個結(jié)果與谷歌公布的速度差不多,即 5.5 毫秒完成一張,每秒處理 182 幀。
雖然這個組合速度挺高,但準確度卻不好。我們沒法得知谷歌報告準確度所使用的確切的驗證集,但我們猜想他們使用的圖像預處理變換方法與我們用的不一樣。因為量化的 8 位模型對圖像預處理非常敏感,這可能對結(jié)果產(chǎn)生很大影響。
準確度第一名: Jetson Nano
準確度方面,最佳結(jié)果來自 Jetson Nano 與 TF-TRT 和 EfficentNet-B3 的組合,其實現(xiàn)了 85% 的準確度。但是,這些結(jié)果是相對的,因為我們訓練模型時,有的模型使用的數(shù)據(jù)集比其它模型更大一些。
可以看到,當我們向模型輸入更小的數(shù)據(jù)集時,準確率會更高;而當使用完整數(shù)據(jù)集時,準確度更低。這個結(jié)果的原因是我們沒有對更小的數(shù)據(jù)集進行隨機排序,因此其中的圖像沒有實現(xiàn)合理的平衡。
硬件加速器的可用性
關于這些設備的可用性,開發(fā)者注意到一些重要的差異。
當涉及到選擇和部署預編譯的模型和框架時。Jetson 是最靈活的。英特爾神經(jīng)計算棒緊隨其后,因為其提供了很好的庫、很多模型和很好的項目。此外,這款計算棒的第二代相比第一代有重大改進。唯一的缺點是他們那龐大的軟件庫 OpenVINO 僅支持在 Ubuntu 16.04,不支持更新的 Linux操作系統(tǒng)版本。
相比于 Jetson 和英特爾計算棒,Coral 設備存在一些局限性。如果你想在上面運行非官方的模型,你必須將其轉(zhuǎn)換到TensorFlowLite,然后再針對 Edge TPU 進行量化和編譯。取決于模型的不同,這種轉(zhuǎn)換有可能無法實現(xiàn)。盡管如此,我們預計谷歌今后會改進這款設備的未來版本。
總結(jié)
這里的研究基于我們對為深度學習算法設計的當前最佳邊緣計算設備的探索。
我們發(fā)現(xiàn) Jetson Nano 和 Coral 開發(fā)板在推理時間方面表現(xiàn)非常好。
而在準確度方面,Jetson Nano 表現(xiàn)也很出色,盡管這個結(jié)果是相對的。
從總體表現(xiàn)看,Jetson Nano 是當之無愧的贏家。
但是,必須指出,由于 Jetson Nano 和 Coral 的設計不同,我們沒法在兩者之上測試同樣的模型。我們相信每種設備都有最適合自己的場景,這取決于所要完成的具體任務。