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

描述

嵌入式市场对图形和计算加速的需求正在增长。相机和传感器阵列在从汽车到工业等不同行业的许多用例中越来越重要,并且正在生成需要复杂处理的越来越丰富的数据流。

与此同时,正在开发使用高质量 3D 图形甚至增强现实技术的高级用户界面。然而,部署加速处理的需要,再加上安全关键认证的复杂性,造成处理器、加速器、编译器、API 和库的混乱局面,推高了嵌入式加速器的集成成本,进而限制了创新和上市时间效率。

开放标准在帮助硬件和软件供应商成功驾驭这种复杂的技术环境方面发挥着重要作用。嵌入式市场的加速标准可以实现跨平台软件可重用性、解耦软件和硬件开发以便更轻松地部署和集成新组件、提供跨代可重用性并促进现场可升级性。这些标准降低了成本,缩短了上市时间,并降低了在引人注目的现实产品中使用推理和视觉加速等先进技术的障碍。

Khronos 加速标准

20 多年来,Khronos 创建了开放、免版税的 API 标准,使软件应用程序库和引擎能够利用硅加速的力量来满足要求苛刻的用例,例如 3D 图形、增强和虚拟现实、并行计算、视觉处理和推理。

 

Khronos 开放、免版税、互操作性标准

许多行业专家一致认为,我们正面临摩尔定律的终结,因此业界对并行计算的兴趣日益浓厚,将加速的重点从单核的频率扩展转移到拥有可用于显着加速的大型核阵列的处理器上数据并行算法。

从广义上讲,并行计算的 Khronos 加速标准可以分为两组。高级编程框架(例如 SYCL 和 OpenVX)专注于简化开发,并具有跨多个硬件架构的有效性能可移植性。相比之下,OpenCL 和 Vulkan 等低级 API 使用内核和着色器程序的 SPIR-V 中间表示,提供对硬件资源的直接、显式访问,以实现最大的灵活性和控制。

SYCL(读作“镰刀”)使异构处理器的代码能够与主机应用程序代码一起编写在“单一源”文件中,使用标准 C++ 在各种硬件上实现可移植加速。SYCL 通常会将要卸载到加速处理器上的 C++ 应用程序部分编译成较低级别的 API,例如 OpenCL。

OpenVX(VX 代表“视觉加速”)提供图形级抽象,通过连接一组函数或“节点”来构建成像和推理功能。这种高级抽象使芯片供应商能够有效地优化他们的 OpenVX 驱动程序,以便在几乎任何处理器架构上高效执行。OpenVX 图形可以结合视觉处理和神经网络节点进行全局优化,并且可以直接摄取 Khronos 的 NNEF 格式的完整训练网络,这提供了来自不同神经网络框架的开源转换器的稳定规范。

Vulkan是对现代 GPU 进行高效、跨平台访问的唯一开放标准。Vulkan 可以使用计算着色器以及图形渲染加速任何兼容 GPU 上的计算操作。Vulkan 为下一代 3D 图形和计算的开发人员带来了许多好处,包括更简单的驱动程序、直接和显式的 GPU 控制、用于多线程应用程序的多个图形、命令和 DMA 队列,以及用于多种着色语言的离线前端编译器。

OpenCL是一种低级标准,用于对 PC、服务器、移动设备和嵌入式设备(包括 GPU、DSP 和 FPGA)中的各种异构处理器进行跨平台并行编程。OpenCL 提供基于 C 和 C++ 的语言来编写内核程序,这些程序可以在系统中的任何处理器上并行编译和执行,并明确控制在哪些处理器上执行哪些内核。OpenCL 通过提供更简单的编程模型、相对轻量级的运行时、更高的语言灵活性和更严格定义的计算操作精度来补充仅 GPU 的 API。

旨在简化功能安全认证的 API

安全认证在汽车、自动驾驶、医学成像、交通运输、工业、能源和航空电子设备等许多市场中至关重要。计算或显示子系统故障会带来重大安全风险的系统需要系统级功能安全认证并符合安全标准,例如 RTCA DO-178C A 级/EASA ED-12C A 级(航空电子设备)、ISO 26262 ASIL D(汽车)、IEC 61508(工业)和 IEC 62304(医疗),并遵守 MISRA 和 AUTOSAR 等行业组织的指导方针。

这些市场对高级加速图形和计算的需求正在增长,这些加速器必须包含在系统级安全认证中。安全认证的高成本推动了开放标准加速 API 的开发,这些 API 旨在通过消除嵌入式市场不必要的功能、增加运行时确定性以及通过减少 API 表面积来简化系统级认证过程。提供强大的错误处理。

从 2003 年的 OpenGL SC 1.0 开始,Khronos 拥有 20 年为安全关键市场调整主流加速 API 的历史。这些举措利用经过验证的 API 和多种交付芯片实现,并且开发人员已经熟悉这些 API。

最近发布的 Vulkan SC 1.0 简化了 Vulkan SC 1.2 API 并提高了运行时确定性。Vulkan SC 管道可以离线编译和静态分析,以了解数据流和内存使用情况。然后可以在设备创建时将管道执行所需的内存保留为固定大小的池,以最大限度地减少总体内存使用量并避免运行时内存分配的需要。Vulkan SC 使系统实施者能够部署 GPU 加速的图形和计算来满足安全关键义务,并以更低的成本和工作量提供认证证据包。即使没有正式的安全认证,Vulkan SC 对于实时嵌入式应用程序也非常宝贵。

OpenVX 具有安全关键型配置文件,可以快速部署经过训练的神经网络模型,使用 OpenVX 作为推理引擎,非常适合安全关键型市场。OpenVX 安全关键配置文件通过将 OpenVX 图的开发与其执行分开,使运行时能够摄取已离线预编译的二进制图定义,从而最大限度地减少运行时 API 表面积和运行时大小。OpenVX 规范还使用功能要求标签编号进行了注释,并且 OpenVX 标头符合 MISRA-C。

Khronos 最近还成立了SYCL 安全关键探索论坛,以调查在安全关键市场中使用 SYCL 标准 C++ 单源编程模型加速计算的通用并行编程 API 的行业要求。以硬件为中心的 API 设计越来越多地与复杂的编译器技术融合,在利用硅加速进行计算加速时,将可编程灵活性和可移植性显着提升到新的水平。SYCL SC 探索性论坛处于发现阶段,以便在开始标准化工作之前充分了解行业要求并就行业要求达成共识。任何公司都被邀请免费加入探索论坛,并且没有知识产权许可义务。

标准组织携手合作

行业中有许多标准开发组织 (SDO),每个组织都有自己的专业领域,因此 SDO 必须建立富有成效的联络关系以避免重复工作,并确保来自不同组织的不同标准能够很好地协同工作。

Khronos 最近宣布与汽车电子、半导体和软件行业的汽车制造商、供应商、服务提供商和公司的全球发展合作伙伴 AUTOSAR 建立联系。这项新的合作协议鼓励信息的有效流动,同时尊重两个组织的机密性和知识产权框架。它使 Khronos 成员能够接收有关 AUTOSAR 活动的信息和见解,反之亦然。最终目标是让 AUTOSAR 用例和需求指导和影响 Khronos 标准的演变,并使 AUTOSAR 平台能够有效地利用这些 Khronos API。

在过去的两年里,Khronos 还与欧洲机器视觉协会 (EMVA) 密切合作,建立了 Khronos 相机工作组,该工作组现在正在构建一个新的开放标准 API,用于控制嵌入式相机。

复杂的光学系统、图像传感器和视觉处理器的发展正在加速,嵌入式系统通常将相机传感器与图像、视觉和推理加速器紧密集成到独立的系统中。虽然上述 Khronos API 可用于视觉和推理加速,但没有广泛采用的开放标准、跨供应商 API 来简化新相机子系统的软件集成,从而导致相机技术的集成成本过高。

API

对开放标准相机 API 的需求

Khronos 和 EMVA 成员正在设计的相机 API 将通过精确定义的接口为应用程序、库和框架提供对相机运行时的显式控制,从而实现应用程序代码的跨供应商可移植性,并更轻松地与新相机和传感器进行系统集成。该 API 还将跨多代相机和传感器保留应用程序代码,并实现对传感器流生成的复杂控制,以提高下游处理的效率。

API

目前正在设计的 Khronos Camera API 的范围

参与构建您需要的开放标准

嵌入式产品中越来越多地使用计算、视觉和推理加速的集成带来了重大的新商机,Khronos 正在开发一个不断增长的开放、免版税 API 标准系列,以满足嵌入式和安全关键型快速发展的需求市场。

审核编辑:郭婷

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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分