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

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

3天内不再提示

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

星星科技指导员 来源:嵌入式计算设计 作者:Neil Trevett 2022-08-15 14:13 次阅读

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

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

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

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

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

pYYBAGL55EiAR1qpAAJsU7-b5tg203.png

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

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

poYBAGL55FOATFliAAIUQ-kcBdE416.png

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

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

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

SYCL - C++ 单源异构编程

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

pYYBAGL55FyACtofAAJERSqjd9Y181.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 所示的开放标准来解决。

pYYBAGL55GWALpnsAAQW2V6fJME861.png

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

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

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

OpenVX – 便携式加速视觉处理

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

poYBAGL55G2AQRB5AAJ7UTKJOIU058.png

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

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

OpenCL – 异构并行编程

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

poYBAGL55HaAeFzMAAEivinRwn8848.png

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

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

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

审核编辑:郭婷

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

    关注

    68

    文章

    18269

    浏览量

    222118
  • 嵌入式
    +关注

    关注

    4981

    文章

    18278

    浏览量

    288374
  • 机器学习
    +关注

    关注

    66

    文章

    8120

    浏览量

    130550
收藏 人收藏

    评论

    相关推荐

    用OpenCV和Vivado HLS加速基于Zynq SoC的嵌入式视觉应用开发

    的基础所在。嵌入式视觉系统的开发  嵌入式视觉技术要在计算平台上运行智能计算机视觉算法。对许多用户来说,
    发表于 04-21 15:49

    嵌入式视觉的发展机遇

    相类似,嵌入式视觉技术有望在今后10年得到广泛应用。 很明显,嵌入式视觉技术能够为多种应用带来巨大的价值(图1)。两个例子是,Mobileye基于
    发表于 05-16 10:45

    嵌入式视觉技术是什么?

    r随着功能越来越强大的处理器、图像传感器、存储器和其他半导体器件以及相关算法的出现,可以在多种嵌入式系统中实现计算机视觉功能,通过视频输入来分析周围环境。微软的Kinect游戏控制器
    发表于 08-22 06:43

    如何推动嵌入式视觉技术发展?

    新的成像应用正在蓬勃发展,从工业 4.0 中的协作机器人,到无人机消防或用于农业,再到生物特征面部识别,再到家庭中的护理点手持医疗设备。出现这些新应用程序的一个关键因素是,嵌入式视觉比以往任 何时
    发表于 10-24 08:11

    嵌入式机器视觉系统有什么特性?怎么优化?

    介绍了基于ARM+DSP架构的嵌入式机器视觉系统的特性,分析了制约嵌入式机器视觉系统性能的因素。从操作系统和应用程序方面,讨论了嵌入式机器
    发表于 03-11 06:47

    浅析MATLAB和Simulink嵌入式视觉应用

    的 MATLAB 和 Simulink 工具,为嵌入式视觉系统设计算法和系统模型。借助用于采集摄像机和其他传感器实时图像和视频数据的应用程序,以及用于处理、分析、仿真和可视化这些数据的
    发表于 12-04 08:00

    嵌入式设置的主要优点有哪些

    在这种新的嵌入式设置中,各个组件组合在一起成为一个设备,因此机器视觉成为嵌入式视觉。机器视觉是指机器在
    发表于 12-20 06:37

    推动嵌入式视觉的激增有哪些因素呢

    近年来,嵌入式视觉在市场广泛的应用,并取得了前所未有的增长,那么推动嵌入式视觉的激增有哪些因素呢?适用于各种实际应用程序以前计算机
    发表于 12-21 08:15

    嵌入式视觉标准视觉有哪些差异呢

    嵌入式视觉”与标准机器视觉系统之间的明显区别有时并不容易。进行分类的一种方法是将它们分解为三个部分。第一部分:包括带摄像头和独立PC的经典视觉
    发表于 12-23 06:41

    嵌入式视觉系统和标准的有什么不同

    嵌入式视觉”与标准机器视觉系统之间的明显区别有时并不容易。
    发表于 09-11 11:04 364次阅读

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

      OpenCL 在整个行业中广泛使用,为计算、视觉和机器学习库、引擎和编译器提供最低的“接近金属”执行层。
    的头像 发表于 06-06 16:29 962次阅读
    <b class='flag-5'>用于</b><b class='flag-5'>加速</b><b class='flag-5'>嵌入式</b><b class='flag-5'>视觉</b>和<b class='flag-5'>推理</b>的<b class='flag-5'>开放</b><b class='flag-5'>标准</b>

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

      OpenCL 在整个行业中广泛使用,为计算、视觉和机器学习库、引擎和编译器提供最低的“接近金属”执行层。
    的头像 发表于 06-30 11:23 692次阅读
    <b class='flag-5'>用于</b><b class='flag-5'>加速</b><b class='flag-5'>嵌入式</b><b class='flag-5'>视觉</b>和<b class='flag-5'>推理</b>的<b class='flag-5'>开放</b><b class='flag-5'>标准</b>

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

      OpenCL 在整个行业中广泛使用,为计算、视觉和机器学习库、引擎和编译器提供最低的“接近金属”执行层。
    的头像 发表于 07-08 16:07 508次阅读
    <b class='flag-5'>用于</b><b class='flag-5'>加速</b><b class='flag-5'>嵌入式</b><b class='flag-5'>视觉</b>和<b class='flag-5'>推理</b>的<b class='flag-5'>开放</b><b class='flag-5'>标准</b>

    开放加速标准如何推动安全关键型发展

      嵌入式产品中越来越多地使用计算、视觉推理加速的集成带来了重大的新商机,Khronos 正在开发一个不断增长的开放、免版税 API
    的头像 发表于 08-17 09:21 580次阅读
    <b class='flag-5'>开放</b>式<b class='flag-5'>加速</b><b class='flag-5'>标准</b>如何推动安全关键型发展

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

    许多互操作部分需要协同工作来训练神经网络,并将其成功部署在嵌入式加速推理平台上,如图 1 所示。有效的神经网络训练通常需要大型数据集,使用浮点精度,并在功能强大的 GPU 加速桌面机器
    的头像 发表于 11-29 16:33 392次阅读
    <b class='flag-5'>加速</b><b class='flag-5'>嵌入式</b><b class='flag-5'>视觉</b>和<b class='flag-5'>推理</b>的<b class='flag-5'>开放</b><b class='flag-5'>标准</b>:行业概述