2019年3月31日 星期日

Nvidia Jetson Nano真的比Google Edge TPU厲害嗎?

最近Nvidia推出Jetson Nano AI開發板,瞬間刷爆各大人工智慧社群版面,害得我本來整理好了十幾個AI開發板的文章頓時失去貼出的動力,因為Jetson Nano的低價(US$99)及高性能(472GFlops)輾爆所有開發板,包括Coral Google Edge TPU。

Fig. 1 三大AI開發板 (點擊圖片放大)

初步比較目前較夯的三大AI開發板Nvidia Jetson Nano, Coral Google Edge TPU, Intel (Movidius) Neural Compute Stick 2,如Table 1所示。嚴格說起來Intel的神經運算棒並無法單獨存在需要另外搭配有CPU的主機板,而樹莓派的算力太弱不足以稱為AI開發板,所以通常是把這兩者加在一起當成一組AI開發板,像Google AIY Vision Kit就是同類型的整合產品。

Table 1 AI開發板比較表 (點擊圖片放大)

目前這些AI開發板並沒有通用的比較基準,傳統上可用每秒可執行多少浮點數運算(Float pre Second, FLOPS)或每秒執行多少運算(Opertions, OPS)來比較。一般GPU或NPU多半被設計來做矩陣運算用的,所以A*B+C本來須要兩道指令(乘法和加法)才能完成,通常會變成一道指令就可執行,所以若以OPS表示時,就會變成兩倍,這樣就會造成執行速度較快的錯覺。

在深度學習的計算上,除了大量的矩陣演算外,尚有許多數百萬甚至數億個參數須要來回存取,受限於記憶體速度及頻寬問題,常會造成不同模型計算上會有不同的性能表現。打個比方來說,若車子一直在高速公路上行駛,則跑車的表現一定輾爆一般轎車。但若車子不斷地上下交流道,那跑車就不一定勝過一般轎車太多了。另外相同的模型在不同框架(TensorFlow, Caffe, PyTorch…)或者經過特別的優化(壓縮、剪枝),甚至依據硬體特性而修正模型,那也有可能產生計算效能(速度)的差異。

由於Google Coral Edge TPU上市沒多久,官方及民間高手還沒有大量提出測試數據,所以TPU到底有多厲害僅能從Alasdair Allan發表的文章[1]一窺究竟。這次NVIDIA為了讓大家知道Jetson Nano有多優秀,特別製表比較三大AI開發板的性能(如Table 2所示),不過根據這些公開的數據[2]比較,反而透露了一個重要訊息,就是不要太相信廠商提出的算力大小,參考一下就好。為何如此說呢?以Nvidia Jetson Nano和Pi3+NSC2二組開發板來比較,理論上硬體算力應該是固定倍率的差異,但在不同模型(算法下)竟然可以從差2倍到25倍,更令人費解的是,在部份模型中Google Coral Edge TPU竟然勝過Nvidia Jetson Nano,這中間到底發生什麼事了?個人猜想應該是特定模型在特定框架下剛好滿足TPU的最佳計算方式,所以得到較好的表現,還請各路高手提出高見解惑。

Table 2 AI開發板算法性能比較表[2] (點擊圖片放大)

不過不管誰家產品較為優秀,對於Maker而言,便宜又算力強大的AI開發板時代來臨了,以後就再也沒有藉口說算力太貴而無法做出好的作品了。
ps. 其實我在說自己啦,請勿對號入座!



本文歡迎轉發(貼)及非商業用途使用,若有引用部份文章或圖片時煩請註明出處、作者:「歐尼克斯實境互動工作室 作者:Jack Hsu」及本文網址,謝謝!

4 則留言:

  1. Edge TPU (4 TOPS) >> Jetson Nano (472GFlops)

    回覆刪除
    回覆
    1. 只看數字不太可靠,可以參考一下網友更進一步的測試數據,https://medium.com/@samsterckval/google-coral-edge-tpu-vs-nvidia-jetson-nano-a-quick-deep-dive-into-edgeai-performance-bc7860b8d87a?fbclid=IwAR1zQTKtW_ZiJzTcZ-5nr5lCopnadPwe57-m0_psGuwPoYu_WZGtOyxzl9Q

      刪除

【頂置】簡報、源碼、系列文快速連結區

常有人反應用手機瀏覽本部落格時常要捲很多頁才能找到系列發文、開源專案、課程及活動簡報,為了方便大家快速查詢,特整理連結如下,敬請參考! 【課程及活動簡報】>> 【開源碼專區】>> 【系列發文專區】>>