前言:
邊緣 AI 是當今一個非常令人興奮的領域,有很多發展和創新即将到來。多年來,機器學習預測有一個明顯的趨勢,即向下移動到更接近使用者、不需要網絡連接配接并且可以實時解決複雜問題(例如自動駕駛)的嵌入式硬體。有許多新架構和引擎的模型占用空間要小得多,專門設計用于在 Edge 裝置上運作。此外,當使用者的個人資料不離開邊緣裝置時,解決使用者隐私和安全的非常重要的問題要容易得多。分析推理結果的複雜算法可以在邊緣裝置上執行,隻将最終混淆的資訊發送到雲端(例如,某些異常情況的警報)。
本文基于我們在 Darwin Edge 的工作,在那裡我們專注于應用于醫療保健和制造的邊緣 AI 應用程式。對于闆卡的性能示範,我們使用了著名的開源 NCNN 高性能神經網絡推理計算架構,針對移動和嵌入式平台進行了優化(https://github.com/Tencent/ncnn)。本文針對平台的交叉編譯不需要太多工作(标準 cmake 配置和使用交叉編譯工具建構并配置 sysroot),并且為了簡單的闆性能比較,NCNN 預設推理基準已經執行 (benchncnn)。NCNN 基準測試是靜态建構的,它的大部分依賴項都是靜态建構的,是以一般來說,讓它在标準的嵌入式 Linux 系統中運作并不難。
在我們的開發中,我們經常使用 Bonseyes 開發者平台 (https://www.bonseyes.com/),它可以使用相同的工具輕松交叉編譯各種機器學習應用程式。Bonseyes 平台帶有工具和 docker 鏡像,可用于許多嵌入式平台的交叉編譯環境。它支援平台映像的建構、目标闆的設定和自定義應用程式的交叉編譯,這是通過在容器内建構應用程式以與平台無關的方式執行的。
Raspberry PI 4B 型
使嵌入式愛好應用程式易于通路和流行的著名平台也可用于中等複雜的機器學習應用程式。以實惠的價格約 50 美元,對于進入邊緣計算的愛好者來說,它是一個不錯的工具。

Raspberry PI 4
有 2 種基于 Linux 的作業系統發行版可用 - 官方 Raspberry Pi 發行版 Raspberry Pi OS (Raspbian) 和 Ubuntu Raspberry Pi 端口。
Raspbian 在配置和管理目标闆方面更加使用者友好(對新手來說更容易),但 Ubuntu 對外部應用程式和庫有更廣泛的支援,可以通路标準的 Ubuntu ARM 包存儲庫。AI應用移植和交叉編譯可能更友善。兩個發行版都有 32 位和 64 位版本。
根據我們的經驗,64 位系統在機器學習應用程式基準測試中比 32 位系統快 50%。
Raspberry PI 4 硬體規格
通過在 Vulkan 1.0 的 Khronos 一緻性測試套件中通過 100,000 次測試,為 Raspberry Pi 4 GPU 開發 Vulkan 驅動程式的開源計劃已正式釋出。不幸的是,Vulkan 驅動程式開發專注于 32 位平台,對 64 位作業系統的支援非常少。
一般來說,Ubuntu(或其他支援良好的 Linux 發行版)是 Raspberry Pi 4 的良好交叉編譯環境。GNU 交叉編譯工具鍊可以從官方存儲庫(g++-aarch64-linux-gnu 和 gcc-aarch64-)輕松安裝linux-gnu)。
實作交叉編譯環境的一種好方法是建立Docker鏡像,在那裡安裝所有主機開發工具,并使用Ubuntu多平台存儲庫支援建立目标系統root,并讓Ubuntu apt工具解析并下載下傳目标闆庫的所有依賴項需要該 sysroot 才能完全發揮作用(在以後的文章中将詳細介紹此主題)。
下表給出了 Raspberry Pi 4B 闆的 NCNN 基準測試結果:
Jetson AGX Xavier
主要針對邊緣機器學習應用程式的 NVIDIA 旗艦産品基于 NVIDIA® Jetson AGX Xavier 子產品。它是一個功能強大的平台,帶有豐富的 NVIDIA 工具和庫生态系統,用于開發 AI 應用程式。
在 PC 工作站上運作的易于使用的 NVIDIA SDK 管理器支援下載下傳和安裝最新的可用作業系統(目前為 Ubuntu 18.04)以及與闆載硬體相關的附加庫和驅動程式。許多預裝的庫都額外支援 NVIDIA 硬體(例如 gstreamer 硬體編碼/解碼)。
Jetson AGX Xavier 硬體規格
具有 512 個 CUDA 核心的 Volta GPU 提供了不錯的計算和處理能力。它支援 CUDA 計算能力 7.0。相比之下,著名的 NVIDIA GTX 1060 PC GPU 具有 Compute Capability 6.0 支援和 1280 個 CUDA 核心。
此外,由于 CUDA 是第一個通用 GPU 程式設計平台,并且在過去十年中主要用于機器學習領域,是以該平台具有獨特的優勢,隻需簡單的交叉編譯即可直接在闆上輕松使用現有的 AI 架構和庫。在目标上運作的 Ubuntu 系統支援使用 Ubuntu ARM 存儲庫中提供的許多軟體包的 apt 工具輕松安裝。
一般而言,由于其功能強大、易于設定和封裝可用,目标闆本身可用于編譯本機自定義應用程式,而無需在 PC 工作站上設定交叉編譯環境。過程通常包括直接在闆上克隆 github 存儲庫,運作 cmake 以檢查缺少的依賴項,使用 apt-get 工具安裝這些依賴項并執行重新配置,然後執行 make 以建構應用程式。在 AGX Xavier 上編譯比在高端現代 PC 工作站上慢一個數量級,但對于中等規模的項目,這是一種測試和嘗試新事物的簡單方法。
AGX Xavier 還支援 TensorRT,NVIDIA 引擎,用于運作優化的 AI 推理。它将标準模型格式(例如 ONNX)編譯為可以在 GPU 或深度學習加速器上執行的高度優化的代碼。更多關于 TensorRT 的資訊可以在 NVIDIA 網站上找到。
AGX Xavier 開發人員套件的價格約為 850 美元,這幾乎使它成為 Edge AI 的第一個業餘愛好套件。它更便宜(100 美元)的表親 NVIDIA Jetson Nano 缺乏如此出色的 GPU(它基于 Maxvell 架構——128 核的 CUDA 計算能力 5.2)和支援 TensorRT 的深度學習加速器,但開發環境和工具/作業系統是相同的,是以這是一個很好的政策,從 Nano 闆開始簡單,然後當機器學習應用程式複雜性開始損害性能時,輕松切換到 AGX Xavier 平台。
下表給出了 AGX Xavier 開發人員套件的 NCNN 基準測試結果:
NXP i.MX 8 Multisensory Enablement Kit (MEK)
恩智浦擁有一系列 i.MX 8 應用處理器,用于進階圖形、成像、機器視覺和安全關鍵應用,以及一系列示範/目标平台,帶有基于這些 CPU 的各種外設。NXP i.MX 8 Multisensory Enablement Kit (MEK) 是一個友善的機器學習應用平台。
它非常強大,具有許多包含的硬體/擴充功能:
以 1000+$ 的價格,它旨在用作專業平台。
在恩智浦網站上有關于該闆的大量文檔,還有可用的 Linux 映像,可以使用 Etcher 等工具輕松将其刻錄到 PC 上的 SD 卡。船上使用的作業系統是基于預設 Poky Linux 發行版的 Yocto Linux 的恩智浦定制。此自定義添加了許多 Edge AI 應用程式中常見的庫(opencv、gstreamer、QT、工作 Vulkan 驅動程式)。
從預燒的 SD 卡拆箱和啟動 MEK 闆很容易,但将工作站 PC 設定為交叉編譯環境則需要更多的工作。它需要使用 Yocto 建構系統根和 SDK,可以交叉編譯自定義應用程式以在該闆上運作。
Yocto 是一個非常複雜的建構系統,它在自定義電路闆圖像和系統庫的各個方面的能力方面提供了強大的功能,但學習曲線陡峭,需要大量時間來了解和練習。自定義預設的 NXP iMX8 建構(例如,如果缺少某些額外的開源庫)非常乏味。Yocto 下載下傳源代碼并從頭開始建構所有内容(包括為建構計算機環境量身定制的 GNU 交叉編譯工具鍊),在高端現代個人計算機上,這個初始建構工作需要一整天才能完成。
在平台上執行的 NCNN 基準測試給出以下結果:
Conclusion
對于那些想要跳入令人興奮的 Edge AI 領域的人來說,有許多易于使用的目标平台可供選擇。我們比較了幾個平台。出于愛好/示範目的,有便宜但支援機器學習的 Raspberry PI 4 和 NVIDIA Jetson Nano。Nvidia AGX Xavier 是 NVIDIA 的旗艦産品,具有便捷的工具和 Ubuntu 作業系統、良好的 GPU 和 CUDA 支援。NXP i.MX 8 是一個處理起來更複雜的平台,它針對專業的工業和商業應用。
作者:Atanasievski
翻譯:CV技術指南
原文連結:
https://medium.com/darwin-edge-ai/comparison-of-edge-ai-platforms-f6bc6601fc9
本文來源于公衆号 CV技術指南 的技術總結系列。
歡迎關注公衆号 CV技術指南 ,專注于計算機視覺的技術總結、最新技術跟蹤、經典論文解讀。
在公衆号中回複關鍵字 “技術總結”可擷取公衆号原創技術總結文章的彙總pdf。
其它文章
CV技術指南--精華文章彙總分類
神經網絡超參數的調參方法總結
CVPR2021 | 重新思考BatchNorm中的Batch
ICCV2021 | 重新思考視覺transformers的空間次元
CVPR2021 | Transformer用于End-to-End視訊執行個體分割
ICCV2021 |(騰訊優圖)重新思考人群中的計數和定位:一個純粹基于點的架構
卷積神經網絡的複雜度分析
2021年小目标檢測最新研究綜述
計算機視覺中的自注意力
綜述專欄 | 姿态估計綜述
漫談CUDA優化
為什麼GEMM是深度學習的核心
使用深度神經網絡為什麼8位足夠?
經典論文系列--膠囊網絡:新的深度學習網絡
經典論文系列 | 目标檢測--CornerNet & 又名 anchor boxes的缺陷
如何看待人工智能的泡沫
使用Dice loss實作清晰的邊界檢測
PVT--無卷積密集預測的多功能backbone
CVPR2021 | 開放世界的目标檢測
Siamese network總結
視覺目标檢測和識别之過去,現在及可能
在做算法工程師的道路上,你掌握了什麼概念或技術使你感覺自我提升突飛猛進?
計算機視覺專業術語總結(一)建構計算機視覺的知識體系
欠拟合與過拟合技術總結
歸一化方法總結
論文創新的常見思路總結
CV方向的高效閱讀英文文獻方法總結
計算機視覺中的小樣本學習綜述
知識蒸餾的簡要概述
優化OpenCV視訊的讀取速度
NMS總結
損失函數技術總結
注意力機制技術總結
特征金字塔技術總結
池化技術總結
資料增強方法總結
CNN結構演變總結(一)經典模型
CNN結構演變總結(二)輕量化模型
CNN結構演變總結(三)設計原則
如何看待計算機視覺未來的走向
CNN可視化技術總結(一)特征圖可視化
CNN可視化技術總結(二)卷積核可視化
CNN可視化技術總結(三)類可視化
CNN可視化技術總結(四)可視化工具與項目