0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

用于加速嵌入式视觉和推理的开放标准

星星科技指导员 来源:嵌入式计算设计 作者:Neil Trevett 2022-06-30 11:23 次阅读

机器学习领域的不断发展为部署利用神经网络推理的设备和应用程序创造了新的机会,这些设备和应用程序具有前所未有的基于视觉的功能和准确性水平。但是,快速发展的领域已经让位于处理器、加速器和库的混乱局面。本文介绍了开放互操作性标准及其在降低成本和降低在实际产品中使用推理和视觉加速的障碍方面的作用。

每个行业都需要开放标准,通过增加生态系统元素之间的互操作性来降低成本和缩短上市时间。开放标准和专有技术具有复杂且相互依存的关系。专有 API接口通常是达尔文式的试验场,并且可以在聪明的市场领导者手中保持主导地位,这也是理所当然的。强大的开放标准源于行业对成熟技术的更广泛需求,可以提供健康、激励的竞争。从长远来看,不受任何一家公司控制或依赖于任何一家公司的开放标准通常可以成为行业向前发展的连续性线索,因为技术、平台和市场地位不断变化和发展。

Khronos Group 是一个非营利性标准联盟,任何公司都可以加入,拥有超过 150 名成员。所有标准组织的存在都是为了为竞争者提供一个安全的场所,让他们为了所有人的利益进行合作。Khronos Group 的专业领域是创建开放、免版税的 API 标准,使软件应用程序库和引擎能够利用硅加速的力量来满足要求苛刻的用例,例如 3D 图形、并行计算、视觉处理和推理。

创建嵌入式机器学习应用程序

许多互操作部分需要协同工作来训练神经网络并将其成功部署在嵌入式加速推理平台上——如图 1 所示。有效的神经网络训练通常需要大型数据集,使用浮点精度并在强大的 GPU 上运行- 加速台式机或云端。训练完成后,经过训练的神经网络将被引入为快速张量操作优化的推理运行时引擎,或将神经网络描述转换为可执行代码的机器学习编译器。无论使用引擎还是编译器,最后一步都是在从 GPU 到专用张量处理器的各种加速器架构之一上加速推理代码。

poYBAGK9F-SADt0FAAJcmCrFjKc432.png

图 1. 训练神经网络并将其部署在加速推理平台上的步骤

那么,行业开放标准如何帮助简化这一过程呢?图 2. 说明了在视觉和推理加速领域中使用的 Khronos 标准。总的来说,随着处理器频率扩展让位于并行编程作为以可接受的成本和功率水平提供所需性能的最有效方式,人们对所有这些标准的兴趣越来越大。

poYBAGK9F-uAGfTaAAIJO1aJglE410.png

图 2. 用于加速视觉和推理应用程序和引擎的 Khronos 标准

从广义上讲,这些标准可以分为两组:高级和低级。高级 API 侧重于易于编程,具有跨多个硬件架构的有效性能可移植性。相比之下,低级 API 提供对硬件资源的直接、显式访问,以实现最大的灵活性和控制。每个项目都必须了解最适合其开发需求的 API 级别。此外,高级 API 通常会在其实现中使用低级 API。

让我们更详细地了解其中的一些 Khronos 标准。

SYCL - C++ 单源异构编程

SYCL(发音为“镰刀”)使用 C++ 模板库来调度标准 ISO C++ 应用程序的选定部分以卸载处理器。SYCL 使复杂的 C++ 机器学习框架和库能够直接编译并加速到在许多情况下优于手动调整代码的性能水平。如图 3 所示,默认情况下,SYCL 是通过较低级别的 OpenCL 标准 API 实现的:将用于加速的代码提供给 OpenCL,而剩余的主机代码则通过系统的默认 CPU 编译器提供。

poYBAGK9F_SAaFvGAAI66OcXC40066.png

图 3. SYCL 将标准 C++ 应用程序拆分为 CPU 和 OpenCL 加速代码

越来越多的 SYCL 实现,其中一些使用专有后端,例如 NVIDIA 的 CUDA 用于加速代码。值得注意的是,英特尔的新 oneAPI Initiative 包含一个名为 DPC++ 的并行 C++ 编译器,它是基于 OpenCL 的符合 SYCL 实现。

NNEF——神经网络交换格式

当今使用的神经网络训练框架有数十种,包括 Torch、Caffe、TensorFlow、Theano、Chainer、Caffe2、PyTorch 和 MXNet 等等,并且都使用专有格式来描述他们训练的网络。还有数十种甚至数百种嵌入式推理处理器进入市场。迫使许多硬件供应商理解和导入如此多的格式是一个典型的碎片问题,可以通过如图 4 所示的开放标准来解决。

poYBAGK9F_2AKJOCAASIT151abE059.png

图 4. NNEF 神经网络交换格式通过推理加速器简化训练网络的摄取

NNEF 文件格式旨在在网络训练和推理芯片领域之间架起一座有效的桥梁——Khronos 久经考验的多公司治理模型让硬件社区对格式如何以一种满足开发处理器工具链和框架的公司,通常在安全关键市场。

NNEF 并不是业界唯一的神经网络交换格式,ONNX 是由 Facebook 和微软共同创立的开源项目,是一种被广泛采用的格式,主要专注于训练框架之间的网络交换。NNEF 和 ONNX 是互补的,因为 ONNX 跟踪培训创新和机器学习研究社区的快速变化,而 NNEF 的目标是嵌入式推理硬件供应商,这些供应商需要一种具有更深思熟虑的路线图演变的格式。Khronos 围绕 NNEF 发起了一个不断发展的开源工具生态系统,包括来自关键框架的导入器和导出器以及一个模型动物园,以使硬件开发人员能够测试他们的推理解决方案。

OpenVX – 便携式加速视觉处理

OpenVX(VX 代表“视觉加速”)通过提供图形级抽象来简化视觉和推理软件的开发,使程序员能够通过连接一组函数或“节点”来构建他们所需的功能。这种高级抽象使芯片供应商能够非常有效地优化他们的 OpenVX 驱动程序,以便在几乎任何处理器架构上高效执行。随着时间的推移,OpenVX 在原始视觉节点旁边添加了推理功能——毕竟神经网络只是另一个图!通过将 NNEF 训练的网络直接导入 OpenVX 图中,OpenVX 和 NNEF 之间的协同作用越来越大,如图 5 所示。

poYBAGK9GAaAdwqCAAJ1o95EBn4346.png

图 5. OpenVX 图可以描述从 NNEF 文件导入的视觉节点和推理操作的任意组合

OpenVX 1.3 于 2019 年 10 月发布,使针对垂直细分市场(例如推理)的精心挑选的规范子集能够被实施和测试,使其符合官方标准。OpenVX 还与 OpenCL 深度集成,使程序员能够添加自己的自定义加速节点以在 OpenVX 图形中使用 - 提供简单的可编程性和可定制性的独特组合。

OpenCL – 异构并行编程

OpenCL 是一种低级标准,用于对 PC、服务器、移动设备和嵌入式设备中的各种异构处理器进行跨平台并行编程。OpenCL 提供基于 C 和 C++ 的语言来构建内核程序,这些程序可以在具有 OpenCL 编译器的系统中的任何处理器上并行编译和执行,从而为程序员明确控制在哪些处理器上执行哪些内核。OpenCL 运行时协调加速器设备的发现,为选定的设备编译内核,以复杂的同步级别执行内核并收集结果,如图 6 所示。

poYBAGK9GA-AejlFAAEcvcdSvok868.png

图 6. OpenCL 使 C 或 C++ 内核程序能够跨异构处理器的任意组合并行编译和执行

OpenCL 在整个行业中广泛使用,为计算、视觉和机器学习库、引擎和编译器提供最低的“接近金属”执行层。

OpenCL 最初是为在高端 PC 和超级计算机硬件上执行而设计的,但在与 OpenVX 类似的演变过程中,需要 OpenCL 的处理器越来越小,精度越来越低,因为它们以边缘视觉和推理为目标。OpenCL 工作组正在努力定义为嵌入式处理器量身定制的功能,并使供应商能够交付针对关键功耗和成本敏感用例的选定功能,并且完全符合要求。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 处理器
    +关注

    关注

    68

    文章

    18039

    浏览量

    221549
  • 编译器
    +关注

    关注

    1

    文章

    1564

    浏览量

    48531
  • 机器学习
    +关注

    关注

    66

    文章

    8062

    浏览量

    130442
收藏 人收藏

    评论

    相关推荐

    使用NVIDIA Triton推理服务器来加速AI预测

    这家云计算巨头的计算机视觉和数据科学服务使用 NVIDIA Triton 推理服务器来加速 AI 预测。
    的头像 发表于 02-29 14:04 171次阅读

    嵌入式人工智能的就业方向有哪些?

    联网ARM开发 NB-IoT开发及实战 七:python工程师,人工智能工程师 python语法基础 python核心编程 基于OpenCV的机器视觉开发 嵌入式人工智能渗入生活的方方面面,广泛应用于
    发表于 02-26 10:17

    嵌入式系统发展前景?

    的发展前景也十分广阔。 随着物联网和智能设备的快速发展,嵌入式系统将更为普遍地应用于各种设备和设施,包括家用电器、医疗设备、交通工具等。这些设备将通过嵌入式系统实现智能化、网络化,从而为用户提供更为便捷
    发表于 02-22 14:09

    嵌入式学习步骤

    开发板上测试固件以及在实际设备上进行测试。 嵌入式系统的多样化发展,它将更为广泛地应用于各个领域,实现智能化、网络化、自动化的目标。同时,随着人工智能和机器学习技术的发展,嵌入式系统的智能化程度也将得到进一步提高,让我们的生活
    发表于 02-02 15:24

    嵌入式硬件和软件哪个好?

    嵌入式硬件和软件哪个好? 嵌入式软硬件工程师哪个更有前途呢?一起来看看。 嵌入式是分为软硬件工程师的,首先我们先来看看嵌入式硬件工程师吧! 嵌入式
    发表于 12-05 15:17

    Banana Pi为何选择rk3588开发与Jetson Nano引脚兼容的嵌入式产品

    应用的需求。 AI加速: RK3588集成了NPU(神经处理单元),可加速深度学习推理,使其成为处理人工智能任务的理想选择。 低功耗: 与其性能相比,RK3588具有出色的功耗表现,这对于嵌入
    发表于 11-02 12:30

    armsom:为何选择rk3588开发与Jetson Nano引脚兼容的嵌入式产品

    (神经处理单元),可加速深度学习推理,使其成为处理人工智能任务的理想选择。 低功耗: 与其性能相比,RK3588具有出色的功耗表现,这对于嵌入式设备来说至关重要,特别是对于依赖电池供电的产品。 如何实现
    发表于 10-18 17:35

    什么是嵌入式Linux?

    什么是嵌入式Linux? 对于很多电气、电信、通信专业的同学来说,对口专业就业方向主要有软、硬件两个方向。无论是对于学生还是就业而言,软硬件的开发学习,嵌入式物联网在近年来无疑是一个摆在面前
    发表于 10-11 13:47

    基于Linux的嵌入式视觉系统设计原理

    电子发烧友网站提供《基于Linux的嵌入式视觉系统设计原理.pdf》资料免费下载
    发表于 10-11 11:26 0次下载
    基于Linux的<b class='flag-5'>嵌入式</b><b class='flag-5'>视觉</b>系统设计原理

    STM32嵌入式操作系统介绍

    嵌入式操作系统的特点• 嵌入式操作系统是一种用途广泛的系统软件,通常包括与硬件相关的底层驱动软件、系统内核、设备驱动接口、通信协议、图形界面、标准化浏览器等。• 负责嵌入式系统的全部软
    发表于 09-28 06:59

    STM32嵌入式操作系统介绍

    嵌入式操作系统的特点• 嵌入式操作系统是一种用途广泛的系统软件,通常包括与硬件相关的底层驱动软件、系统内核、设备驱动接口、通信协议、图形界面、标准化浏览器等。• 负责嵌入式系统的全部软
    发表于 09-11 07:24

    机器视觉嵌入式的关系

    机器视觉嵌入式的关系 机器视觉嵌入式技术是当前信息技术中得到广泛应用的两个关键领域。它们的结合使得许多优秀的应用程序得以实现,比如智能家居、自动驾驶、安全监控等。本文将从以下几个方
    的头像 发表于 08-09 16:57 702次阅读

    机器视觉基础知识点总结:机器视觉嵌入式的关系

    机器视觉嵌入式系统是密切相关的。机器视觉是指计算机技术用于模拟人类视觉系统的能力,通过对图像或视频数据进行处理和分析来实现对物体、场景和动
    的头像 发表于 08-05 16:25 1776次阅读

    嵌入式视觉技术应用领域与挑战 嵌入式视觉技术让智能无处不在

    车辆正奔驰在蜿蜒的盘山公路上,周围美丽的风景使你沉浸其中。你突然注意到前方急拐弯处有一群徒步旅行者,而汽车的嵌入式视觉系统也同时检测到了他们,并迅速减速,以最佳的距离和速度,平稳安全地通过。 *文末
    的头像 发表于 06-08 19:45 945次阅读

    飞凌嵌入式RK3588开发板推理模型转换及测试

    RKNN(Rockchip Neural Network)是一种用于嵌入式设备的深度学习推理框架,它提供了一个端到端的解决方案,用于将训练好的深度学习模型转换为在
    的头像 发表于 06-05 16:11 739次阅读
    飞凌<b class='flag-5'>嵌入式</b>RK3588开发板<b class='flag-5'>推理</b>模型转换及测试