边缘 AI 平台的比较

CV技术指南 2021-08-24

机器学习交叉编译background

2299 字丨阅读本文需 11 分钟

 前言:

边缘 AI 是当今一个非常令人兴奋的领域,有很多发展和创新即将到来。多年来,机器学习预测有一个明显的趋势,即向下移动到更接近用户、不需要网络连接并且可以实时解决复杂问题(例如自动驾驶)的嵌入式硬件。有许多新框架和引擎的模型占用空间要小得多,专门设计用于在 Edge 设备上运行。此外,当用户的个人数据不离开边缘设备时,解决用户隐私和安全的非常重要的问题要容易得多。分析推理结果的复杂算法可以在边缘设备上执行,只将最终混淆的信息发送到云端(例如,某些异常情况的警报)。


欢迎关注公众号 CV技术指南 ,专注于计算机视觉的技术总结、最新技术跟踪、经典论文解读。

使嵌入式爱好应用程序易于访问和流行的著名平台也可用于中等复杂的机器学习应用程序。以实惠的价格约 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 基准测试结果:


主要针对边缘机器学习应用程序的 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 基准测试结果:


恩智浦拥有一系列 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 基准测试给出以下结果:


对于那些想要跳入令人兴奋的 Edge AI 领域的人来说,有许多易于使用的目标平台可供选择。我们比较了几个平台。出于爱好/演示目的,有便宜但支持机器学习的 Raspberry PI 4 和 NVIDIA Jetson Nano。Nvidia AGX Xavier 是 NVIDIA 的旗舰产品,具有便捷的工具和 Ubuntu 操作系统、良好的 GPU 和 CUDA 支持。NXP i.MX 8 是一个处理起来更复杂的平台,它针对专业的工业和商业应用。

作者:Atanasievski

翻译:CV技术指南

 本文来源于公众号 CV技术指南 的技术总结系列。

欢迎关注公众号 CV技术指南 ,专注于计算机视觉的技术总结、最新技术跟踪、经典论文解读。


免责声明:凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处本网。非本网作品均来自其他媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如您发现有任何侵权内容,请依照下方联系方式进行沟通,我们将第一时间进行处理。

0赞 好资讯,需要你的鼓励
来自:CV技术指南
0

参与评论

登录后参与讨论 0/1000

为你推荐

加载中...