边缘视觉 AI 的理想平台
易于使用
本文引用地址:https://www.eepw.com.cn/article/202106/426416.htm赛灵思通过开发下文提及的各种工具、库、框架和参考示例,为方便应用做了大量工作。
它们大幅简化了软件开发者在赛灵思平台上的应用开发工作。
Vitis AI 开发套件
Vitis™ AI 开发环境由在赛灵思硬件平台上实现 AI 推断的 Vitis AI 开发套件构成,支持赛灵思 SoC、Alveo™ 加速器卡以及现在的 Kria SOM。它的组成包括经优化的工具、库和预训练模型,为开发者部署定制模型铺平了道路。它在设计时就充分考虑到高效率和易用性,在赛灵思器件上释放 AI 加速的全部潜力。Vitis AI 开发环境方便不具备 FPGA 知识的用户在 Kria SOM 上部署深度学习模型,抽象底层芯片器件的复杂构成。详见 Vitis AI 用户指南[参考资料 14]。
此外,Vitis AI与 Apache 开源 TVM 项目集成[参考资料 15],进一步增加了在赛灵思平台上部署模型的机会。TVM 依托开源社区和各类大型商业用户提供的输入,提供多样化、紧跟时代潮流的、可扩展的机器学习框架支持。TVM 自动运行图形分割和图形编译,基本上确保能够部署来自任何框架的网络运算符,即使该运算符并非原生地受到 Vitis AI 开发环境的支持。事实上,在 TVM 环境中任何运算符都能编译到 x86 和 Arm®目标器件上。这意味着开发者可以迅速地部署自己的模型,在赛灵思 DPU 上为 Vitis AI 开发环境支持的子图加速,同时在 CPU 上部署图形的其余部分[参考资料 16]。
PetaLinux SDK
PetaLinux是一种针对赛灵思 SoC 的嵌入式 Linux 软件开发套件 (SDK)。PetaLinux 基于 Yocto,是一种为构建、开发、测试和部署嵌入式 Linux 系统提供一切必要内容的赛灵思开发工具。
PetaLinux 工具包含:
● Yocto 可扩展 SDK (eSDK)
● 赛灵思软件命令行工具 (XSCT) 和工具链
● PetaLinux CLI 工具
Vitis 视觉库
Vitis 视觉库使用户能在赛灵思平台上开发和部署加速计算机视觉和图像处理应用,同时在应用层面操作。这些开源的库功能提供了基于 OpenCV 的熟悉界面,但专为赛灵思平台的高性能和低资源耗用进行了优化。此外,它们也提供了灵活性,可以满足用户视觉系统的自适应吞吐量需求。表 5 列出的是在赛灵思平台已经预加速的一些主要功能。完整列表请访问 Xilinx.com 上的 Vitis 库登录页面[参考资料 17]。
表5 赛灵思平台上的加速功能
基础功能 | ISP | 形态 | ML |
绝对差 | 2dnr-nlm | 膨胀(最大) | 归一化 |
累加 | 3dlut | 距离转换 | 标准化 |
算术加法 | 3a | 侵蚀(最小) | 边缘检测器 |
算术减法 | ccm | 霍夫线 | canny |
逐位:AND、OR、XOR、NOT | 修剪 | 标准偏差 | 高斯差分 (DOG) |
边界框 | cvt | 阈值转换 | 拉普拉斯算子 |
颜色转换 | 去马赛克-CFA-单色 | 二进制阈值 | scharr |
修剪 | 去马赛克-hlqi | 二进制逆阈值 | 连接组件分析 |
定制卷积 | dpc-单 | 颜色阈值 | sobel |
重复图像 | 伽马校正 | 至零阈值 | 追踪 |
直方图 | 增益控制 | 至零逆阈值 | Lucas-Kanade密集光流 |
幅度 | gtm | 截断阈值 | 扩展Kalman滤波器 |
绘图遮罩 | hdr-去压扩 | 地理坐标转换 | Kalman滤波器 |
像素级乘法 | Hdr-多-曝光-融合 | 仿射 | 均值漂移 |
查找表 | hist_均衡 | 翻转 | 其它 |
零 | lsc | 视角 | stereobm |
平滑 | ltm-clahe | pyrdown | stereorectify |
双边 | ob | pyrup | stereosgbm |
箱体(均值) | 量化-抖动 | 重映射 | 特性匹配器 |
高斯 | 调整大小-面积 | 调整大小 | 特性检测器 |
中值 | 调整大小-双线性 | 旋转 | 特性描述符 |
模式 | 调整大小-nn | 平移 | – |
视频分析 SDK
视频分析 SDK 是一种构建在开源且被广泛采用的 GStreamer 框架上的应用框架。这种SDK 设计上支持跨所有赛灵思平台的无缝开发,包括赛灵思 FPGA、SoC、Alveo 卡,当然还有 Kria SOM。使用这个 SDK,开发者无需深入掌握 FPGA 复杂的底层技术,就能装配视觉分析和视频分析流水线。此外,该 SDK 提供的 API 让用户能够快速开发以 GStreamer 插件形式存在,能集成到 SDK 框架的高效的定制加速内核。无论是否使用定制加速内核,一般的嵌入式开发者都能简便轻松地装配定制加速流水线。
加速应用
加速应用是 Kria SOM 解决方案的基本构建块。这些应用是完整、可量产的端到端解决方案,专门支持常见的视觉用例。赛灵思加速应用在可编程逻辑区域包含一个预优化的视觉流水线加速器。开发者可按原状使用,也可以进一步优化,满足应用的特定需求。借助具有高可靠性的软件协议栈,只修改固件或者倒换 AI 模型,用户就能轻松地定制和增强解决方案功能。此外,通过新推出的 Kria 赛灵思应用商店,开发者能通过 Uncanny Vision 等领域专业厂商,了解、评估或购买业界领先的应用。
结论
本白皮书首先对赛灵思最新推出的 Kria K26 SOM 与英伟达 Jetson Nano 和英伟达 Jetson TX2 进行了详细的特性比较。然后在 K26 SOM 的两种 DPU 配置 B3136 和 B4096 上,比较了一些行业领先的模型的性能,如 Tiny Yolo V3、SSD_Mobilenet_V1、ResNet50 等。
随后又将比较结果与英伟达网站上公布的基准测试数值进行比较。得到的结论是 K26 SOM 在性能上同时优于 Jetson Nano 器件和 Jetson TX2 器件。Kria SOM 不仅吞吐量大幅增加(比 Jetson Nano 高 4 倍),而且在单位功耗性能上也有显著优势(比 Jetson TX2 高 2 倍)。
分析进一步展开,开始比较自动检测和识别汽车车牌的实际应用的性能。K26 SOM 在实际应用下的性能极其优异,提供了显著的性能优势。K26 SOM 的底层硬件功能强大,有助于在降低时延和减少功耗的情况下为完整的应用提速。对于 ANPR 应用,K26 SOM 性能优于 Jetson Nano 四倍,而且凭借更高的吞吐量,用户能够在每个器件上处理更多流,从而降低了总体拥有成本。拥有更高吞吐量、更低时延、更小功耗等优势,同时能够为满足未来需求提供灵活性和可扩展能力,Kria K26 SOM 是在边缘设备上实现基于视觉 AI 的应用的理想选择。
参考资料
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
补充阅读
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
鸣谢
下列赛灵思员工参加了本白皮书的写作或为本白皮书的成文做出了贡献:Jasvinder Khurana,员工系统设计工程师
Quenton Hall,AI 系统架构师
Girish Malipeddi,营销、多媒体和电路板解决方案总监
修订历史
下表列出了本文档的修订历史。
日期 | 版本 | 修订描述 |
04/20/2021 | 1.0 | 赛灵思初始版本。 |
评论