从芯原的IP,看Vulkan、OpenVX、OpenXR等API的发展 您所在的位置:网站首页 vulkan是啥意思 从芯原的IP,看Vulkan、OpenVX、OpenXR等API的发展

从芯原的IP,看Vulkan、OpenVX、OpenXR等API的发展

2023-08-10 10:25| 来源: 网络整理| 查看: 265

提到Khronos,旗下比较知名的一些标准应当是很多图形、图像/视觉技术行业从业人员耳熟能详的,包括OpenGL、Vulkan等。尤其Vulkan如今也是图形API发展中的主力,去年1月份也才发布了1.2标准。

 

SIGGRAPH上经常能见到Khronos的身影,这个协会涉足API和各种标准的多样化,还是比很多人想象得更多的。除了Vulkan这种相对活跃的API,以及OpenGL和各种子集、版本,现在还相对活跃的比如顺应时代潮流,针对AI,Khronos推过面向神经网络模型的NNEF深度学习开放格式;针对机器视觉应用和库,推过OpenVX硬件加速API;针对如今仍然十分热门的AR/VR,推了目前尚年轻的OpenXR;还有支持并行执行与图形计算的IR(中间表示)SPIR......总体上就是个以跨平台、标准化为己任的行业协会。

从Khronos协会自己的介绍来看,该协会现有成员超过150家企业,其中的核心成员有15家,包括苹果、Arm、谷歌、Intel、英伟达、芯原(VeriSilicon)等。前不久芯原和Khronos一起,在上海召开了一场技术研讨会。主体上从视觉处理、3D图形、AR/VR这三个技术角度,分别自Khronos所推标准,以及底层芯原对其作出支持的IP做了技术方面的探讨。

对我们媒体而言,这个机会可一定程度了解Khronos目前在推的几个重要标准,如今的进展情况。从研讨会现场演讲者分享的主题来看,我们认为OpenVX、Vulkan、OpenXR是这次的重点,实则也正对应于研讨会的三大主题。其中比较令人耳目一新的应该是OpenXR这个面向VR与AR应用、设备的API标准。

OpenXR:从这里起步的AR/VR

OpenXR最早在2017年才正式对外宣布的,而暂行版标准则一直到2019年3月才出现,同年7月OpenXR 1.0向大众开放。OpenXR是面向AR/VR硬件的应用开发者提供的一套API,开发者可以用OpenXR实现跨设备的应用构建与部署。OpenXR的具体实施包括了微软HoloLens 2、Oculus Quest、Valve SteamVR等;另一方面应用开发支持的引擎包括虚幻引擎、Blender等。

所谓的XR,实则涵盖了AR(现实增强)、VR(虚拟现实)、MR(混合现实)等同类技术。技术研讨会上,OpenXR工作小组主席Brent Insko(同时也是英特尔AR/VR首席软件架构师)表示:“OpenXR处理应用于XR平台或设备之间的通信。”

在OpenXR出现之前,应用开发者需要针对不同平台的API做开发。所以和Khronos的其他跨平台API一样,OpenXR也是以一个统一的API来支持不同的AR/VR平台。“OpenXR包含应用程序所需驱动XR设备的各种特性,包括设备发现、时间处理、传感器追踪、输入侧的姿势计算、帧显示时序与构成,以及输出侧的触感控制等。” Brent Insko介绍说。

现有的一些进展这里就不再赘述了,包括在GitHub上发布开源的测试套件、各种开发者预览实施方案,以及获得虚幻引擎支持等——这属于Khronos针对此类标准的常规工作。Brent Insko在会上列举了一些细节。

一个典型的例子是针对AR/VR中的手部、眼部跟踪特性,跨不同供应商的OpenXR Extension扩展。针对手部追踪扩展,基于相同的标准,包含“XR中所有主要手部追踪解决方案供应商” ,不同的手部追踪技术支持典型如“Ultraleap、Oculus、Magic Leap和HoloLens的光学手部追踪”。

目前“我们已经从微软、Oculus和HTC获得运行时(runtime)官方支持,也获得了Valve、Varjo和Collabora的预览实施方案。”“我们有针对高级UI的手部、眼部追踪跨供应商的扩展,以及叠加扩展方案(支持overlay应用,将内容加入到其他应用中)。Unreal、Blender、Chrome、Edge都在使用OpenXR。而且很快将获得Unity和Minecraft的支持。”看起来OpenXR目前处在早期收获支持的状态。

芯原方面并没有怎么提及OpenXR,只是提到在AR/VR方面,Khronos API驱动了内容社区的构建,而芯原的Vivante IP为SoC供应商提供充足的算力。芯原多媒体SoC平台首席工程师妙维提到AR/VR这类解决方案,由于低功耗需求,算力/渲染需求正在向云或者边缘端转移,而不是停留在AR/VR设备终端侧。

AR/VR穿戴设备通过网络(5G/WiFi)接收来自云或边缘端的数据,这些终端设备自身的计算过程变得相对简单,“只需要包含一些视频解码、本地UI界面渲染和显示控制功能,就实现了这些穿戴设备的低功耗。”

上面这张图展示的是,依据此模型在终端设备的整个链路上,从接收编码的视频开始,到显示在AR/VR设备上,芯原都有对应的关键IP,也包括AR/VR可穿戴设备本身的摄像头在接收到外接信号之后,经过ISP和NPU处理后发出。芯原称之为“glass-to-glass”从像素进,到像素出的所有关键IP能力。

不过这套在云或边缘端做计算的模型,延迟恐怕会是个问题。所以妙维一方面提到了低延迟低功耗的各种IP子系统(低延时的视觉、低延时的显示、低延时的编码),另一方面则在于这些IP非传统基于帧的处理,而是基于对图像的切片,以实现低延时的处理通路。最终通过切片式的IP和流传输“让3ms的时延成为可能”。

恰好相关AR/VR部分的演讲中有偏应用层的方案出台,当属对上述架构的践行了。中国移动研究院高级技术人员李可提到了中国移动将XR与教育融合的过程中,藉由OpenXR的引入构建Cloud XR。AR/VR技术是可以让学校教育更生动的,不过技术层面还是需要更系统、全面的推进。“我们注意到OpenXR 1.0标准推出后得到了行业内的广泛认可。我们针对Cloud XR业务形态,需要通信行业与图形图像行业携手推动。”

上面这两张PPT,分别是在XR面向教育领域时,分布式与中央化解决方案的部署结构。分布式部署方案是将中央管理能力部署在运营商IDC数据机房中,VR渲染方案则部署于靠近学校的边缘机房,可穿戴头显设备通过5G网络连接到VR渲染服务。

而中央化的部署,则是管理节点和渲染节点都部署在学校机房,有个交换机连接到教室,实现学校本地的Cloud XR教育平台构建,运营商为之提供带宽、专线连接。

“云渲染和本地的流程是不同的。”李可说,比如针对AR/VR设备采集用户头部朝向,云端渲染后将其编码传回到本地解码、处理再显示到用户界面上。“我们树立了本地渲染和云渲染的流程,并且参考了OpenXR 1.0的规格。”OpenXR对于很多接口是没有定义的,所以有待完善的部分,“这些我们希望加到Cloud XR渲染接口中去。”

上面这张图是Cloud XR推进规划,包括今年6、7月提交Cloud XR渲染的技术架构、关键流程、术语研究报告,以及到12月份根据标准化进展做运行时开发设计等。

Vulkan:挖掘图形计算的性能

在3D图形方面,Vulkan的地位已经无需赘言了。这次研讨会上,来自Khronos协会开发者关系的Kris Rose虽然做了有关Vulkan技术更新的演讲,不过实际上没什么新东西。Kris Rose提到,“从高层级来看,Vulkan有三大优势:控制、可以移植性和性能。”

这三点其实都是显而易见的,比如控制:Vulkan是当代图形API走更偏下层路线趋势的一个重要产物。上面这张图也比较有名、用得相当多了,“上一代API有更大的驱动层,驱动程序控制着更多的流程。”“这对开发者而言,意味着更简单的设置过程,有比较便利的安全性实现。不过这也可能意味着性能不佳。”

“右边的Vulkan架构,开发者和GPU靠得更近,具有更多的控制权,而驱动程序占据的部分会更少。这对开发控制和敏捷性有不少价值。应用本身更清楚从事的工作,会比驱动程序做的更好。”更好的性能在此也就有所体现了,Kris Rose举了很多转到Vulkan的游戏提升了性能,比如Linux之上的《全面战争:三国》——主要对比的应该是OpenGL。

至于Kris Rose提到的可移植性,体现在Vulkan的跨平台,“渲染后端只需要维护一套单独的API并部署到多个平台。”Windows、Linux、Android、任天堂Switch掌机的支持自比比多说,通过MoltenVK也能实现对苹果iOS和macOS的支持。

有关Vulkan 1.2的发布,前文已经提到了,上面这张PPT给出了新版API的诸多扩展。Vulkan目前最新的特性和设计则包括了Vulkan Video(暂行方案,包括硬件加速视频压缩、解压)、光线追踪、Timeline Semaphores、Fragment Shading Rate(针对需要的部分做着重的shading,提升渲染性能和质量)等。

目前Vulkan采用率的增长势头还是相当不错,2020年有132款游戏选择了Vulkan。而今年头4个月的数据,似乎就快要超过2019年全年了。移动设备上Vulkan的内容普及情况似乎也相当不错。除此之外,在游戏领域之外,Kris Rose也列举了一些应用,比如ILM(工业光魔)在电影、电视场景的舞美虚拟化阶段,在其渲染器中开始应用Vulkan光线追踪等等。

 

“Low level的API,能够提供更有效、更可预知(predictable)的方案,把控制权交给开发者。开发者能够到更底层来编辑GPU,按照自己的想法和所需性能去做应用。” 芯原IP解决方案副总裁张慧明在提到Vulcan时说。

芯原这边对于Khronos生态的支持是全方位的,上面这张图列举了芯原的各种GPU与NPU IP对Khronos不同标准,在不同领域的支持情况。张慧明说:“芯原在市场上有数以亿计支持Khronos的产品,推向客户。而且面向不同的行业;产品包括GPU IP、NPU IP、VPU IP等,这些IP都遵循Khronos标准协议。”

“这些GPU产品和标准的Khronos支持,能够帮助客户更容易地开发应用。”“Vulkan是图形和AI领域对行业很有帮助的API。”比较有代表性的例子是NXP IMX8QM GC7000x2正在做Vulkan光线追踪开发,“根据我们的能力,更好地发挥软硬件协同工作的优势,达到更好的效果。”

这张图是Vivante GPU演进路线,“从可穿戴设备,到手机、平板,到车载,甚至PC级别的GPU IP,我们都有对应的产品形态。”以2007年初始GC500系列产品8GFLOPS算力发展至今,如今GC8000系列最高4-8TFLOPS的算力,是数百倍的性能变化。目前GC8000系列的Vivante GPU(与CC8000系列的GPGPU)和当代GPU IP一样,以shader核心数目弹性扩展的方式覆盖小算力、大算力的不同应用场景。

OpenVX:高层级抽象的视觉处理

除了AR/VR和图形计算之外,技术研讨会当天的另一个话题是图像/视觉处理与推理——主要是偏AI或者说NPU这块的,这也是如今的一个热门话题。虽然Neil Trevett针对这个话题,谈到了Khronos旗下的不少相关计算加速的API(和中间层),芯原机器学习软件副总裁查凯南在谈Vivante NPU产品线时,主要挂钩的还是OpenVX框架。

 

上面这两张图对OpenVX有个比较清晰的表述(第二张图也给出了NNEF格式所在的位置)。视觉处理现在普遍是由不同的处理器做加速的,通过OpenVX这样的高层级抽象达成这个层级的计算机视觉加速。OpenVX用的是视觉节点所谓connected graph抽象。目前OpenVX的最新版本是2019年10月份发布的1.3版。

展开CNN这条通路,OpenVX NN扩展引入了对于神经网络推理的支持。查凯南特别提到了这一部分。其ML软件整体架构如下图所示(分成运行时编译和离线编译,离线编译即编译过程离线完成,直接成为二进制可执行模型):

 

其高层级抽象结合上面这张图应该会有个更清晰的感知,训练得到的神经网络以NNEF的形式编译为IR内部表达。如前所述编译可以是离线的也可以是在线的。再下层是硬件加速API和各种不同类型的处理器。

硬件部分关乎芯原的NPU,查凯南介绍的是Vivante VIP9000系列NPU IP,应用覆盖了AI视觉、AI声音和AI像素(AI像素与AI视觉的差别在于,前者是做像素级处理,运算量与后者不在同一层级,AI像素典型的如手机中的AI ISP)。因为也是通用架构弹性扩展方案,“所以短时间内就在不同行业实现了落地”,包括IoT设备、手机、智能家居,乃至汽车、服务器级别产品。

这是Vivante VIP9000的架构,主要包括了NN 引擎和PPU可编程引擎——查凯南说NPU可理解为GPU中的shader。“这两个engine结合,基本算子都可以在NPU内部消化掉。”

VIP9000的特点主要包括PPA的相对均衡、“130+ operations都在VIP9000内独立完成”、相对丰富的数据格式支持、前文提到的OpenVX 1.3 with NN Extension,以及对上层主流软件框架的支持。

因为篇幅关系,其中的诸多细节无法再做展开。而且除了Khronos本身在做各种标准最新发展情况的阐述,以及芯原从处理单元IP层级谈支持情况外,本次研讨会还有更偏上层的参与者。比如腾讯用Vulkan实现的ncnn神经网络推理框架、阿里巴巴的MNN推理引擎等等研究人员所做的技术分享。

芯原执行副总裁、IP事业部总经理戴伟进表示,芯原是2008年开始参与到Khronos工业协会的,并且到2014年Vivante/芯原成为Khronos核心董事成员,更多参与到了Khronos战略方向中去。

戴伟进提到,Dr. Yanjun Zhang博士在超过10年的时间里是作为在Khronos协会的Vivante/芯原代表,以及软件开发副总裁的。在过去20多年中,张博士参与到了标准图形API设计中,包括OpenGL、OpenGL ES、OpenCL、Vulkan等,同时他也领衔Vivante/芯原的GPU软件团队开发了面向这些API的驱动程序。这些都表明,芯原对于Khronos标准制定以及推广的参与度都是比较高的。

戴伟进总结行业发展趋势和机会,包括汽车、AI、云高性能计算、超低功耗可穿戴设备,而这些领域皆有芯原的在视觉/图像、图形、AI等方面的参与。芯原对这些领域的覆盖,本身就在帮助Vulkan及更多Khronos标准做扩张。戴伟进提出,“Khronos这么多年来,在行业内起到了很大的作用。希望Khronos能够担当使命,和业界一同发展。”(Continue the mission, grow with the industry.)

责编:Luffy Liu



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有