CN108022281B - 渲染三维图形的方法及装置 - Google Patents
渲染三维图形的方法及装置 Download PDFInfo
- Publication number
- CN108022281B CN108022281B CN201610930629.5A CN201610930629A CN108022281B CN 108022281 B CN108022281 B CN 108022281B CN 201610930629 A CN201610930629 A CN 201610930629A CN 108022281 B CN108022281 B CN 108022281B
- Authority
- CN
- China
- Prior art keywords
- module
- special
- vector
- instruction
- simd
- 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.)
- Active
Links
- 238000009877 rendering Methods 0.000 title claims abstract description 111
- 238000000034 method Methods 0.000 title claims abstract description 84
- 238000010276 construction Methods 0.000 claims description 3
- 238000004886 process control Methods 0.000 claims description 2
- 238000011084 recovery Methods 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 4
- 230000001133 acceleration Effects 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 230000009191 jumping Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- 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
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3887—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Mathematical Physics (AREA)
- Image Generation (AREA)
Abstract
本发明提供了一种渲染三维图形的方法及装置。所述方法应用于CPU,所述CPU包括SIMD向量运算单元、与所述SIMD向量运算单元对应的专用取指模块、专用译码模块和专用访存模块,所述方法包括:在运行包含三维渲染任务的进程之前,将CPU中的SIMD向量运算单元对CPU进行屏蔽,以使CPU不会调用所述SIMD向量运算单元;根据所述三维渲染任务构建当前帧的向量指令和向量数据,并将所述向量指令和向量数据存储在内存的指定区域;使能所述专用取指模块、所述专用访存模块,以使得所述SIMD向量运算单元、所述专用取指模块、所述专用译码模块和所述专用访存模块,根据所述内存的指定区域中的向量指令和向量数据执行相应的SIMD向量运算,完成当前帧的三维渲染任务。
Description
技术领域
本发明涉及图形运算技术领域,尤其涉及一种渲染三维图形的方法及装置。
背景技术
目前,三维图形渲染能力在现代桌面***中已经逐渐成为基本要求,微软从Windows 7开始,Linux从Gnome3桌面管理器开始,都转向了以三维图形渲染为基础的桌面图形环境。
目前,现有技术中渲染三维图形的方法主要有两种:
一种是使用专门的图形处理器(Graphic Processing Unit,GPU)渲染三维图形。GPU是专门为加速三维图形渲染设计的,其主体是流处理器,流处理器主要负责坐标数据和像素数据的矩阵运算。GPU运算所需的向量数据一般是较大的连续数据,需要连续的从内存中读取,因此对访存延迟不很敏感,访存行为有很强的规律性,数据相关程度很低,控制指令很简单,很少有分支,计算结果后面的运算一般不会使用,可直接写回内存,而不需将其重新填入寄存器,因此GPU需要较大的内存读取写入带宽。在进行三维图形渲染时,由中央处理器(Central Processing Unit,CPU)中的进程在内存中为GPU准备加速指令和数据,再拷贝到显存中,准备好后通知GPU开始执行,当执行完成后由GPU通知CPU。CPU如需在内存中使用处理后的数据,则将其从显存拷贝到内存。
另一种是直接使用CPU的向量部件渲染三维图形。现代CPU中一般配置有与GPU类似的向量运算单元,但只是其中的一部分,需要共用CPU的取值、译码和访存单元。CPU的译码、取值和访存较为复杂,考虑很多分支跳转和多进程切换的情况,CPU中的操作数一般存储在CPU的寄存器中,数据有较高的相关性,访存的密集度较低,但访存行为一般不规律,而且向量运算单元必须在进程处于执行态时才能被该进程占用,在进程挂起时,CPU的向量运算单元会被释放。在进行三维图形渲染时,用于三维运算的向量运算指令是CPU运行的进程的一部分。三维绘制在执行时,该绘制所在的进程必须在执行态。用于加速的向量指令的代码被放置在不同函数,根据调用来跳转。
在实现本发明的过程中,发明人发现现有技术中至少存在如下技术问题:
直接使用CPU的向量部件渲染三维图形,占用了CPU的运行时间以及缓存等资源,而且由于三维绘制是大量的纯数学运算,需要较大的访存,但却极少有跳转等控制指令,CPU的大量功能部件受到限制,CPU占用率较高,渲染三维图形的效率较低;而使用专门的GPU渲染三维图形,在很多场合下GPU的负载很低,GPU利用率不高,增加了***的成本负担。
发明内容
本发明提供的渲染三维图形的方法及装置,能够在不需配置GPU的情况下,提升CPU在渲染三维图形时的效率,同时降低CPU的占用率。
第一方面,本发明提供一种渲染三维图形的方法,应用于CPU,所述CPU包括SIMD向量运算单元、与所述SIMD向量运算单元对应的专用取指模块、专用译码模块和专用访存模块,所述方法包括:
在运行包含三维渲染任务的进程之前,将CPU中的SIMD向量运算单元对CPU进行屏蔽,以使CPU不会调用所述SIMD向量运算单元;
根据所述三维渲染任务构建当前帧的向量指令和向量数据,并将所述向量指令和向量数据存储在内存的指定区域;
使能所述专用取指模块、所述专用访存模块,以使得所述SIMD向量运算单元、所述专用取指模块、所述专用译码模块和所述专用访存模块,根据所述内存的指定区域中的向量指令和向量数据执行相应的SIMD向量运算,完成当前帧的三维渲染任务。
第二方面,本发明提供一种渲染三维图形的装置,所述装置位于CPU,所述CPU包括SIMD向量运算单元、与所述SIMD向量运算单元对应的专用取指模块、专用译码模块和专用访存模块,所述装置包括:
屏蔽控制模块,用于在运行包含三维渲染任务的进程之前,将CPU中的SIMD向量运算单元对CPU进行屏蔽,以使CPU不会调用所述SIMD向量运算单元;
构建模块,用于根据所述三维渲染任务构建当前帧的向量指令和向量数据,并将所述向量指令和向量数据存储在内存的指定区域;
使能模块,用于使能所述专用取指模块、所述专用访存模块,以使得所述SIMD向量运算单元、所述专用取指模块、所述专用译码模块和所述专用访存模块,根据所述内存的指定区域中的向量指令和向量数据执行相应的SIMD向量运算,完成当前帧的三维渲染任务。
本发明实施例提供的渲染三维图形的方法及装置,在运行包含三维渲染任务的进程之前,将CPU中的SIMD向量运算单元对CPU进行屏蔽,根据所述三维渲染任务构建相应的向量指令和向量数据,并将所述向量指令和向量数据存储在内存的指定区域,所述SIMD向量运算单元及其对应的专用取指模块、专用译码模块和专用访存模块根据所述内存的指定区域中的向量指令和向量数据执行相应的SIMD向量运算,完成当前帧的三维渲染任务。与现有技术相比,在运行包含三维渲染任务的进程时,CPU不使用SIMD向量运算单元,SIMD向量运算单元与其对应的专用取指模块、专用译码模块和专用访存模块专门用于完成执行三维渲染任务所需的SIMD向量运算,从而能够在不需配置GPU的情况下,提升CPU在渲染三维图形时的效率;而且在执行SIMD向量运算时,CPU的其他部分不进行复用,从而可以降低CPU的占用率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明渲染三维图形的方法实施例一的流程图;
图2为本发明渲染三维图形的方法实施例二的流程图;
图3为本发明渲染三维图形的装置实施例一的结构示意图;
图4为本发明渲染三维图形的装置实施例二的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供一种渲染三维图形的方法,应用于CPU,所述CPU包括单指令流多数据流(Single Instruction Multiple Data,SIMD)向量运算单元、与所述SIMD向量运算单元对应的专用取指模块、专用译码模块和专用访存模块,图1为本发明渲染三维图形的方法实施例一的流程图,如图1所示,本实施例的方法包括:
S11、在运行包含三维渲染任务的进程之前,将CPU中的SIMD向量运算单元对CPU进行屏蔽,以使CPU不会调用所述SIMD向量运算单元。
具体地,可以通过在CPU原有的状态寄存器进行设置,使得在运行包含三维渲染任务的进程之前,CPU不会调用SIMD向量运算单元。
其中,在CPU内部增加一个SIMD向量运算单元专用的带有使能端的顺序发射和无需分支预测的专用取指模块和专用译码模块,这些模块只支持SIMD指令的取值和译码;另外,在CPU内部还增加一个专用的支持顺序预取的专用访存模块,用于从内存向SIMD向量运算单元搬运顶点和纹理数据,并将SIMD向量运算结果写回内存。所述SIMD向量运算单元与所述专用取指模块、专用译码模块和专用访存模块一起构成一个可屏蔽和关断的独立的数据和指令通路。
进一步地,可以在CPU内部增加专用配置寄存器,通过专用配置寄存器对所述专用取指模块、所述专用访存模块进行使能或关断。
具体地,在所述专用配置寄存器中设置有用于控制所述专用取指模块使能与关断的第一使能位、用于控制所述专用访存模块使能与关断的第二使能位,当所述第一使能位、第二使能位有效时,所述专用取指模块、所述专用访存模块使能;当所述第一使能位、第二使能位位无效时,所述专用取指模块、所述专用访存模块关断。
S12、根据所述三维渲染任务构建当前帧的向量指令和向量数据,并将所述向量指令和向量数据存储在内存的指定区域。
具体地,在内存中专门开辟有指定区域,CPU根据三维渲染任务构建的向量指令和向量数据存储在该指定区域。其中,所述向量数据包括顶点和纹理数据。
S13、使能所述专用取指模块、所述专用访存模块,以使得所述SIMD向量运算单元、所述专用取指模块、所述专用译码模块和所述专用访存模块,根据所述内存的指定区域中的向量指令和向量数据执行相应的SIMD向量运算,完成当前帧的三维渲染任务。
具体地,所述SIMD向量运算单元以及所述专用取指模块、专用译码模块和专用访存模块,根据所述内存的指定区域中的向量指令和向量数据,使用CPU执行其他运算时所采用的TLB(Translation Lookaside Buffer,旁路转换缓冲)执行相应的SIMD向量运算。也即,SIMD向量运算单元以及所述专用取指模块、专用译码模块和专用访存模块所建立的数据指令通路与CPU原有的数据指令通路共享TLB,使用统一的虚拟地址空间,进行虚拟地址到物理地址的转换。
在SIMD向量运算单元进行SIMD向量运算的过程中,CPU进行下一帧向量指令和向量数据的准备,在准备完毕后挂起包含三维渲染任务的进程,执行其他进程,该其他进程必须满足不会调用所述SIMD向量运算单元。
进一步地,在执行步骤S13的过程中,CPU控制所述包含三维渲染任务的进程执行除当前帧的三维渲染任务以外的其他任务,或者,如果没有其他任务,则将所述包含三维渲染任务的进程挂起,从而可以提高进程的执行效率。
本发明实施例提供的渲染三维图形的方法,在运行包含三维渲染任务的进程之前,将CPU中的SIMD向量运算单元对CPU进行屏蔽,根据所述三维渲染任务构建相应的向量指令和向量数据,并将所述向量指令和向量数据存储在内存的指定区域,所述SIMD向量运算单元及其对应的专用取指模块、专用译码模块和专用访存模块根据所述内存的指定区域中的向量指令和向量数据执行相应的SIMD向量运算,完成当前帧的三维渲染任务。与现有技术相比,在运行包含三维渲染任务的进程时,CPU不使用SIMD向量运算单元,SIMD向量运算单元与其对应的专用取指模块、专用译码模块和专用访存模块专门用于完成执行三维渲染任务所需的SIMD向量运算,从而能够在不需配置GPU的情况下,提升CPU在渲染三维图形时的效率;而且在执行SIMD向量运算时,CPU的其他部分不进行复用,从而可以降低CPU的占用率。
本发明实施例还提供一种渲染三维图形的方法,应用于CPU,所述CPU包括SIMD向量运算单元、与所述SIMD向量运算单元对应的专用取指模块、专用译码模块和专用访存模块,图2为本发明渲染三维图形的方法实施例二的流程图,如图2所示,本实施例的方法包括:
S21、在运行包含三维渲染任务的进程之前,将CPU中的SIMD向量运算单元对CPU进行屏蔽,以使CPU不会调用所述SIMD向量运算单元。
S22、根据所述三维渲染任务构建当前帧的向量指令和向量数据,并将所述向量指令和向量数据存储在内存的指定区域。
具体地,在内存中专门开辟有指定区域,CPU根据三维渲染任务构建的向量指令和向量数据存储在该指定区域。其中,所述向量数据包括顶点和纹理数据。
S23、通过专用配置寄存器对所述专用取指模块和所述专用访存模块进行使能。
具体地,在所述专用取指模块对应的配置寄存器中存入待取指地址的首地址以及长度;在所述专用访存模块对应的配置寄存器中存入待读取向量数据的首地址以及长度,待存入向量数据的首地址以及长度;通过专用配置寄存器中设置的使能位对所述专用取指模块、所述专用访存模块进行使能。
S24、所述专用取指模块从所述内存的指定区域读取所述向量指令。
S25、所述专用译码模块对所述向量指令进行译码,并将译码后的向量指令发送至所述SIMD向量运算单元。
S26、所述专用访存模块从所述内存的指定区域读取所述向量数据,并发送给所述SIMD向量运算单元。
S27、所述SIMD向量运算单元根据所述译码后的向量指令以及所述向量数据进行SIMD向量运算,并将SIMD向量运算结果返回至所述专用访存模块。
具体地,所述SIMD向量运算单元以及所述专用取指模块、专用译码模块和专用访存模块,根据所述内存的指定区域中的向量指令和向量数据,使用CPU执行其他运算时所采用的TLB执行相应的SIMD向量运算。也即,SIMD向量运算单元以及所述专用取指模块、专用译码模块和专用访存模块所建立的数据指令通路与CPU原有的数据指令通路共享TLB,使用统一的虚拟地址空间。
其中,在执行步骤S24至S27的过程中,CPU控制所述包含三维渲染任务的进程执行除当前帧的三维渲染任务以外的其他任务,例如:进行下一帧向量数据、向量指令的构建。
或者,如果没有其他任务,则将所述包含三维渲染任务的进程挂起,转而执行其他进程,从而可以提高进程的执行效率。
S28、在内存的指定区域接收所述专用访存模块写回的所述SIMD向量运算结果写回所述内存的指定区域。
进一步地,在步骤S28完成之后,所述SIMD向量运算单元采用中断的方式通知CPU,CPU恢复所述包含三维渲染任务的进程,以指针的方式从所述内存的指定区域读取所述SIMD向量运算结果。
S29、解除所述SIMD向量运算单元对CPU的屏蔽。
此时,CPU恢复对所述SIMD向量运算单元的使用权,可以调用所述SIMD向量运算单元。
本发明实施例提供的渲染三维图形的方法,在运行包含三维渲染任务的进程时,CPU不使用SIMD向量运算单元,SIMD向量运算单元与其对应的专用取指模块、专用译码模块和专用访存模块专门用于完成执行三维渲染任务所需的SIMD向量运算,从而能够在不需配置GPU的情况下,提升CPU在渲染三维图形时的效率;而且在执行SIMD向量运算时,CPU的其他部分不进行复用,从而可以降低CPU的占用率;此外,SIMD向量运算单元以及所述专用取指模块、专用译码模块和专用访存模块所建立的数据指令通路与CPU原有的数据指令通路共享TLB,使用统一的虚拟地址空间,从而可以降低CPU的占用率。
本发明实施例提供一种渲染三维图形的装置,所述装置位于CPU,所述CPU包括SIMD向量运算单元11、与所述SIMD向量运算单元11对应的专用取指模块12、专用译码模块13和专用访存模块14,图3为本发明渲染三维图形的装置实施例一的结构示意图,如图3所示,本实施例的装置包括:
屏蔽控制模块15,用于在运行包含三维渲染任务的进程之前,将CPU中的SIMD向量运算单元11对CPU进行屏蔽,以使CPU不会调用所述SIMD向量运算单元11;
构建模块16,用于根据所述三维渲染任务构建当前帧的向量指令和向量数据,并将所述向量指令和向量数据存储在内存的指定区域;
使能模块17,用于使能所述专用取指模块12、所述专用访存模块14,以使得所述SIMD向量运算单元11、所述专用取指模块12、所述专用译码模块13和所述专用访存模块14,根据所述内存的指定区域中的向量指令和向量数据执行相应的SIMD向量运算,完成当前帧的三维渲染任务。
本发明实施例提供的渲染三维图形的装置,在运行包含三维渲染任务的进程之前,将CPU中的SIMD向量运算单元对CPU进行屏蔽,根据所述三维渲染任务构建相应的向量指令和向量数据,并将所述向量指令和向量数据存储在内存的指定区域,所述SIMD向量运算单元及其对应的专用取指模块、专用译码模块和专用访存模块根据所述内存的指定区域中的向量指令和向量数据完成相应的SIMD向量运算,完成当前帧的三维渲染任务。与现有技术相比,在运行包含三维渲染任务的进程时,CPU不使用SIMD向量运算单元,SIMD向量运算单元与其对应的专用取指模块、专用译码模块和专用访存模块专门用于完成执行三维渲染任务所需的SIMD向量运算,从而能够在不需配置GPU的情况下,提升CPU在渲染三维图形时的效率;而且在执行SIMD向量运算时,CPU的其他部分不进行复用,从而可以降低CPU的占用率。
可选地,所述专用取指模块12,用于从所述内存的指定区域读取所述向量指令;
所述专用译码模块13,用于对所述向量指令进行译码,并将译码后的向量指令发送至所述SIMD向量运算单元11;
所述专用访存模块14,用于从所述内存的指定区域读取所述向量数据,并发送给所述SIMD向量运算单元11;
所述SIMD向量运算单元11,用于根据所述译码后的向量指令以及所述向量数据对所述向量数据进行SIMD向量运算,并将SIMD向量运算结果返回至所述专用访存模块14。
图4为本发明渲染三维图形的装置实施例二的结构示意图,如图4所示,进一步地,所述装置还包括:
接收模块18,用于在所述使能模块17使能所述专用取指模块12、所述专用访存模块14之后,在内存的指定区域接收所述专用访存模块14写回的所述SIMD向量运算结果。
进一步地,如图4所示,所述装置还包括:
进程控制模块19,用于在完成当前帧的三维渲染任务过程中,控制所述包含三维渲染任务的进程执行除当前帧的三维渲染任务以外的其他任务,或者将所述包含三维渲染任务的进程挂起。
进一步地,如图4所示,所述装置还包括:
恢复模块20,用于在所述接收模块18在内存的指定区域接收所述专用访存模块14写回的所述SIMD向量运算结果之后,恢复所述包含三维渲染任务的进程,从所述内存的指定区域读取所述SIMD向量运算结果。
可选地,所述使能模块17,用于在所述专用取指模块12对应的配置寄存器中存入待取指地址的首地址以及长度,在所述专用访存模块14对应的配置寄存器中存入待读取向量数据的首地址以及长度,待存入向量数据的首地址以及长度,通过专用配置寄存器中设置的使能位对所述专用取指模块12、所述专用访存模块14进行使能。
本发明实施例提供的渲染三维图形的装置,在运行包含三维渲染任务的进程时,CPU不使用SIMD向量运算单元,SIMD向量运算单元与其对应的专用取指模块、专用译码模块和专用访存模块专门用于完成执行三维渲染任务所需的SIMD向量运算,从而能够在不需配置GPU的情况下,提升CPU在渲染三维图形时的效率;而且在执行SIMD向量运算时,CPU的其他部分不进行复用,从而可以降低CPU的占用率;此外,SIMD向量运算单元以及所述专用取指模块、专用译码模块和专用访存模块所建立的数据指令通路与CPU原有的数据指令通路共享TLB,使用统一的虚拟地址空间,从而可以降低CPU的占用率。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (12)
1.一种渲染三维图形的方法,其特征在于,应用于中央处理器CPU,所述CPU包括单指令流多数据流SIMD向量运算单元、与所述SIMD向量运算单元对应的专用取指模块、专用译码模块和专用访存模块,所述方法包括:
在运行包含三维渲染任务的进程之前,将CPU中的SIMD向量运算单元对CPU进行屏蔽,以使CPU不会调用所述SIMD向量运算单元;
根据所述三维渲染任务构建当前帧的向量指令和向量数据,并将所述向量指令和向量数据存储在内存的指定区域;
使能所述专用取指模块、所述专用访存模块,以使得所述SIMD向量运算单元、所述专用取指模块、所述专用译码模块和所述专用访存模块,根据所述内存的指定区域中的向量指令和向量数据执行相应的SIMD向量运算,完成当前帧的三维渲染任务。
2.根据权利要求1所述的方法,其特征在于,所述以使得所述SIMD向量运算单元、所述专用取指模块、所述专用译码模块和所述专用访存模块,根据所述内存的指定区域中的向量指令和向量数据执行相应的SIMD向量运算包括:
所述专用取指模块从所述内存的指定区域读取所述向量指令;
所述专用译码模块对所述向量指令进行译码,并将译码后的向量指令发送至所述SIMD向量运算单元;
所述专用访存模块从所述内存的指定区域读取所述向量数据,并发送给所述SIMD向量运算单元;
所述SIMD向量运算单元根据所述译码后的向量指令以及所述向量数据进行SIMD向量运算,并将SIMD向量运算结果返回至所述专用访存模块。
3.根据权利要求1或2所述的方法,其特征在于,在所述使能所述专用取指模块、所述专用访存模块之后,还包括:
在内存的指定区域接收所述专用访存模块写回的所述SIMD向量运算结果。
4.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
在完成当前帧的三维渲染任务过程中,控制所述包含三维渲染任务的进程执行除当前帧的三维渲染任务以外的其他任务,或者将所述包含三维渲染任务的进程挂起。
5.根据权利要求3所述的方法,其特征在于,在所述在内存的指定区域接收所述专用访存模块写回的所述SIMD向量运算结果之后,所述方法还包括:
恢复所述包含三维渲染任务的进程,从所述内存的指定区域读取所述SIMD向量运算结果。
6.根据权利要求1或2所述的方法,其特征在于,所述使能所述专用取指模块、所述专用访存模块包括:
在所述专用取指模块对应的配置寄存器中存入待取指地址的首地址以及长度;
在所述专用访存模块对应的配置寄存器中存入待读取向量数据的首地址以及长度,待存入向量数据的首地址以及长度;
通过专用配置寄存器中设置的使能位对所述专用取指模块、所述专用访存模块进行使能。
7.一种渲染三维图形的装置,其特征在于,所述装置位于CPU,所述CPU包括SIMD向量运算单元、与所述SIMD向量运算单元对应的专用取指模块、专用译码模块和专用访存模块,所述装置包括:
屏蔽控制模块,用于在运行包含三维渲染任务的进程之前,将CPU中的SIMD向量运算单元对CPU进行屏蔽,以使CPU不会调用所述SIMD向量运算单元;
构建模块,用于根据所述三维渲染任务构建当前帧的向量指令和向量数据,并将所述向量指令和向量数据存储在内存的指定区域;
使能模块,用于使能所述专用取指模块、所述专用访存模块,以使得所述SIMD向量运算单元、所述专用取指模块、所述专用译码模块和所述专用访存模块,根据所述内存的指定区域中的向量指令和向量数据执行相应的SIMD向量运算,完成当前帧的三维渲染任务。
8.根据权利要求7所述的装置,其特征在于,所述专用取指模块,用于从所述内存的指定区域读取所述向量指令;
所述专用译码模块,用于对所述向量指令进行译码,并将译码后的向量指令发送至所述SIMD向量运算单元;
所述专用访存模块,用于从所述内存的指定区域读取所述向量数据,并发送给所述SIMD向量运算单元;
所述SIMD向量运算单元,用于根据所述译码后的向量指令以及所述向量数据进行SIMD向量运算,并将SIMD向量运算结果返回至所述专用访存模块。
9.根据权利要求7或8所述的装置,其特征在于,所述装置还包括:
接收模块,用于在所述使能模块使能所述专用取指模块、所述专用访存模块之后,在内存的指定区域接收所述专用访存模块写回的所述SIMD向量运算结果。
10.根据权利要求7或8所述的装置,其特征在于,所述装置还包括:
进程控制模块,用于在完成当前帧的三维渲染任务过程中,控制所述包含三维渲染任务的进程执行除当前帧的三维渲染任务以外的其他任务,或者将所述包含三维渲染任务的进程挂起。
11.根据权利要求9所述的装置,其特征在于,所述装置还包括:
恢复模块,用于在所述接收模块在内存的指定区域接收所述专用访存模块写回的所述SIMD向量运算结果之后,恢复所述包含三维渲染任务的进程,从所述内存的指定区域读取所述SIMD向量运算结果。
12.根据权利要求7或8所述的装置,其特征在于,所述使能模块,用于在所述取指模块对应的配置寄存器中存入待取指地址的首地址以及长度,在所述访存模块对应的配置寄存器中存入待读取向量数据的首地址以及长度,待存入向量数据的首地址以及长度,通过专用配置寄存器中设置的使能位对所述专用取指模块、所述专用访存模块进行使能。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610930629.5A CN108022281B (zh) | 2016-10-31 | 2016-10-31 | 渲染三维图形的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610930629.5A CN108022281B (zh) | 2016-10-31 | 2016-10-31 | 渲染三维图形的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108022281A CN108022281A (zh) | 2018-05-11 |
CN108022281B true CN108022281B (zh) | 2021-02-23 |
Family
ID=62069639
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610930629.5A Active CN108022281B (zh) | 2016-10-31 | 2016-10-31 | 渲染三维图形的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108022281B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007104158A1 (en) * | 2006-03-14 | 2007-09-20 | Transgaming Technologies Inc. | General purpose software parallel task engine |
CN103135973A (zh) * | 2011-11-30 | 2013-06-05 | 腾讯科技(深圳)有限公司 | 一种界面引擎中的图形图像渲染方法和装置 |
CN105512723A (zh) * | 2016-01-20 | 2016-04-20 | 南京艾溪信息科技有限公司 | 一种用于稀疏连接的人工神经网络计算装置和方法 |
-
2016
- 2016-10-31 CN CN201610930629.5A patent/CN108022281B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007104158A1 (en) * | 2006-03-14 | 2007-09-20 | Transgaming Technologies Inc. | General purpose software parallel task engine |
CN103135973A (zh) * | 2011-11-30 | 2013-06-05 | 腾讯科技(深圳)有限公司 | 一种界面引擎中的图形图像渲染方法和装置 |
CN105512723A (zh) * | 2016-01-20 | 2016-04-20 | 南京艾溪信息科技有限公司 | 一种用于稀疏连接的人工神经网络计算装置和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108022281A (zh) | 2018-05-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108463804B (zh) | 自适应上下文切换 | |
US9710874B2 (en) | Mid-primitive graphics execution preemption | |
US10482567B2 (en) | Apparatus and method for intelligent resource provisioning for shadow structures | |
US10853118B2 (en) | Apparatus and method for pattern-driven page table shadowing for graphics virtualization | |
US9996386B2 (en) | Mid-thread pre-emption with software assisted context switch | |
CN110678847A (zh) | 用于gpu任务调度的连续分析任务 | |
KR20150036726A (ko) | 그래픽 프로세싱 유닛 명령 스트림들을 스케줄링하기 위한 연기된 선점 기법들 | |
US11281500B2 (en) | Apparatus and method for cloud-based graphics validation | |
US9207919B2 (en) | System, method, and computer program product for bulk synchronous binary program translation and optimization | |
EP2791933A1 (en) | Mechanism for using a gpu controller for preloading caches | |
KR102509365B1 (ko) | 보안 모드 상태 데이터 액세스 트랙킹 | |
US10410311B2 (en) | Method and apparatus for efficient submission of workload to a high performance graphics sub-system | |
US10089019B2 (en) | Minimizing latency from peripheral devices to compute engines | |
JP2015531124A (ja) | マルチスレッド処理システムにおけるレジュームチェック動作を選択的にアクティブ化すること | |
US9122522B2 (en) | Software mechanisms for managing task scheduling on an accelerated processing device (APD) | |
US10289418B2 (en) | Cooperative thread array granularity context switch during trap handling | |
US20190018747A1 (en) | Method and apparatus periodic snapshotting in a graphics processing environment | |
WO2015105659A1 (en) | Control of predication across clock domains | |
WO2006059444A1 (ja) | マルチプロセッサシステムとそのシステムにおけるプログラム実行方法 | |
CN108022281B (zh) | 渲染三维图形的方法及装置 | |
US20130135327A1 (en) | Saving and Restoring Non-Shader State Using a Command Processor | |
US9417882B2 (en) | Load synchronization with streaming thread cohorts | |
CN110569105A (zh) | 分布式虚拟机自适应内存一致性协议及其设计方法、终端 | |
US20130160019A1 (en) | Method for Resuming an APD Wavefront in Which a Subset of Elements Have Faulted | |
JPH06202868A (ja) | マルチスカラー・プロセッサ・システムにおける高速浮動小数点例外起動式操作の方法およびシステム |
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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 100095 Building 2, Longxin Industrial Park, Zhongguancun environmental protection technology demonstration park, Haidian District, Beijing Applicant after: Loongson Zhongke Technology Co.,Ltd. Address before: 100095 Building 2, Longxin Industrial Park, Zhongguancun environmental protection technology demonstration park, Haidian District, Beijing Applicant before: LOONGSON TECHNOLOGY Corp.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |