CN117112165A - 虚拟现实应用任务的处理方法、装置、虚拟现实*** - Google Patents
虚拟现实应用任务的处理方法、装置、虚拟现实*** Download PDFInfo
- Publication number
- CN117112165A CN117112165A CN202311012427.9A CN202311012427A CN117112165A CN 117112165 A CN117112165 A CN 117112165A CN 202311012427 A CN202311012427 A CN 202311012427A CN 117112165 A CN117112165 A CN 117112165A
- Authority
- CN
- China
- Prior art keywords
- computing
- task
- processed
- processing
- virtual reality
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title abstract description 11
- 238000012545 processing Methods 0.000 claims abstract description 145
- 238000004364 calculation method Methods 0.000 claims abstract description 96
- 238000009877 rendering Methods 0.000 claims abstract description 95
- 238000000034 method Methods 0.000 claims abstract description 64
- 238000007499 fusion processing Methods 0.000 claims abstract description 25
- 230000008569 process Effects 0.000 claims abstract description 17
- 238000013500 data storage Methods 0.000 claims description 37
- 230000003993 interaction Effects 0.000 claims description 37
- 238000004590 computer program Methods 0.000 claims description 16
- 238000013527 convolutional neural network Methods 0.000 claims description 14
- 238000013473 artificial intelligence Methods 0.000 claims description 7
- 230000004927 fusion Effects 0.000 claims description 6
- 238000003860 storage Methods 0.000 claims description 6
- 238000010586 diagram Methods 0.000 description 14
- 238000004891 communication Methods 0.000 description 12
- 230000001133 acceleration Effects 0.000 description 9
- 230000006870 function Effects 0.000 description 9
- 238000007792 addition Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 230000003068 static effect Effects 0.000 description 3
- 230000003190 augmentative effect Effects 0.000 description 2
- 238000013475 authorization Methods 0.000 description 2
- 238000005265 energy consumption Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000003384 imaging method Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0464—Convolutional networks [CNN, ConvNet]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/02—Non-photorealistic rendering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/006—Mixed reality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/484—Precedence
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computer Hardware Design (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Image Generation (AREA)
Abstract
本申请涉及一种虚拟现实应用任务的处理方法、装置、虚拟现实***。所述方法包括:在读取到虚拟现实应用的计算指令的情况下,将所述虚拟现实应用的待处理任务划分为不同类型的计算子任务;采用与各个计算子任务的类型相匹配的计算加速器对所述各个计算子任务进行并行处理,得到所述各个计算子任务的处理结果;将所述各个计算子任务的处理结果划分为顶点数据和与所述顶点数据对应的纹理数据,对所述顶点数据进行运算处理,并将所述顶点数据的运算处理结果和所述顶点数据对应的纹理数据进行融合处理得到所述待处理任务的图形渲染结果。采用本方法能够提升虚拟现实应用任务的运行效率。
Description
技术领域
本申请涉及虚拟现实技术领域,特别是涉及一种虚拟现实应用任务的处理方法、装置、虚拟现实***。
背景技术
元宇宙是通过计算机模拟出的沉浸式虚拟空间,是人与虚拟物体、数字资产之间的交互。元宇宙的兴起引发互联网产业界的广泛关注,同时也推动了虚拟现实(VirtualReality,VR)与增强现实(Augmented Reality,AR)技术的发展,增加了人们对VR/AR设备的需求。
传统技术中,VR/AR设备由中央处理器(Central Processing Unit,CPU)、图形处理器(Graphic Processing Unit,GPU)、显示器、存储器和通信模块等构成。
然而,CPU专用计算能力不足,无法高效处理VR/AR应用的高密集计算任务。GPU计算时功耗较高,且芯片成本较高。除此之外,受设备尺寸与电池大小的约束,VR/AR设备可用的片上***(System on Chip,SoC)面积、计算和存储资源十分有限。以上因素导致了目前VR/AR设备计算能力受限,从而造成了VR/AR应用任务的运行效率较低。
发明内容
本申请实施例提供一种虚拟现实应用任务的处理方法、装置、虚拟现实***,可以提升虚拟现实应用任务的运行效率。
一种虚拟现实应用任务的处理方法,所述方法包括:
在读取到虚拟现实应用的计算指令的情况下,将所述虚拟现实应用的待处理任务划分为不同类型的计算子任务;
采用与各个计算子任务的类型相匹配的计算加速器对所述各个计算子任务进行并行处理,得到所述各个计算子任务的处理结果;
将所述各个计算子任务的处理结果划分为顶点数据和与所述顶点数据对应的纹理数据,对所述顶点数据进行运算处理,并将所述顶点数据的运算处理结果和所述顶点数据对应的纹理数据进行融合处理得到所述待处理任务的图形渲染结果。
在一种可能的实现方式中,所述方法还包括:
在所述虚拟现实应用存在多个待处理任务的情况下,根据所述虚拟现实应用的待处理任务的数量和每个待处理任务的优先级对所述多个待处理任务的计算子任务进行调度。
在一种可能的实现方式中,所述方法还包括:
根据所述待处理任务的数据量大小、所述待处理任务到达顺序、待处理任务的时延容忍度和待处理任务发送到处理器的时间中的一者或多者确定所述待处理任务的优先级。
在一种可能的实现方式中,所述计算子任务的类型是根据所述计算子任务的计算需求确定的。
在一种可能的实现方式中,所述计算子任务的类型包括矢量计算类型、人工智能计算类型和卷积神经网络计算类型。
在一种可能的实现方式中,所述多个待处理任务的计算子任务的调度是基于异步计算指令集实现的,所述并行处理是基于并行计算指令集实现的,所述顶点数据运算是基于图形渲染指令集实现的,所述异步计算指令集、所述并行计算指令集和所述图形渲染指令集为RISC-V的扩展指令集。
在一种可能的实现方式中,所述将所述各个计算子任务的处理结果划分为顶点数据和与所述顶点数据对应的纹理数据,对所述顶点数据进行运算处理,并将所述顶点数据的运算处理结果和所述顶点数据对应的纹理数据进行融合处理得到所述待处理任务的图形渲染结果,包括:
将所述各个计算子任务的处理结果输入多路复用器,输出每个计算子任务的顶点数据和纹理数据;
将各个计算子任务的顶点数据输入可编程顶点引擎进行运算处理,得到已变换和点亮的顶点数据;
将所述已变换和点亮的顶点数据和所述纹理数据输入固定流水线分片引擎进行融合处理,得到所述待处理任务的图形渲染结果。
在一种可能的实现方式中,所述方法还包括:
从数据存储模块读取指令;
对所述指令进行解耦,得到内存访问指令与所述计算指令。
在一种可能的实现方式中,所述方法还包括:
获取人机交互数据并将所述人机交互数据存储至所述数据存储模块,所述人机交互数据对应一个或多个所述待处理任务。
一种虚拟现实应用任务的处理装置,包括:
任务划分模块,用于在读取到虚拟现实应用的计算指令的情况下,将所述虚拟现实应用的待处理任务划分为不同类型的计算子任务;
并行处理模块,用于采用与各个计算子任务的类型相匹配的计算加速器对所述各个计算子任务进行并行处理,得到所述各个计算子任务的处理结果;
融合模块,用于将所述各个计算子任务的处理结果划分为顶点数据和与所述顶点数据对应的纹理数据,对所述顶点数据进行运算处理,并将所述顶点数据的运算处理结果和所述顶点数据对应的纹理数据进行融合处理得到所述待处理任务的图形渲染结果。
在一种可能的实现方式中,所述装置还包括:
任务调度模块,用于在所述虚拟现实应用存在多个待处理任务的情况下,根据所述虚拟现实应用的待处理任务的数量和每个待处理任务的优先级对所述多个待处理任务的计算子任务进行调度。
在一种可能的实现方式中,所述装置还包括:
优先级确定模块,用于根据所述待处理任务的数据量大小、所述待处理任务到达顺序、待处理任务的时延容忍度和待处理任务发送到处理器的时间中的一者或多者确定所述待处理任务的优先级。
在一种可能的实现方式中,所述计算子任务的类型是根据所述计算子任务的计算需求确定的。
在一种可能的实现方式中,所述计算子任务的类型包括矢量计算类型、人工智能计算类型和卷积神经网络计算类型。
在一种可能的实现方式中,所述多个待处理任务的计算子任务的调度是基于异步计算指令集实现的,所述并行处理是基于并行计算指令集实现的,所述顶点数据运算是基于图形渲染指令集实现的,所述异步计算指令集、所述并行计算指令集和所述图形渲染指令集为RISC-V的扩展指令集。
在一种可能的实现方式中,所述融合模块还用于:
将所述各个计算子任务的处理结果输入多路复用器,输出每个计算子任务的顶点数据和纹理数据;
将各个计算子任务的顶点数据输入可编程顶点引擎进行运算处理,得到已变换和点亮的顶点数据;
将所述已变换和点亮的顶点数据和所述纹理数据输入固定流水线分片引擎进行融合处理,得到所述待处理任务的图形渲染结果。
在一种可能的实现方式中,所述装置还包括:
指令读取模块,用于从数据存储模块读取指令;
指令解耦模块,用于对所述指令进行解耦,得到内存访问指令与所述计算指令。
在一种可能的实现方式中,所述装置还包括:
数据获取模块,用于获取人机交互数据并将所述人机交互数据存储至所述数据存储模块,所述人机交互数据对应一个或多个所述待处理任务。
一种虚拟现实***,包括数据存储模块、处理器、计算加速模块、图形渲染模块和显示模块;
所述数据存储模块,用于存储虚拟现实应用的指令以及所述虚拟现实应用的待处理任务的人机交互数据和图形渲染结果;
所述处理器,用于在从所述数据存储模块读取到的指令为计算指令的情况下,将所述虚拟现实应用的待处理任务划分为不同类型的计算子任务;将各个子任务发送至与各个计算子任务的类型相匹配的计算加速器;以及,将所述计算加速器返回的各个计算子任务的处理结果发送至所述图形渲染模块;
所述计算加速器,用于对接收到的计算子任务进行并行处理得到所述计算子任务的处理结果,并将所述计算子任务的处理结果发送至所述处理器;
所述图形渲染模块,用于将所述各个计算子任务的处理结果划分为顶点数据和与所述顶点数据对应的纹理数据,对所述顶点数据进行运算处理,并将所述顶点数据的运算处理结果和所述顶点数据对应的纹理数据进行融合处理得到所述待处理任务的图形渲染结果;
所述显示模块,用于显示所述图形渲染结果。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
在读取到虚拟现实应用的计算指令的情况下,将所述虚拟现实应用的待处理任务划分为不同类型的计算子任务;
采用与各个计算子任务的类型相匹配的计算加速器对所述各个计算子任务进行并行处理,得到所述各个计算子任务的处理结果;
将所述各个计算子任务的处理结果划分为顶点数据和与所述顶点数据对应的纹理数据,对所述顶点数据进行运算处理,并将所述顶点数据的运算处理结果和所述顶点数据对应的纹理数据进行融合处理得到所述待处理任务的图形渲染结果。
一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现本申请实施例提供的虚拟现实应用任务的处理方法,该方法可以为:
在读取到虚拟现实应用的计算指令的情况下,将所述虚拟现实应用的待处理任务划分为不同类型的计算子任务;
采用与各个计算子任务的类型相匹配的计算加速器对所述各个计算子任务进行并行处理,得到所述各个计算子任务的处理结果;
将所述各个计算子任务的处理结果划分为顶点数据和与所述顶点数据对应的纹理数据,对所述顶点数据进行运算处理,并将所述顶点数据的运算处理结果和所述顶点数据对应的纹理数据进行融合处理得到所述待处理任务的图形渲染结果。
上述虚拟现实应用任务的处理方法、装置、虚拟现实***,首先,通过将任务更细粒度的划分成多个计算子任务并对各计算子任务进行并行处理,提升了计算子任务的计算效率;同时,通过采用与计算子任务的类型相匹配的计算加速器处理计算子任务,在降低了对处理器计算能力要求的同时,进一步提升了子计算任务的计算效率;然后,通过对顶点数据拆分处理,提升了图形渲染效率。因此,上述虚拟现实应用任务的处理方法、装置、虚拟现实***,有效提升了虚拟现实应用任务的运行效率。
附图说明
图1为本申请实施例提供的虚拟现实***的架构示意图;
图2为本申请实施例提供的并行计算指令集的格式示意图;
图3为本申请实施例提供的异步计算指令集的格式示意图;
图4为本申请实施例提供的图形渲染指令集的格式示意图;
图5为本申请实施例提供的图形渲染模块的结构框图;
图6为本申请实施例提供的虚拟现实应用任务的处理方法的流程示意图;
图7为本申请实施例提供的虚拟现实应用任务的处理方法的流程示意图;
图8为本申请实施例提供的虚拟现实应用任务的处理装置的结构框图;
图9为本申请实施例提供的虚拟现实设备的结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
图1为本申请实施例提供的虚拟现实***的架构示意图。本申请实施例提供的虚拟现实应用任务的处理方法可以应用于该***中。需要说明的是,本申请实施例中涉及的虚拟现实***既包括VR***又包括AR***,也可以称为VR/AR***。同样的,本申请实施例中涉及的虚拟现实设备也可以称为VR/AR设备,虚拟现实应用也可以称为VR/AR应用。如图1所示,所述虚拟现实***可以分为***软件层和***硬件层。
如图1所示,***软件层可以包括优先级判断模块、任务管理模块和设备驱动模块。
不同的任务执行顺序会影响***的运行效率,且任务的紧急性与时效性会影响软硬件协同效率。因此,可以基于任务的优先级对任务进行调度。优先级判断模块可以基于任务的数据量大小、任务到达顺序、任务的时延容忍度和任务发送到处理器的时间中的一者或多者进行优先级判断。例如,任务的数据量越大、任务到达顺序越靠前、任务的时延容忍度越小和任务发送到处理器的时间越早,则优先级判断模块可以确定该任务的优先级越高。任务管理模块可以根据当前任务数量与各任务的优先级进行任务调度和管理,并控制***硬件层中的任务调度模块。设备驱动模块可以用于***硬件层中的通信传感模块、显示模块、计算加速器和图形渲染模块的驱动程序。
如图1所示,***硬件层包括:通信传感模块、数据存储模块、处理器、计算加速器、图形渲染模块以及显示模块。
通信传感模块用于获取人机交互数据,并将所述人机交互数据存储至数据存储模块。人机交互数据可以为动作数据(例如用户转身、走动、抬手或者扭头产生的运送数据)或者音频数据(例如用户发出的语音指令)。通信传感模块能够实现用户与虚拟现实***之间的通信。
数据存储模块用于存储人机交互数据、虚拟现实应用任务的指令以及图形渲染结果等数据。其中,人机交互数据可以触发虚拟现实应用的任务,触发的任务数量可能是一个也可以是多个。处理器可以从数据存储模块读取指令进行任务处理。图形渲染模块可以将输出的图形渲染结果存储在数据存储模块。显示模块可以从数据存储模块读取图形渲染结果并进行显示。数据存储模块可以通过PCIe(Peripheral Component Interconnectexpress)总线与通信传感模块、处理器、图形渲染模块以及显示模块等模块连接。当前数据存储模块还可以通过其他类型的总线与其他模块连接,对此本申请实施例不做限制。
处理器可以用于在从所述数据存储模块读取到的指令为计算指令的情况下,将所述虚拟现实应用的待处理任务划分为不同类型的计算子任务;将各个计算子任务发送至与各个计算子任务的类型相匹配的计算加速器。
处理器是VR/AR***硬件层的核心,是基于开源的RISC-V指令集架构设计的。本申请实施例中提供的处理器为集成RISC-V架构的处理器,具有强大的图像处理功能,是最符合虚拟现实产品需求的控制芯片。比如,动态帧速率切换功能可以从1Hz直接切换到240Hz不需要额外过渡时间,对应快速的游戏场景;高动态范围图像(High Dynamic Range,HDR)功能可以提供给用户更宽广的色域及细节体验等。开源指令集RISC-V相比于其他指令集可以自由地用于任何目的,允许任何人设计、制造和销售RISC-V芯片和软件。
如图1所示,处理器包括指令操作模块、任务调度模块、高速缓存区,并扩展了三种指令集。
指令操作模块可以用于指令解耦与指令映射。处理器读取指令后,指令操作模块将指令解耦为内存访问指令与计算指令,并将内存访问之后映射到数据存储模块,以及将计算指令映射到计算加速器。其中,内存访问指令表示访问内存的指令,包括向内存中存储数据的指令和从内存中获取数据的指令。计算指令表示对虚拟现实应用的任务进行处理的指令。
任务调度模块受***软件层的任务管理模块控制,根据任务数量与各任务的优先级操作多任务调度。
高度缓存区可以用于缓存处理器计算过程中使用的数据和指令。
扩展的指令集包括并行计算计算指令集、异步计算指令集和图形渲染指令集。在本申请实施例中,采用指令扩展的方式自定义了上述指令集,从而提高了任务的执行效率以及提升了计算性能。当然,以上仅为扩展指令集的示例性说明,并不用于限制本申请实施例扩展的指令集,本申请实施例还可以扩展其他指令集。下面对上述三种指令集进行详细说明。
由于VR/AR应用任务可以更细粒度地划分成多个计算子任务,各计算子任务可以并行地计算,以加快计算效率。并行指令集中包括用于进行并行计算的指令,这些指令可以称为并行计算指令。
图2为本申请实施例提供的并行计算指令集的格式示意图。如图2所示,并行计算指令集中包括4条并行计算指令,分别为并行加法计算指令(PACADD指令)、并行乘法计算指令(PACMUL指令)、并行存储指令(PACSTORE指令)和并行加载指令(PACLOAD指令)。如图2所示,并行计算指令为32位。
PACADD指令可以用于运算并行加法。其中,第0位至第6位为操作码(opcode),取值1001010;第7位至第11位为目的寄存器,用于存储计算结果;第12位至第14位为func3,取值001;第15位至第19位为源寄存器1,第20位至第24位为源寄存器2,分别用于获取运算对象;第25位至第31位为立即数,取值imm[6:0]。
PACMUL指令可以用于运算并行乘法。其中,第0位至第6位为操作码(opcode),取值1001010;第7位至第11位为目的寄存器,用于存储计算结果;第12位至第14位为func3,取值001;第15位至第19位为源寄存器1,第20位至第24位为源寄存器2,分别用于获取运算对象;第25位至第31位为立即数,取值imm[6:0]。
PACSTORE指令可以用于向内存存储计算子任务地址。其中,第0位至第6位为操作码(opcode),取值1001010;第7位至第11位为目的寄存器;第12位至第14位为func3,取值000;第15位至第19位为源寄存器1;第20位至第24位为状态寄存器,用于标识计算子任务的完成状态,以便下一步的任务结果整合;第25位至第31位为func7,取值0000001。
PACLOAD指令可以用于从内存加载计算子任务地址。其中,第0位至第6位为操作码(opcode),取值1001010;第7位至第11位为目的寄存器。第12位至第14位为func3,取值000;第15位至第19位为源寄存器1;第20位至第24位为状态寄存器,用于标识计算子任务的完成状态,以便下一步的任务结果整合;第25位至第31位为func7,取值0000010。
当然,以上仅为并行计算指令的示例性说明,本申请实施例提供的并行计算指令集还可以包括其他并行计算指令,对此本申请实施例不做限制。
当各种不同的任务细分为计算子任务后,由于不同的应用任务的处理时间不同,在计算加速器上会可能出现滞后现象,例如,任务1的在矢量计算加速器上的计算子任务B先于在AI计算模块上的计算子任务A完成,子任务B需要等待计算子任务A完成后进行下一步运算,而此时矢量计算加速器是空闲的。为了提高计算效率,本申请实施例引入具有优先级的多任务异步计算。
图3为本申请实施例提供的异步计算指令集的格式示意图。如图3所示,异步计算指令集中包括2条异步计算指令,分别为异步存储指令(ASCSTORE指令)和异步加载指令(ASCLOAD指令)。如图3所示,异步计算指令为32位。
ASCSTORE指令可以用于向内存存储任务地址。其中,第0位至第6位为操作码(opcode),取值1001010;第7位至第11位为目的寄存器;第12位至第14位为func3,取值000;第15位至第19位为源寄存器1。第20位至第24位为优先级寄存器,用于标识各任务的优先级状态;第25位至第31位为func7,取值0000010。
ASCLOAD指令可以用于从内存加载任务地址。其中,第0位至第6位为操作码(opcode),取值1001010;第7位至第11位为目的寄存器;第12位至第14位为func3,取值000;第15位至第19位为源寄存器1。第20位至第24位为状态寄存器,用于标识各任务的优先级状态;第25位至第31位为func7,取值0000011。
图形渲染指令集扩展是用于加速图形处理,更具体地,是加速顶点处理,此扩展添加了对图形渲染模块的支持。
图4为本申请实施例提供的图形渲染指令集的格式示意图。如图4所示,图形渲染指令集中包括5条图形渲染指令,分别为顶点加法运算指令(GREADD指令)、顶点三次方运算指令(GREDP3指令)、顶点指数运算指令(GREEXP指令)、顶点对数运算指令(GRELOG指令)和顶点三角函数运算指令(GRECOS指令)。
GREADD指令可以用于加速顶点加法运算。其中,第0位至第6位为操作码(opcode),取值1001010;第7位至第11位为目的寄存器,用于存储计算结果;第12位至第14位为func3,取值011;第15位至第19位为源寄存器1,第20位至第24位为源寄存器2,分别用于获取运算对象;第25位至第31位为立即数,取值imm[6:0]。
GREDP3指令可以用于加速顶点三次方运算。其中,第0位至第6位为操作码(opcode),取值1001010;第7位至第11位为目的寄存器,用于存储计算结果;第12位至第14位为func3,取值100;第15位至第19位为源寄存器1,第20位至第24位为源寄存器2,分别用于获取运算对象;第25位至第31位为立即数,取值imm[6:0]。
GREEXP指令可以用于加速顶点指数运算。其中,第0位至第6位为操作码(opcode),取值1001010;第7位至第11位为目的寄存器;第12位至第14位为func3,取值000;第15位至第19位为源寄存器1,第20位至第24位为源寄存器2,分别用于获取运算对象;第25位至第31位为func7,取值0000100。
GRELOG指令可以用于加速顶点对数运算。其中,第0位至第6位为操作码(opcode),取值1001010;第7位至第11位为目的寄存器;第12位至第14位为func3,取值000;第15位至第19位为源寄存器1,第20位至第24位为源寄存器2,分别用于获取运算对象;第25位至第31位为func7,取值0000101。
GRECOS指令可以用于加速顶点三角函数运算。其中,第0位至第6位为操作码(opcode),取值1001010;第7位至第11位为目的寄存器;第12位至第14位为func3,取值000;第15位至第19位为源寄存器1,第20位至第24位为源寄存器2,分别用于获取运算对象;第25位至第31位为func7,取值0000110。
计算加速器可以用于对接收到的计算子任务进行并行处理得到所述计算子任务的处理结果,并将所述计算子任务的处理结果发送至所述处理器。处理器还可以用于将所述计算加速器返回的各个计算子任务的处理结果发送至图形渲染模块。在本申请实施例中,将任务划分为计算子任务之后,可以采用与各个计算子任务的类型相匹配的计算加速器对所述各个计算子任务进行并行处理。可选的,计算加速器包括矢量计算加速器、AI计算加速器与卷积神经网络(Convolutional Neural Network,CNN)计算加速器,各个计算加速器可以更好地适配VR/AR应用任务的计算需求,降低能耗开销。
图形渲染模块可以用于将所述各个计算子任务的处理结果划分为顶点数据和与所述顶点数据对应的纹理数据,对所述顶点数据进行运算处理,并将所述顶点数据的运算处理结果和所述顶点数据对应的纹理数据进行融合处理得到所述待处理任务的图形渲染结果。
图5为本申请实施例提供的图形渲染模块的结构框图。如图5所示,图形渲染模块可以包括多路复用器、可编程顶点引擎和固定流水线分片引擎,用以加速图形渲染,增强成像效果。多路复用器可以用于对接收到各计算子任务的处理结果进行复用,将处理结果拆分成顶点数据和纹理数据。可编程顶点引擎可以对顶点数据进行处理,得到已变换和点亮的顶点数据。可编程顶点引擎可以包括特殊函数单元(SPU),目的是处理输入的顶点数据。SPU的功能包括但不限于相加、平方、对数计算。固定流水线分片引擎可以处理已变换和点亮的顶点数据与纹理数据,经过顶点组装器进行顶点组装、经过光栅化器进行光栅化、以及经过颜色缓冲混合与Tile缓冲后,输出图形渲染结果。
如图1所示,图形渲染模块输出的图形渲染结果可以存储在数据存储中。显示模块可以从图形渲染模块获取图形渲染结果,并显示图形渲染结果。
应用场景1:单个待处理任务
待处理任务:虚拟游戏加速。
虚拟现实***的处理过程:首先,由通信传感模块接收人机交互数据,并存入数据存储模块中。指令解耦后映射至功能模块。在RISC-V处理器中将虚拟游戏应用任务细粒度划分为多个计算子任务,其中包括AI计算子任务、CNN计算子任务等,同时采用自定义的并行计算指令集、图形渲染指令集进行加速,计算需求调度至计算加速模块。随后,计算子任务的处理结果进入图形渲染模块,得到图形渲染结果。最后,在显示模块上显示图形渲染结果。
应用场景2:多个待处理任务
待处理任务:虚拟游戏加速以及虚拟课堂加速。
虚拟现实***的处理过程:首先,由通信传感模块接收人机交互数据,并存入数据存储模块中。指令解耦后映射至功能模块。在***软件层,基于任务的数据量大小、任务到达顺序、任务的时延容忍度、发送到CPU的时间进行优先级判断。RISC-V处理器基于优先级与应用任务数量来判断当前存在多任务待处理以进行任务调度,并将虚拟旅游应用任务细粒度划分为多个计算子任务,其中包括AI计算子任务、CNN计算子任务等,虚拟课堂应用任务细粒度划分为矢量计算子任务、AI计算子任务、CNN计算子任务等,并同时采用自定义的异步计算指令集、并行计算指令集、图形渲染指令集进行加速,计算需求调度至计算加速模块。随后,计算子任务的处理结果进入图形渲染模块,得到图形渲染结果。最后,在显示模块上显示图形渲染结果。
上述虚拟现实***,首先,通过将任务更细粒度的划分成多个计算子任务并对各计算子任务进行并行处理,提升了计算子任务的计算效率;同时,通过采用与计算子任务的类型相匹配的计算加速器处理计算子任务,在降低了对处理器计算能力要求的同时,进一步提升了子计算任务的计算效率;然后,通过对顶点数据拆分处理,提升了图形渲染效率。因此,有效提升了虚拟现实应用任务的运行效率。
基于ARM架构设计的处理器灵活度低,指令集复杂,不易进行模块化拓展,不利于高性能计算,且ARM指令集授权费用高,增加设计成本。本申请实施例中,基于开源的RISC-V指令集架构设计RISC-V处理器,极大地降低了指令集授权费用,且自定义了并行计算指令集扩展、异步计算指令集扩展与图形渲染指令集扩展,有效地提升任务执行效率。
进一步的,本申请实施例中分别从软硬件层面上进行优化与架构更新。在软件层面上,添加优先级判断模块,考虑了VR/AR应用任务变化情况,基于任务的数据量大小、任务到达顺序、任务的时延容忍度、发送到处理器的时间进行优先级判断,以提高任务的计算效率。在硬件层面上在实现了RISC-V处理器与专用加速器的设计,增加了图形渲染模块,有效地提高运行速度,提升计算效率。
VR/AR设备配置多GPU芯片以进行专用图像、音频、矢量等计算,使用成本较高。本申请实施例中,设计专用计算加速器以高效地处理专用计算需求,具体包括矢量计算加速模块、AI计算加速模块与CNN计算加速模块,可以更好地适配VR/AR应用任务的计算需求,降低能耗开销。同时,设计图形渲染模块,利用可编程顶点引擎与固定流水线分片引擎增强图形呈像效果。
在一个实施例中,图6为本申请实施例提供的虚拟现实应用任务的处理方法的流程示意图,以该方法应用于图1中的虚拟现实***为例进行说明,包括以下步骤:
步骤S601,在读取到虚拟现实应用的计算指令的情况下,将所述虚拟现实应用的待处理任务划分为不同类型的计算子任务。
用户通过动作或者音频等操作虚拟现实设备之后,虚拟现实***可以获取到人机交互数据。这些人机交互数据会虚拟现实应用产生一个或多个待处理任务。虚拟现实***需要快速对这些待处理任务进行处理,以提高用户体验。虚拟现实***会从数据存储模块依次读取指令进行处理。当读取到的指令为计算指令的情况下,表明需要进行计算。虚拟现实***可以将虚拟现实应用的待处理任务划分成不同类型的计算子任务,以进行更细粒度的计算,从而加快计算速度。
其中,所述计算子任务的类型是根据所述计算子任务的计算需求确定的。在一个示例中,所述计算子任务的类型包括矢量计算类型、人工智能计算类型和卷积神经网络计算类型。不同类型的计算子任务的数据特点不同,计算需求也就不同,因此需要分别采用不同的计算加速器进行处理。
考虑到所述虚拟现实应用可能有多个待处理任务。当各种不同的任务细分为计算子任务后,由于不同的应用任务的处理时间不同,在计算加速器上会可能出现滞后现象。为了提高计算效率,本申请实施例引入具有优先级的多任务异步计算。
在一种可能的实现方式中,所述方法还可以包括:在所述虚拟现实应用存在多个待处理任务的情况下,根据所述虚拟现实应用的待处理任务的数量和每个待处理任务的优先级对所述多个待处理任务的计算子任务进行调度。
可选的,可以根据所述待处理任务的数据量大小、所述待处理任务到达顺序、待处理任务的时延容忍度和待处理任务发送到处理器的时间中的一者或多者确定所述待处理任务的优先级。当然,也可以通过其他方式确定待处理任务的优先级,对此本申请实施例不作限制。
在一种可能的实现方式中,所述多个待处理任务的计算子任务的调度是基于异步计算指令集实现的。所述异步计算指令集为RISC-V的扩展指令集,具体格式可以参照图2,这里不再赘述。
步骤S602,采用与各个计算子任务的类型相匹配的计算加速器对所述各个计算子任务进行并行处理,得到所述各个计算子任务的处理结果。
在一种可能的实现方式中,所述并行处理是基于并行计算指令集实现的。所述并行计算指令集为RISC-V的扩展指令集,具体可以参照图3,这里不再赘述。
步骤S603,将所述各个计算子任务的处理结果划分为顶点数据和与所述顶点数据对应的纹理数据,对所述顶点数据进行运算处理,并将所述顶点数据的运算处理结果和所述顶点数据对应的纹理数据进行融合处理得到所述待处理任务的图形渲染结果。
在一种可能的实现方式中,所述顶点数据运算是基于图形渲染指令集实现的。所述图形渲染指令集为RISC-V的扩展指令集,具体可以参照图4,这里不再赘述。
在一种可能的实现方式中,步骤S603可以包括:将所述各个计算子任务的处理结果输入多路复用器,输出每个计算子任务的顶点数据和纹理数据;将各个计算子任务的顶点数据输入可编程顶点引擎进行运算处理,得到已变换和点亮的顶点数据;将所述已变换和点亮的顶点数据和所述纹理数据输入固定流水线分片引擎进行融合处理,得到所述待处理任务的图形渲染结果。其中,可编程顶点引擎和固定流水线分片引擎可以参照图5,这里不再赘述。
上述虚拟现实应用任务的处理方法,首先,通过将任务更细粒度的划分成多个计算子任务并对各计算子任务进行并行处理,提升了计算子任务的计算效率;同时,通过采用与计算子任务的类型相匹配的计算加速器处理计算子任务,在降低了对处理器计算能力要求的同时,进一步提升了子计算任务的计算效率;然后,通过对顶点数据拆分处理,提升了图形渲染效率。因此,有效提升了虚拟现实应用任务的运行效率。
在一种可能的实现方式中,所述方法还可以包括:从数据存储模块读取指令;对所述指令进行解耦,得到内存访问指令与所述计算指令。
在一种可能的实现方式中,所述方法还可以包括:获取人机交互数据并将所述人机交互数据存储至所述数据存储模块,所述人机交互数据对应一个或多个所述待处理任务。
在一个实施例中,图7为本申请实施例提供的虚拟现实应用任务的处理方法的流程示意图,
图7为本申请实施例提供的虚拟现实应用任务方法的流程示意图,以该方法应用于图1中的虚拟现实***为例进行说明,包括以下步骤:
步骤S701,通信传感模块接收人机交互数据。
步骤S702,通信传感模块将人机交互数据存入数据存储模块。
步骤S703,处理器从数据存储模块读取虚拟现实应用的指令,对读取到的指令进行解耦,得到内存访问指令与计算指令。
步骤S704,处理器在处理所述计算指令时,判断是否存在多个待处理任务;若是,则执行步骤S705;否则,执行步骤S706。
步骤S705,处理器根据所述虚拟现实应用的待处理任务的数量和每个待处理任务的优先级对所述多个待处理任务的计算子任务进行调度。
步骤S706,将所述虚拟现实应用的待处理任务划分为不同类型的计算子任务。
步骤S707,处理器采用与各个计算子任务的类型相匹配的计算加速器对所述各个计算子任务进行并行处理,得到所述各个计算子任务的处理结果。
步骤S708,处理器将各个计算子任务的处理结果输入图形渲染模块。
步骤S709,图形渲染模块将所述各个计算子任务的处理结果划分为顶点数据和与所述顶点数据对应的纹理数据,对所述顶点数据进行运算处理,并将所述顶点数据的运算处理结果和所述顶点数据对应的纹理数据进行融合处理得到所述待处理任务的图形渲染结果。
步骤S710,图形渲染模块将图形渲染结果存入数据存储模块。
步骤S711,显示模块从数据存储模块获取图形渲染结果并显示图形渲染结果。
应该理解的是,虽然图6和图7的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图6和图7中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,图8为本申请实施例提供的虚拟现实应用任务的处理装置的结构框图。如图8所示,该装置800包括:任务划分模块801、并行处理模块802和融合模块803,其中:
任务划分模块,用于在读取到虚拟现实应用的计算指令的情况下,将所述虚拟现实应用的待处理任务划分为不同类型的计算子任务;
并行处理模块,用于采用与各个计算子任务的类型相匹配的计算加速器对所述各个计算子任务进行并行处理,得到所述各个计算子任务的处理结果;
融合模块,用于将所述各个计算子任务的处理结果划分为顶点数据和与所述顶点数据对应的纹理数据,对所述顶点数据进行运算处理,并将所述顶点数据的运算处理结果和所述顶点数据对应的纹理数据进行融合处理得到所述待处理任务的图形渲染结果。
在一种可能的实现方式中,所述装置还包括:
任务调度模块,用于在所述虚拟现实应用存在多个待处理任务的情况下,根据所述虚拟现实应用的待处理任务的数量和每个待处理任务的优先级对所述多个待处理任务的计算子任务进行调度。
在一种可能的实现方式中,所述装置还包括:
优先级确定模块,用于根据所述待处理任务的数据量大小、所述待处理任务到达顺序、待处理任务的时延容忍度和待处理任务发送到处理器的时间中的一者或多者确定所述待处理任务的优先级。
在一种可能的实现方式中,所述计算子任务的类型是根据所述计算子任务的计算需求确定的。
在一种可能的实现方式中,所述计算子任务的类型包括矢量计算类型、人工智能计算类型和卷积神经网络计算类型。
在一种可能的实现方式中,所述多个待处理任务的计算子任务的调度是基于异步计算指令集实现的,所述并行处理是基于并行计算指令集实现的,所述顶点数据运算是基于图形渲染指令集实现的,所述异步计算指令集、所述并行计算指令集和所述图形渲染指令集为RISC-V的扩展指令集。
在一种可能的实现方式中,所述融合模块还用于:
将所述各个计算子任务的处理结果输入多路复用器,输出每个计算子任务的顶点数据和纹理数据;
将各个计算子任务的顶点数据输入可编程顶点引擎进行运算处理,得到已变换和点亮的顶点数据;
将所述已变换和点亮的顶点数据和所述纹理数据输入固定流水线分片引擎进行融合处理,得到所述待处理任务的图形渲染结果。
在一种可能的实现方式中,所述装置还包括:
指令读取模块,用于从数据存储模块读取指令;
指令解耦模块,用于对所述指令进行解耦,得到内存访问指令与所述计算指令。
在一种可能的实现方式中,所述装置还包括:
数据获取模块,用于获取人机交互数据并将所述人机交互数据存储至所述数据存储模块,所述人机交互数据对应一个或多个所述待处理任务。
关于虚拟现实应用任务的处理装置的具体限定可以参见上文中对于虚拟现实应用任务的处理方法的限定,在此不再赘述。上述虚拟现实应用任务的处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种虚拟现实设备,参见图9。图9为本申请实施例提供的虚拟现实设备的结构示意图。图9所示的虚拟现实设备700包括:至少一个处理器701、存储器702、至少一个网络接口704和用户接口703。虚拟现实设备700中的各个组件通过总线***705耦合在一起。可理解,总线***705用于实现这些组件之间的连接通信。总线***705除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图9中将各种总线都标为总线***705。另外,本发明实施例中,还包括收发器706,收发器可以是多个元件,即包括发送器和接收器,提供用于在传输介质上与各种其他装置通信的单元。
其中,用户接口703可以包括显示器、键盘或者点击设备(例如,鼠标,轨迹球(trackball)、触感板或者触摸屏等。
可以理解,本发明实施例中的存储器702可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-OnlyMemory,ROM)、可编程只读存储器(ProgrammableROM,PROM)、可擦除可编程只读存储器(ErasablePROM,EPROM)、电可擦除可编程只读存储器(ElectricallyEPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(RandomAccessMemory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(StaticRAM,SRAM)、动态随机存取存储器(DynamicRAM,DRAM)、同步动态随机存取存储器(SynchronousDRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(DoubleDataRateSDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(SynchlinkDRAM,SLDRAM)和直接内存总线随机存取存储器(DirectRambusRAM,DRRAM)。本发明实施例描述的***和方法的存储器702旨在包括但不限于这些和任意其它适合类型的存储器。
在一些实施方式中,存储器702存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:操作***7021和应用程序7022。
其中,操作***7021,包含各种***程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序7022,包含各种应用程序,例如媒体播放器(MediaPlayer)、浏览器(Browser)等,用于实现各种应用业务。实现本发明实施例方法的程序可以包含在应用程序7022中。
在本发明实施例中,通过调用存储器702存储的程序或指令,具体的,可以是应用程序7022中存储的程序或指令,其中,处理器,用于在读取到虚拟现实应用的计算指令的情况下,将所述虚拟现实应用的待处理任务划分为不同类型的计算子任务;采用与各个计算子任务的类型相匹配的计算加速器对所述各个计算子任务进行并行处理,得到所述各个计算子任务的处理结果;将所述各个计算子任务的处理结果划分为顶点数据和与所述顶点数据对应的纹理数据,对所述顶点数据进行运算处理,并将所述顶点数据的运算处理结果和所述顶点数据对应的纹理数据进行融合处理得到所述待处理任务的图形渲染结果。
上述本发明实施例揭示的部分或者全部方法还可以应用于处理器701中,或者由处理器701实现,或者由处理器701与其他元件(例如收发机)配合实现。处理器701可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器701中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器701可以是通用处理器、数字信号处理器(DigitalSignalProcessor,DSP)、专用集成电路(ApplicationSpecific IntegratedCircuit,ASIC)、现成可编程门阵列(FieldProgrammableGateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器702,处理器701读取存储器702中的信息,结合其硬件完成上述方法的步骤。
可以理解的是,本发明实施例描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(ApplicationSpecificIntegratedCircuits,ASIC)、数字信号处理器(DigitalSignalProcessing,DSP)、数字信号处理设备(DSPDevice,DSPD)、可编程逻辑设备(ProgrammableLogicDevice,PLD)、现场可编程门阵列(Field-ProgrammableGateArray,FPGA)、通用处理器、控制器、微控制器、微处理器、用于执行本申请所述功能的其它电子单元或其组合中。
对于软件实现,可通过执行本发明实施例所述功能的模块(例如过程、函数等)来实现本发明实施例所述的技术。软件代码可存储在存储器中并通过处理器701执行。存储器可以在处理器701中或在处理器701外部实现。
在一个实施例中,所述处理器还用于:
在所述虚拟现实应用存在多个待处理任务的情况下,根据所述虚拟现实应用的待处理任务的数量和每个待处理任务的优先级对所述多个待处理任务的计算子任务进行调度。
在一个实施例中,所述处理器还用于:
根据所述待处理任务的数据量大小、所述待处理任务到达顺序、待处理任务的时延容忍度和待处理任务发送到处理器的时间中的一者或多者确定所述待处理任务的优先级。
在一个实施例中,所述计算子任务的类型是根据所述计算子任务的计算需求确定的。
在一个实施例中,所述计算子任务的类型包括矢量计算类型、人工智能计算类型和卷积神经网络计算类型。
在一个实施例中,所述多个待处理任务的计算子任务的调度是基于异步计算指令集实现的,所述并行处理是基于并行计算指令集实现的,所述顶点数据运算是基于图形渲染指令集实现的,所述异步计算指令集、所述并行计算指令集和所述图形渲染指令集为RISC-V的扩展指令集。
在一个实施例中,所述处理器还用于:
将所述各个计算子任务的处理结果输入多路复用器,输出每个计算子任务的顶点数据和纹理数据;
将各个计算子任务的顶点数据输入可编程顶点引擎进行运算处理,得到已变换和点亮的顶点数据;
将所述已变换和点亮的顶点数据和所述纹理数据输入固定流水线分片引擎进行融合处理,得到所述待处理任务的图形渲染结果。
在一个实施例中,所述处理器还用于:
从数据存储模块读取指令;
对所述指令进行解耦,得到内存访问指令与所述计算指令。
在一个实施例中,所述处理器还用于:
获取人机交互数据并将所述人机交互数据存储至所述数据存储模块,所述人机交互数据对应一个或多个所述待处理任务。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
在读取到虚拟现实应用的计算指令的情况下,将所述虚拟现实应用的待处理任务划分为不同类型的计算子任务;
采用与各个计算子任务的类型相匹配的计算加速器对所述各个计算子任务进行并行处理,得到所述各个计算子任务的处理结果;
将所述各个计算子任务的处理结果划分为顶点数据和与所述顶点数据对应的纹理数据,对所述顶点数据进行运算处理,并将所述顶点数据的运算处理结果和所述顶点数据对应的纹理数据进行融合处理得到所述待处理任务的图形渲染结果。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
在所述虚拟现实应用存在多个待处理任务的情况下,根据所述虚拟现实应用的待处理任务的数量和每个待处理任务的优先级对所述多个待处理任务的计算子任务进行调度。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
根据所述待处理任务的数据量大小、所述待处理任务到达顺序、待处理任务的时延容忍度和待处理任务发送到处理器的时间中的一者或多者确定所述待处理任务的优先级。
在一个实施例中,所述计算子任务的类型是根据所述计算子任务的计算需求确定的。
在一个实施例中,所述计算子任务的类型包括矢量计算类型、人工智能计算类型和卷积神经网络计算类型。
在一个实施例中,所述多个待处理任务的计算子任务的调度是基于异步计算指令集实现的,所述并行处理是基于并行计算指令集实现的,所述顶点数据运算是基于图形渲染指令集实现的,所述异步计算指令集、所述并行计算指令集和所述图形渲染指令集为RISC-V的扩展指令集。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
将所述各个计算子任务的处理结果输入多路复用器,输出每个计算子任务的顶点数据和纹理数据;
将各个计算子任务的顶点数据输入可编程顶点引擎进行运算处理,得到已变换和点亮的顶点数据;
将所述已变换和点亮的顶点数据和所述纹理数据输入固定流水线分片引擎进行融合处理,得到所述待处理任务的图形渲染结果。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
从数据存储模块读取指令;
对所述指令进行解耦,得到内存访问指令与所述计算指令。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
获取人机交互数据并将所述人机交互数据存储至所述数据存储模块,所述人机交互数据对应一个或多个所述待处理任务。
本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行以下步骤:
在读取到虚拟现实应用的计算指令的情况下,将所述虚拟现实应用的待处理任务划分为不同类型的计算子任务;
采用与各个计算子任务的类型相匹配的计算加速器对所述各个计算子任务进行并行处理,得到所述各个计算子任务的处理结果;
将所述各个计算子任务的处理结果划分为顶点数据和与所述顶点数据对应的纹理数据,对所述顶点数据进行运算处理,并将所述顶点数据的运算处理结果和所述顶点数据对应的纹理数据进行融合处理得到所述待处理任务的图形渲染结果。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (13)
1.一种虚拟现实应用任务的处理方法,其特征在于,所述方法包括:
在读取到虚拟现实应用的计算指令的情况下,将所述虚拟现实应用的待处理任务划分为不同类型的计算子任务;
采用与各个计算子任务的类型相匹配的计算加速器对所述各个计算子任务进行并行处理,得到所述各个计算子任务的处理结果;
将所述各个计算子任务的处理结果划分为顶点数据和与所述顶点数据对应的纹理数据,对所述顶点数据进行运算处理,并将所述顶点数据的运算处理结果和所述顶点数据对应的纹理数据进行融合处理得到所述待处理任务的图形渲染结果。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述虚拟现实应用存在多个待处理任务的情况下,根据所述虚拟现实应用的待处理任务的数量和每个待处理任务的优先级对所述多个待处理任务的计算子任务进行调度。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
根据所述待处理任务的数据量大小、所述待处理任务到达顺序、待处理任务的时延容忍度和待处理任务发送到处理器的时间中的一者或多者确定所述待处理任务的优先级。
4.根据权利要求1所述的方法,其特征在于,所述计算子任务的类型是根据所述计算子任务的计算需求确定的。
5.根据权利要求4所述的方法,其特征在于,所述计算子任务的类型包括矢量计算类型、人工智能计算类型和卷积神经网络计算类型。
6.根据权利要求2所述的方法,其特征在于,所述多个待处理任务的计算子任务的调度是基于异步计算指令集实现的,所述并行处理是基于并行计算指令集实现的,所述顶点数据运算是基于图形渲染指令集实现的,所述异步计算指令集、所述并行计算指令集和所述图形渲染指令集为RISC-V的扩展指令集。
7.根据权利要求1所述的方法,其特征在于,所述将所述各个计算子任务的处理结果划分为顶点数据和与所述顶点数据对应的纹理数据,对所述顶点数据进行运算处理,并将所述顶点数据的运算处理结果和所述顶点数据对应的纹理数据进行融合处理得到所述待处理任务的图形渲染结果,包括:
将所述各个计算子任务的处理结果输入多路复用器,输出每个计算子任务的顶点数据和纹理数据;
将各个计算子任务的顶点数据输入可编程顶点引擎进行运算处理,得到已变换和点亮的顶点数据;
将所述已变换和点亮的顶点数据和所述纹理数据输入固定流水线分片引擎进行融合处理,得到所述待处理任务的图形渲染结果。
8.根据权利要求1至7中任意一项所述的方法,其特征在于,所述方法还包括:
从数据存储模块读取指令;
对所述指令进行解耦,得到内存访问指令与所述计算指令。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
获取人机交互数据并将所述人机交互数据存储至所述数据存储模块,所述人机交互数据对应一个或多个所述待处理任务。
10.一种虚拟现实应用任务的处理装置,其特征在于,所述装置包括:
任务划分模块,用于在读取到虚拟现实应用的计算指令的情况下,将所述虚拟现实应用的待处理任务划分为不同类型的计算子任务;
并行处理模块,用于采用与各个计算子任务的类型相匹配的计算加速器对所述各个计算子任务进行并行处理,得到所述各个计算子任务的处理结果;
融合模块,用于将所述各个计算子任务的处理结果划分为顶点数据和与所述顶点数据对应的纹理数据,对所述顶点数据进行运算处理,并将所述顶点数据的运算处理结果和所述顶点数据对应的纹理数据进行融合处理得到所述待处理任务的图形渲染结果。
11.一种虚拟现实***,其特征在于,包括数据存储模块、处理器、计算加速器、图形渲染模块和显示模块;
所述数据存储模块,用于存储虚拟现实应用的指令以及所述虚拟现实应用的待处理任务的人机交互数据和图形渲染结果;
所述处理器,用于在从所述数据存储模块读取到的指令为计算指令的情况下,将所述虚拟现实应用的待处理任务划分为不同类型的计算子任务;将各个子任务发送至与各个计算子任务的类型相匹配的计算加速器;以及,将所述计算加速器返回的各个计算子任务的处理结果发送至所述图形渲染模块;
所述计算加速器,用于对接收到的计算子任务进行并行处理得到所述计算子任务的处理结果,并将所述计算子任务的处理结果发送至所述处理器;
所述图形渲染模块,用于将所述各个计算子任务的处理结果划分为顶点数据和与所述顶点数据对应的纹理数据,对所述顶点数据进行运算处理,并将所述顶点数据的运算处理结果和所述顶点数据对应的纹理数据进行融合处理得到所述待处理任务的图形渲染结果;
所述显示模块,用于显示所述图形渲染结果。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至9中任一项所述的方法的步骤。
13.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至9中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311012427.9A CN117112165A (zh) | 2023-08-11 | 2023-08-11 | 虚拟现实应用任务的处理方法、装置、虚拟现实*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311012427.9A CN117112165A (zh) | 2023-08-11 | 2023-08-11 | 虚拟现实应用任务的处理方法、装置、虚拟现实*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117112165A true CN117112165A (zh) | 2023-11-24 |
Family
ID=88810349
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311012427.9A Pending CN117112165A (zh) | 2023-08-11 | 2023-08-11 | 虚拟现实应用任务的处理方法、装置、虚拟现实*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117112165A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117472188A (zh) * | 2023-12-07 | 2024-01-30 | 联通沃音乐文化有限公司 | Vr姿态信息控制装置与方法 |
-
2023
- 2023-08-11 CN CN202311012427.9A patent/CN117112165A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117472188A (zh) * | 2023-12-07 | 2024-01-30 | 联通沃音乐文化有限公司 | Vr姿态信息控制装置与方法 |
CN117472188B (zh) * | 2023-12-07 | 2024-04-19 | 联通沃音乐文化有限公司 | Vr姿态信息控制装置与方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106228238B (zh) | 现场可编程门阵列平台上加速深度学习算法的方法和*** | |
JP2020074099A (ja) | 処理装置と処理方法 | |
CN111695672B (zh) | 用于提高ai引擎mac利用率的方法 | |
US20200090022A1 (en) | Efficient transferring of human experiences to robots and other autonomous machines | |
US10430189B2 (en) | GPU register allocation mechanism | |
US20190138373A1 (en) | Multithreaded data flow processing within a reconfigurable fabric | |
US11481472B2 (en) | Integer matrix multiplication engine using pipelining | |
US11934308B2 (en) | Processor cluster address generation | |
CN113435682A (zh) | 分布式训练的梯度压缩 | |
US20170154403A1 (en) | Triple buffered constant buffers for efficient processing of graphics data at computing devices | |
US11494326B1 (en) | Programmable computations in direct memory access engine | |
CN117112165A (zh) | 虚拟现实应用任务的处理方法、装置、虚拟现实*** | |
KR20210021263A (ko) | 작업부하의 정적 매핑의 비순차적 파이프라이닝된 실행을 가능하게 하기 위한 방법들 및 장치 | |
US11023825B2 (en) | Platform as a service cloud server and machine learning data processing method thereof | |
CN114008589A (zh) | 用于在顺序处理器上进行多次执行的动态代码加载 | |
WO2022163861A1 (ja) | ニューラルネットワーク生成装置、ニューラルネットワーク演算装置、エッジデバイス、ニューラルネットワーク制御方法およびソフトウェア生成プログラム | |
CN110232665B (zh) | 最大池化方法、装置、计算机设备及存储介质 | |
CN109711540B (zh) | 一种计算装置及板卡 | |
KR102667790B1 (ko) | 뉴럴 네트워크 회로, 에지 디바이스 및 뉴럴 네트워크 연산 방법 | |
WO2024120249A1 (zh) | 数据处理方法、装置、设备及存储介质 | |
CN116484909A (zh) | 面向人工智能芯片的矢量引擎处理方法和装置 | |
WO2023087227A1 (zh) | 数据处理装置及方法 | |
CN115586955A (zh) | 命令执行方法、装置、计算机设备和存储介质 | |
CN116997909A (zh) | 稀疏机器学习加速 | |
US11372677B1 (en) | Efficient scheduling of load instructions |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |