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

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

3天内不再提示

加速嵌入式视觉和推理的开放标准:行业概述

星星科技指导员 来源:嵌入式计算设计 作者:Neil Trevett 2022-11-29 16:33 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

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

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

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

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

pYYBAGOFw_WAflF2AADG6bjbMAI200.png

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

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

pYYBAGOFw_6AO4eFAADI5i3zSqY232.png

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

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

让我们更详细地看一下其中一些Khronos标准。

SYCL - C++ 单源异构编程

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

poYBAGOFxACADr69AADX87qrQKc340.png

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

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

NNEF – 神经网络交换格式

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

pYYBAGOFxAiAOCbYAAFFzvdNcRI099.png

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

NNEF 文件格式旨在为网络训练和推理芯片世界提供有效的桥梁——Khronos 经过验证的多公司治理模型为硬件社区提供了强有力的声音,说明该格式如何以满足开发处理器工具链和框架的公司的需求的方式发展,通常在安全关键市场中。

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

OpenVX – 便携式加速视觉处理

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

poYBAGOFxBGAIL-2AAC8-6WP8Fw671.png

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

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

OpenCL – 异构并行编程

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

pYYBAGOFxBOAJnf4AABpmIvB8oE649.png

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

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

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

审核编辑:郭婷

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

    关注

    5209

    文章

    20622

    浏览量

    336751
  • 神经网络
    +关注

    关注

    42

    文章

    4840

    浏览量

    108141
  • 机器学习
    +关注

    关注

    67

    文章

    8561

    浏览量

    137208
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Ceva NeuPro-Nano NPU 在 2026 年嵌入式世界大会上 荣获人工智能奖

    单元 (NPU) IP 在德国纽伦堡举行的嵌入式世界展览和会议上荣获 2026 年嵌入式奖人工智能奖项。 嵌入式系统奖由行业和学术专家组成的独立评审团进行评选,旨在表彰
    的头像 发表于 03-16 10:22 344次阅读
    Ceva NeuPro-Nano NPU 在 2026 年<b class='flag-5'>嵌入式</b>世界大会上 荣获人工智能奖

    飞凌嵌入式亮相德国纽伦堡embedded world 2026,深耕全球嵌入式AI市场!

    (展位号NO.3-561),旨在向全球行业伙伴彰显中国嵌入式企业的创新实力与强劲竞争力,持续深化全球化布局。
    的头像 发表于 03-11 16:37 1.1w次阅读
    飞凌<b class='flag-5'>嵌入式</b>亮相德国纽伦堡embedded world 2026,深耕全球<b class='flag-5'>嵌入式</b>AI市场!

    嵌入式视觉技术赋能工业自动化领域变革

    机器视觉(Machine Vision)是实现非接触检测和高度柔性生产的关键技术,其主要功能可归纳为识别、测量、检测以及定位与引导等四类。嵌入式视觉(Embedded Vision)
    的头像 发表于 03-06 09:28 1037次阅读
    <b class='flag-5'>嵌入式</b><b class='flag-5'>视觉</b>技术赋能工业自动化领域变革

    2026年,嵌入式行业如何抢占AI红利?

    2026年,智能化转型进入深水区,从工业质检、智慧交通到消费电子、医疗设备,各类终端对AI算力、稳定性与场景适配性的要求持续升级,嵌入式AI板卡作为设备“智能核心”的作用愈发关键。飞凌嵌入式凭借多年
    的头像 发表于 01-23 08:02 1178次阅读
    2026年,<b class='flag-5'>嵌入式</b><b class='flag-5'>行业</b>如何抢占AI红利?

    什么是嵌入式应用开发?

    概述 所谓的嵌入式应用开发就是在嵌入式操作系统下进行开发、软硬件综合开发 ‌嵌入式应用开发‌是指在嵌入式操作系统下进行开发,包括系统化设计
    发表于 01-12 16:13

    重磅合作!Quintauris 联手 SiFive,加速 RISC-V 在嵌入式与 AI 领域落地

    (ADAS); 嵌入式平台的 AI 与机器学习加速器; 工业物联网与自动化系统(开放标准架构的优势能充分发挥)。 对咱们开发者来说,这波合作最大的好处就是能拿到集成
    发表于 12-18 12:01

    探索Series 660低成本可嵌入式加速度计:应用与技术解析

    探索Series 660低成本可嵌入式加速度计:应用与技术解析 在电子工程领域,加速度计是用于测量加速度的设备,在众多应用场景中发挥着关键作用。今天,我们将深入探讨PCB Piezot
    的头像 发表于 12-12 15:45 481次阅读
    探索Series 660低成本可<b class='flag-5'>嵌入式</b><b class='flag-5'>加速</b>度计:应用与技术解析

    飞凌嵌入式受邀亮相菲尼克斯电气技术研讨会,共探开放自动化新未来

    自动化、工业AI、边缘计算等前沿技术的创新实践。飞凌嵌入式作为菲尼克斯电气的重要生态合作伙伴受邀参会,飞凌嵌入式市场生态负责人在现场带来了《嵌入式核心板和vPLCne
    的头像 发表于 12-12 08:03 711次阅读
    飞凌<b class='flag-5'>嵌入式</b>受邀亮相菲尼克斯电气技术研讨会,共探<b class='flag-5'>开放</b>自动化新未来

    ARM嵌入式这样学

    相对纯软导致起步工资低,但行业大牛的工资也非常可观。另外以长远目光来看,嵌入式渗透消费电子、安全安防、汽车电子、医疗电子、电信等等各个行业的计算机领域,而每年也约有40万的人才缺口。今年机器学习(ML
    发表于 12-04 07:48

    嵌入式和FPGA的区别

    ,FPGA凭借硬件并行处理能力,能够实现纳秒级响应,远优于微秒级的嵌入式系统。 功耗效率上,嵌入式系统针对特定应用优化后能效比很高,而FPGA由于可编程特性通常功耗较大,但在特定算法加速场景下可能更高
    发表于 11-19 06:55

    2025嵌入式行业现状如何?

    2025嵌入式行业现状如何? 一、市场规模与增长趋势1.1 全球市场概况总体规模:2025年全球嵌入式系统市场规模预计突破1.2万亿美元,相当于每天诞生3个“光谷”级产业集群。 驱动因素:物联网
    发表于 08-25 11:34

    AMD 2025.1版嵌入式软件和工具的新增功能

    AMD 2025.1 版嵌入式软件和工具是面向新一代嵌入式系统开发而打造的综合平台,全面加速概念构想到部署落地。
    的头像 发表于 08-15 15:32 1417次阅读

    盘点嵌入式就业所需要的技能有哪些?

    ,把握未来的职业机遇。 1.智能汽车行业: - 熟悉嵌入式编程语言,如C/C++、Python等。 - 掌握嵌入式系统设计与开发流程,了解汽车电子控制系统的基本原理。 - 具备良好的数据结构和算法
    发表于 08-11 15:43

    Linux嵌入式和单片机嵌入式的区别?

    Linux嵌入式与单片机嵌入式在多个方面存在显著的区别,以下是详细的比较和归纳: 一、基本概念 1. Linux嵌入式: 定义:将Linux操作系统运行在嵌入式设备上的一种配置。
    发表于 06-20 09:46

    IAR引领嵌入式DevSecOps新时代

    在德国纽伦堡举办的embedded world 2025展会上,行业专家Jacob Beningo指出,嵌入式行业开发正经历一场变革,开发工具正从传统模式向DevSecOps转型。在他的最新文
    的头像 发表于 05-28 10:19 1086次阅读