測評:谷歌Edge TPU芯片Vs.英偉達Nano的邊緣AI性能

Google Coral Edge TPU與 英偉達 Jetson Nano:快速深入瞭解Edge AI 邊緣人工智能的性能。

最近我一直在閱讀,測試和寫一些關於邊緣計算的內容,主要關注邊緣AI。 最近很酷的新硬件上架,我渴望比較新平臺的性能,甚至測試它們與高性能系統的對比。

 

硬件

我感興趣的主要設備是新的英偉達 Jetson Nano(128CUDA)和Google Coral Edge TPU(USB加速器),我還將測試i7-7700K + GTX1080(2560CUDA),Raspberry Pi 3B +,以及我自己的老主力,一個2014年的macbook pro,包含一個i7-4870HQ(沒有支持CUDA的內核)。

 

軟件

我將使用MobileNetV2作爲分類器,在imagenet數據集上進行預訓練。我直接從Keras使用這個模型,我使用TensorFlow後端。使用GPU的浮點權重,以及CPU和Coral Edge TPU的8位量化tflite版本。

首先,加載喜鵲的模型和圖像。然後我執行1個預測作爲預熱(因爲我注意到第一個預測總是比下一個預測慢很多)。我讓它睡了1秒,所以所有線程肯定都完成了。然後腳本爲它運行,並對同一圖像進行250次分類。通過對所有分類使用相同的圖像,我們確保在整個測試過程中它將保持接近數據總線。畢竟,我們對推理速度感興趣,而不是更快地加載隨機數據的能力。

使用CPU的量化tflite模型得分是不同的,但它似乎總是返回與其他人相同的預測,所以我想這在模型中是奇怪的,我很確定它不會影響性能。

 

現在,因爲不同平臺的結果是如此不同,所以很難想象,所以這裏有一些圖表,選擇你喜歡的...

分析

第一張圖中有3個條形圖跳入視圖。 (是的,第一張圖,線性刻度fps,是我最喜歡的,因爲它顯示了高性能結果的差異)在這3個柱中,其中2個是由Google Coral Edge TPU USB加速器實現的,第3個是由英特爾i7-7700K輔助的全面NVIDIA GTX1080。

 

 

 

看得更近,你會看到GTX1080實際上被Coral擊敗了。讓它下沉幾秒鐘,然後準備被吹走,因爲GTX1080最大功率爲180W,與Coral2.5W相比絕對是巨大的。

打擊太大??好的,讓我們繼續:

接下來我們看到的是,英偉達 Jetson Nano的得分並不高。雖然它有一個支持CUDA的GPU,但實際上並不比我原來的i7-4870HQ快得多。但這是一個問題,“不是更快”,它仍然比50W,四核,超線程CPU更快。幾年前,真的,但仍然。 Jetson Nano從來沒有消耗過超過12.5W的短期平均值,因爲這就是我的動力。功耗降低75%,性能提升10%。

很明顯,它本身的Raspberry Pi並不是什麼令人印象深刻的東西,不是浮點模型,對量化模型來說仍然沒有任何用處。但是,嘿,無論如何我準備好了文件,它能夠運行測試,所以更多的總是更好嗎?並且仍然有點有趣,因爲它顯示了Pi中的ARM Cortex A53與Jetson Nano中的A57之間的差異。

英偉達 Jetson Nano

因此,Jetson Nano並沒有使用MobileNetV2分類器提供令人印象深刻的FPS費率,但正如我已經說過的那樣,這並不意味着它不是一個很有用的工程。 它很便宜,它不需要大量的能量來運行,也許最重要的屬性是它運行TensorFlow-gpu(或任何其他ML平臺),就像你以前一直使用的任何其他機器一樣。

 

只要您的腳本沒有深入到CPU體系結構中,您就可以運行與i7 + CUDA GPU完全相同的腳本,也可以進行培訓! 我仍然覺得NVIDIA應該使用TensorFlow預加載L4T,但我會盡量不再憤怒。 畢竟,他們對如何安裝它有一個很好的解釋(不要被愚弄,不支持TensorFlow 1.12,只有1.13.1)。

Google Coral Edge TPU

好吧,我非常喜歡設計精良,效率高的電子設備,所以我可能不是很客觀。 但是這件事......這是絕對美麗的事情!

 

Edge TPU就是我們所說的“ASIC”(專用集成電路),這意味着它具有FET等小型電子部件和直接在硅層上燒製的容量的組合,這樣它就可以完全實現 它需要做的是加快推理。

推斷,是的,Edge TPU無法執行向後傳播。

 

這背後的邏輯聽起來比現在更復雜。 (實際上創建硬件並使其工作,是完全不同的事情,而且非常非常複雜。但邏輯功能要簡單得多)。 如果你真的對它的工作方式感興趣,可以查看“數字電路”和“FPGA”,你可能會找到足夠的信息讓你在接下來的幾個月裏忙碌起來。 有時開始時比較複雜,但真的很有趣!

但這正是爲什麼Coral在比較性能/瓦特數時處於如此不同的原因,它是一堆電子設備,旨在完成所需的按位操作,基本上沒有任何開銷。

爲什麼GPU沒有8位模型?

GPU本質上被設計爲細粒度並行浮點計算器。因此,使用浮動正是它所創造的,以及它的優點。 Edge TPU設計用於執行8位操作,並且CPU具有比完全位寬浮點數更快的8位內容更快的方法,因爲它們在很多情況下必須處理這個問題。

爲何選擇MobileNetV2?

我可以給你很多理由,爲什麼MobileNetV2是一個很好的模型,但主要原因是,它是谷歌爲Edge TPU提供的預編譯模型之一。

Edge TPU還有哪些其他產品?

它曾經是不同版本的MobileNet和Inception,但截至上週末,谷歌推出了一個更新,允許我們編譯自定義TensorFlow Lite模型。但限制是,並且可能永遠是TensorFlow Lite模型。這與Jetson Nano不同,那個東西可以運行任何你想象的東西。

Raspberry Pi + Coral與其他人相比

爲什麼連接到Raspberry Pi時Coral看起來要慢得多?答案很簡單直接:Raspberry Pi只有USB 2.0端口,其餘的都有USB 3.0端口。而且由於我們可以看到i7-7700K在Coral和Jetson Nano上的速度更快,但仍然沒有得到Coral開發板在NVIDIA測試時的分數,我們可以得出結論,瓶頸是數據速率,不是Edge TPU。

我覺得這對我來說已經足夠長了,也許對你來說也是如此。 我對Google Coral Edge TPU的強大功能感到非常震驚。 但對我來說,最有趣的設置是NVIDIA Jetson Nano與Coral USB加速器的結合。 我肯定會使用這種設置,感覺就像是一個夢想。

說到Google Coral的開發板Dev Board,以及Edge TPU,那就順便提一下基於Coral Dev Board開發的Model Play。它由國內團隊研發,是面向全球 AI 開發者的 AI 模型共享市場。Model Play 不僅爲全球開發者提供了 AI 模型展示交流的平臺,更能搭配含 Edge TPU 的 Coral Dev Board 進行使用,加速 ML 推理,通過手機實時預覽模型運行效果,助力 AI 由原型向產品拓展。

 

 

開發者既能發佈自己訓練的 AI 模型,也可以訂閱並下載自己感興趣的模型,用於再訓練和拓展自己的 AI 創意,實現想法-原型-產品的過程。Model Play 中還預置了各種常用 AI 模型,例如 MobileNetV1、InceptionV2 等,並支持可再訓練模型的提交發布,方便用戶在自己業務數據上優化微調。

就如谷歌在今年的I/O大會上,號召開發者們,共同爲開發社區做出貢獻。與此同時,Model Play團隊也正在向全球開發者發出了AI模型召集令,徵集基於 TensorFlow、可在 Google Coral Dev Board 上運行的深度學習模型,以鼓勵更多開發者們參與活動,與全球千萬 AI 開發者,分享創意和想法。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章