邊緣視覺 AI 的理想平臺
易于使用
本文引用地址:http://m.butianyuan.cn/article/202106/426416.htm賽靈思通過開發(fā)下文提及的各種工具、庫、框架和參考示例,為方便應(yīng)用做了大量工作。
它們大幅簡化了軟件開發(fā)者在賽靈思平臺上的應(yīng)用開發(fā)工作。
Vitis AI 開發(fā)套件
Vitis? AI 開發(fā)環(huán)境由在賽靈思硬件平臺上實(shí)現(xiàn) AI 推斷的 Vitis AI 開發(fā)套件構(gòu)成,支持賽靈思 SoC、Alveo? 加速器卡以及現(xiàn)在的 Kria SOM。它的組成包括經(jīng)優(yōu)化的工具、庫和預(yù)訓(xùn)練模型,為開發(fā)者部署定制模型鋪平了道路。它在設(shè)計(jì)時(shí)就充分考慮到高效率和易用性,在賽靈思器件上釋放 AI 加速的全部潛力。Vitis AI 開發(fā)環(huán)境方便不具備 FPGA 知識的用戶在 Kria SOM 上部署深度學(xué)習(xí)模型,抽象底層芯片器件的復(fù)雜構(gòu)成。詳見 Vitis AI 用戶指南[參考資料 14]。
此外,Vitis AI與 Apache 開源 TVM 項(xiàng)目集成[參考資料 15],進(jìn)一步增加了在賽靈思平臺上部署模型的機(jī)會。TVM 依托開源社區(qū)和各類大型商業(yè)用戶提供的輸入,提供多樣化、緊跟時(shí)代潮流的、可擴(kuò)展的機(jī)器學(xué)習(xí)框架支持。TVM 自動(dòng)運(yùn)行圖形分割和圖形編譯,基本上確保能夠部署來自任何框架的網(wǎng)絡(luò)運(yùn)算符,即使該運(yùn)算符并非原生地受到 Vitis AI 開發(fā)環(huán)境的支持。事實(shí)上,在 TVM 環(huán)境中任何運(yùn)算符都能編譯到 x86 和 Arm?目標(biāo)器件上。這意味著開發(fā)者可以迅速地部署自己的模型,在賽靈思 DPU 上為 Vitis AI 開發(fā)環(huán)境支持的子圖加速,同時(shí)在 CPU 上部署圖形的其余部分[參考資料 16]。
PetaLinux SDK
PetaLinux是一種針對賽靈思 SoC 的嵌入式 Linux 軟件開發(fā)套件 (SDK)。PetaLinux 基于 Yocto,是一種為構(gòu)建、開發(fā)、測試和部署嵌入式 Linux 系統(tǒng)提供一切必要內(nèi)容的賽靈思開發(fā)工具。
PetaLinux 工具包含:
● Yocto 可擴(kuò)展 SDK (eSDK)
● 賽靈思軟件命令行工具 (XSCT) 和工具鏈
● PetaLinux CLI 工具
Vitis 視覺庫
Vitis 視覺庫使用戶能在賽靈思平臺上開發(fā)和部署加速計(jì)算機(jī)視覺和圖像處理應(yīng)用,同時(shí)在應(yīng)用層面操作。這些開源的庫功能提供了基于 OpenCV 的熟悉界面,但專為賽靈思平臺的高性能和低資源耗用進(jìn)行了優(yōu)化。此外,它們也提供了靈活性,可以滿足用戶視覺系統(tǒng)的自適應(yīng)吞吐量需求。表 5 列出的是在賽靈思平臺已經(jīng)預(yù)加速的一些主要功能。完整列表請?jiān)L問 Xilinx.com 上的 Vitis 庫登錄頁面[參考資料 17]。
表5 賽靈思平臺上的加速功能
基礎(chǔ)功能 | ISP | 形態(tài) | ML |
絕對差 | 2dnr-nlm | 膨脹(最大) | 歸一化 |
累加 | 3dlut | 距離轉(zhuǎn)換 | 標(biāo)準(zhǔn)化 |
算術(shù)加法 | 3a | 侵蝕(最?。?/p> | 邊緣檢測器 |
算術(shù)減法 | ccm | 霍夫線 | canny |
逐位:AND、OR、XOR、NOT | 修剪 | 標(biāo)準(zhǔn)偏差 | 高斯差分 (DOG) |
邊界框 | cvt | 閾值轉(zhuǎn)換 | 拉普拉斯算子 |
顏色轉(zhuǎn)換 | 去馬賽克-CFA-單色 | 二進(jìn)制閾值 | scharr |
修剪 | 去馬賽克-hlqi | 二進(jìn)制逆閾值 | 連接組件分析 |
定制卷積 | dpc-單 | 顏色閾值 | sobel |
重復(fù)圖像 | 伽馬校正 | 至零閾值 | 追蹤 |
直方圖 | 增益控制 | 至零逆閾值 | Lucas-Kanade密集光流 |
幅度 | gtm | 截?cái)嚅撝?/p> | 擴(kuò)展Kalman濾波器 |
繪圖遮罩 | hdr-去壓擴(kuò) | 地理坐標(biāo)轉(zhuǎn)換 | Kalman濾波器 |
像素級乘法 | Hdr-多-曝光-融合 | 仿射 | 均值漂移 |
查找表 | hist_均衡 | 翻轉(zhuǎn) | 其它 |
零 | lsc | 視角 | stereobm |
平滑 | ltm-clahe | pyrdown | stereorectify |
雙邊 | ob | pyrup | stereosgbm |
箱體(均值) | 量化-抖動(dòng) | 重映射 | 特性匹配器 |
高斯 | 調(diào)整大小-面積 | 調(diào)整大小 | 特性檢測器 |
中值 | 調(diào)整大小-雙線性 | 旋轉(zhuǎn) | 特性描述符 |
模式 | 調(diào)整大小-nn | 平移 | – |
視頻分析 SDK
視頻分析 SDK 是一種構(gòu)建在開源且被廣泛采用的 GStreamer 框架上的應(yīng)用框架。這種SDK 設(shè)計(jì)上支持跨所有賽靈思平臺的無縫開發(fā),包括賽靈思 FPGA、SoC、Alveo 卡,當(dāng)然還有 Kria SOM。使用這個(gè) SDK,開發(fā)者無需深入掌握 FPGA 復(fù)雜的底層技術(shù),就能裝配視覺分析和視頻分析流水線。此外,該 SDK 提供的 API 讓用戶能夠快速開發(fā)以 GStreamer 插件形式存在,能集成到 SDK 框架的高效的定制加速內(nèi)核。無論是否使用定制加速內(nèi)核,一般的嵌入式開發(fā)者都能簡便輕松地裝配定制加速流水線。
加速應(yīng)用
加速應(yīng)用是 Kria SOM 解決方案的基本構(gòu)建塊。這些應(yīng)用是完整、可量產(chǎn)的端到端解決方案,專門支持常見的視覺用例。賽靈思加速應(yīng)用在可編程邏輯區(qū)域包含一個(gè)預(yù)優(yōu)化的視覺流水線加速器。開發(fā)者可按原狀使用,也可以進(jìn)一步優(yōu)化,滿足應(yīng)用的特定需求。借助具有高可靠性的軟件協(xié)議棧,只修改固件或者倒換 AI 模型,用戶就能輕松地定制和增強(qiáng)解決方案功能。此外,通過新推出的 Kria 賽靈思應(yīng)用商店,開發(fā)者能通過 Uncanny Vision 等領(lǐng)域?qū)I(yè)廠商,了解、評估或購買業(yè)界領(lǐng)先的應(yīng)用。
結(jié)論
本白皮書首先對賽靈思最新推出的 Kria K26 SOM 與英偉達(dá) Jetson Nano 和英偉達(dá) Jetson TX2 進(jìn)行了詳細(xì)的特性比較。然后在 K26 SOM 的兩種 DPU 配置 B3136 和 B4096 上,比較了一些行業(yè)領(lǐng)先的模型的性能,如 Tiny Yolo V3、SSD_Mobilenet_V1、ResNet50 等。
隨后又將比較結(jié)果與英偉達(dá)網(wǎng)站上公布的基準(zhǔn)測試數(shù)值進(jìn)行比較。得到的結(jié)論是 K26 SOM 在性能上同時(shí)優(yōu)于 Jetson Nano 器件和 Jetson TX2 器件。Kria SOM 不僅吞吐量大幅增加(比 Jetson Nano 高 4 倍),而且在單位功耗性能上也有顯著優(yōu)勢(比 Jetson TX2 高 2 倍)。
分析進(jìn)一步展開,開始比較自動(dòng)檢測和識別汽車車牌的實(shí)際應(yīng)用的性能。K26 SOM 在實(shí)際應(yīng)用下的性能極其優(yōu)異,提供了顯著的性能優(yōu)勢。K26 SOM 的底層硬件功能強(qiáng)大,有助于在降低時(shí)延和減少功耗的情況下為完整的應(yīng)用提速。對于 ANPR 應(yīng)用,K26 SOM 性能優(yōu)于 Jetson Nano 四倍,而且憑借更高的吞吐量,用戶能夠在每個(gè)器件上處理更多流,從而降低了總體擁有成本。擁有更高吞吐量、更低時(shí)延、更小功耗等優(yōu)勢,同時(shí)能夠?yàn)闈M足未來需求提供靈活性和可擴(kuò)展能力,Kria K26 SOM 是在邊緣設(shè)備上實(shí)現(xiàn)基于視覺 AI 的應(yīng)用的理想選擇。
參考資料
1.Krizhevsky, Alex, 2012, "ImageNet Classification with Deep Convolutional Neural Networks," https://papers.nips.cc/paper/2012/file/c399862d3b9d6b76c8436e924a68c45b-Paper.pdf
2.Ke, Haiming, 2015, "Deep Residual Learning for Image Recognition," https://arxiv.org/pdf/1512.03385.pdf
3.Dialani, Priya, 2019, “Computer Vision:The future of artificial intelligence,”
https://www.analyticsinsight.net/computer-vision-the-future-of-artificial-intelligence/
4.Howard, Andrew, 2017, "MobileNets:Efficient Convolutional Neural Networks for Mobile Vision Applications," https://arxiv.org/pdf/1704.04861.pdf
5.Yao, Song et al., Hotchips Symposium 2018, Session 8, "The Evolution of Accelerators upon Deep Learning Algorithms," https://www.youtube.com/watch?v=zbtZ-rALqF4
6.Xilinx White Paper, WP528, “Achieving Embedded Design Simplicity with Kria SOMs,”
https://www.xilinx.com/products/som/achieving-embedded-design-simplicity-with-kria- soms.html
7.Xilinx User Guide, UG1089, Kria KV260 Vision AI Starter Kit User Guide:
https://www.xilinx.com/cgi-bin/rdoc?t=som-doc;v=latest;d=ug1089-kv260-starter-kit.pdf
8.Nvidia Website:https://developer.nvidia.com/EMBEDDED/Jetson-modules
9.Horowitz, Mark, ISSCC Presentation, 2014:“Computing’s Energy Problem and What We Can Do About It,” https://vimeo.com/99757212
10.Nvidia Website:https://developer.nvidia.com/embedded/jetson-benchmarks
11.Nvidia Website:https://forums.developer.nvidia.com/t/how-to-use-int8-inference-with- jetsontx2-tensorrt-2-1-2/54890
12.Clark, Alvin, “Xilinx Machine Learning Strategies For Edge”, 2018.https://www.xilinx.com/publications/events/machine-learning-
live/sandiego/xilinx_machine_learning_strategies_for_edge.pdf
13.Nvidia Website:"License Plate Recognition" by Nvidia's Deepstream-SDK:https://developer.nvidia.com/deepstream-sdk
14.Xilinx User Guide, UG1414 Vitis AI User Guide:https://www.xilinx.com/cgi- bin/docs/rdoc?t=vitis_ai;v=1.3;d=ug1414-vitis-ai.pdf
15.Apache TVM website, https://tvm.apache.org/
16.Xilinx TVM webinar,
https://event.on24.com/eventRegistration/EventLobbyServlet?target=reg20.jsp&partnerref=E DM1&eventid=2746831&sessionid=1&key=597DBD491AEF87E1AB3FBAA582A3EAEE®Tag
=&sourcepage=register
17.Xilinx Website:https://www.xilinx.com/products/design-tools/vitis/vitis-libraries/vitis- vision.html
補(bǔ)充閱讀
1.Xilinx White Paper, Cathal Murphy and Yao Fu, WP492, “Xilinx All Programmable Devices:A Superior Platform for Compute-Intensive Systems”.June 13, 2017.
https://www.xilinx.com/support/documentation/white_papers/wp492-compute-intensive- sys.pdf
2.Jason Cong, Zhenman Fang, Michael Lo, Hanrui Wang, Jingxian Xu, Shaochong Zhang, Center for Domain-Specific Computing, UCLA, “Understanding Performance Differences of FPGAs and GPUs.” https://vast.cs.ucla.edu/sites/default/files/publications/FCCM2018-paper120-final.pdf
3.Gordon Cooper, “New Vision Technologies For Real-World Applications”, 3 Oct 2019.https://semiengineering.com/new-vision-technologies-for-real-world-applications/
4.Xilinx White Paper, “FPGAs in the Emerging DNN Inference Landscape”, 28 Oct, 2019.
https://www.xilinx.com/support/documentation/white_papers/wp514-emerging-dnn.pdf
5.Linus Pettersson, “Convolutional Neural Networks on FPGA and GPU on the Edge:A Comparison”, Jun 2020.
https://www.diva-portal.org/smash/get/diva2:1447576/FULLTEXT01.pdf
6.Alvin Clark, “Xilinx Machine Learning Strategies For Edge”, 2018.
https://www.xilinx.com/publications/events/machine-learning-live/san- diego/xilinx_machine_learning_strategies_for_edge.pdf
7.Ihwoo, “Nvidia Jetson Nano / Xavier power monitoring”, Jul, 2020.
https://inaj012.medium.com/nvidia-jetson-nano-xavier-power-monitoring-62d374e9dc81
8.Intel, “FPGA chips are coming on fast in the race to accelerate AI”, 10 Dec, 2020.
https://venturebeat.com/2020/12/10/fpga-chips-are-coming-on-fast-in-the-race-to- accelerate-ai/
9.Mehul Ved, “Artificial Intelligence (AI) Solutions on Edge Devices”, 8 May 2019.https://stratahive.com/artificial-intelligence-ai-solutions-on-edge-devices/
10.Hewelett Packard Enterprise, “7 Reasons Why We Need to Compute at the Edge”.
https://www.hpe.com/us/en/newsroom/blog-post/2017/03/7-reasons-why-we-need-to- compute-at-the-edge.html
11.https://github.com/jkjung-avt/tensorrt_demos
12.https://github.com/NVIDIA-AI-IOT/deepstream_reference_apps/tree/restructure/yolo#trt- yolo-app
13.https://elinux.org/Jetson_Zoo
鳴謝
下列賽靈思員工參加了本白皮書的寫作或?yàn)楸景灼某晌淖龀隽素暙I(xiàn):Jasvinder Khurana,員工系統(tǒng)設(shè)計(jì)工程師
Quenton Hall,AI 系統(tǒng)架構(gòu)師
Girish Malipeddi,營銷、多媒體和電路板解決方案總監(jiān)
修訂歷史
下表列出了本文檔的修訂歷史。
日期 | 版本 | 修訂描述 |
04/20/2021 | 1.0 | 賽靈思初始版本。 |
評論