CN111913816A - Gpgpu中簇的实现方法、装置、终端及介质 - Google Patents
Gpgpu中簇的实现方法、装置、终端及介质 Download PDFInfo
- Publication number
- CN111913816A CN111913816A CN202010675151.2A CN202010675151A CN111913816A CN 111913816 A CN111913816 A CN 111913816A CN 202010675151 A CN202010675151 A CN 202010675151A CN 111913816 A CN111913816 A CN 111913816A
- Authority
- CN
- China
- Prior art keywords
- processing
- shared memory
- vertex
- memory
- function unit
- 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.)
- Granted
Links
- 238000012545 processing Methods 0.000 title claims abstract description 184
- 238000000034 method Methods 0.000 title claims abstract description 55
- 230000006870 function Effects 0.000 claims abstract description 65
- 238000004590 computer program Methods 0.000 claims description 19
- 230000008569 process Effects 0.000 claims description 16
- 238000003860 storage Methods 0.000 claims description 9
- 230000009466 transformation Effects 0.000 claims description 7
- 230000000903 blocking effect Effects 0.000 claims description 4
- 230000008030 elimination Effects 0.000 claims description 3
- 238000003379 elimination reaction Methods 0.000 claims description 3
- 238000005516 engineering process Methods 0.000 abstract description 4
- 238000013461 design Methods 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 13
- 239000012634 fragment Substances 0.000 description 6
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 230000009286 beneficial effect Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
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/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- 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
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Image Generation (AREA)
- Advance Control (AREA)
Abstract
本申请实施例提供一种GPGPU中簇的实现方法、装置、终端及介质,涉及GPGPU芯片设计技术,用于克服相关技术中运算核需等待至固定功能单元能够接收数据时将数据发送给固定功能单元导致运算核的处理效率较低的问题。所述GPGPU中簇的实现装置,包括:多个运算核,用于分别执行管理核根据绘制命令创建的第一线程组中的各线程对应的顶点处理任务;片上存储器,具有用于存储所述顶点处理任务的处理结果的共享存储器;固定功能单元,用于获取所述共享存储器存储的所述顶点处理任务的处理结果并进行处理。
Description
技术领域
本申请涉及GPGPU芯片设计技术,尤其是涉及一种GPGPU中簇的实现方法、装置、终端及介质。
背景技术
GPGPU(General-purpose computing on graphics processing units,通用图形处理器)是一种利用处理图形任务的图形处理器来计算原本由中央处理器处理的通用计算任务的大规模并行处理器。由于GPGPU强大的并行处理能力和可编程的特点,令GPGPU可以处理非图形数据。在面对单指令流多数据流(SIMD),且数据处理的运算量远大于数据调度和传输的需要时,通用图形处理器在性能上大大超越了传统的中央处理器应用程序。
相关技术中,GPGPU有大量的运算核,运算核是用来执行顶点处理或片段处理程序的基本单位;这些运算核可以分成若干组,每一组称为一个簇。GPGPU还包括与簇分离的多个固定功能单元,固定功能单元用于根据接收到的簇发送的数据完成一些固定操作,固定功能单元的执行效率会更高,利于提高图形生成速度。然而,在运算核向固定功能单元发送数据时,在固定功能单元无法接收数据时,运算核需等待至固定功能单元能够接收数据时将数据发送给固定功能单元,这就导致运算核的处理效率较低。
发明内容
本申请实施例中提供了一种GPGPU中簇的实现方法、装置、终端及介质,用于克服相关技术中运算核需等待至固定功能单元能够接收数据时将数据发送给固定功能单元导致运算核的处理效率较低的问题。
本申请实施例第一方面提供了一种通用图形处理器GPGPU中簇的实现装置,包括:
多个运算核,用于分别执行管理核根据绘制命令创建的第一线程组中的各线程对应的顶点处理任务;
片上存储器,具有用于存储所述顶点处理任务的处理结果的共享存储器;
固定功能单元,用于获取所述共享存储器存储的所述顶点处理任务的处理结果并进行处理。
本申请实施例第二方面提供了一种通用图形处理器GPGPU中簇的实现方法,包括:
多个运算核执行管理核根据绘制命令创建的第一线程组中的各线程对应的顶点处理任务,将所述顶点处理任务的处理结果存入所述片上存储器的共享存储器;
固定功能单元获取所述共享存储器存储的所述顶点处理任务的处理结果并进行处理。
本申请实施例第三方面提供了一种终端,其特征在于,包括:
存储器;
处理器;以及
计算机程序;
其中,所述计算机程序存储在所述存储器中,并被配置为由所述处理器执行以实现如前述任一项所述的方法。
本申请实施例第四方面提供了一种计算机可读存储介质,其上存储有计算机程序;所述计算机程序被处理器执行以实现如前述任一项所述的方法。
本申请实施例提供一种GPGPU中簇的实现方法、装置、终端及介质,通过多个运算核将所述顶点处理任务的处理结果存入所述片上存储器的共享存储器,固定功能单元在能够接收处理结果数据时接收所述共享存储器存储的所述顶点处理任务的处理结果并进行处理,如此,运算核将顶点处理任务的处理结果存入共享存储器之后可继续执行后续任务,运算核无需等待固定功能单元接收处理结果,利于提高处理效率。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为一示例性实施例提供的方法的流程示意图;
图2为一示例性实施例提供的方法中簇的结构示意图;
图3为一示例性实施例提供的GPGPU中簇的实现装置的结构框图。
具体实施方式
为了使本申请实施例中的技术方案及优点更加清楚明白,以下结合附图对本申请的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本申请的一部分实施例,而不是所有实施例的穷举。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
相关技术中,GPGPU有大量的运算核,运算核是用来执行顶点处理或片段处理程序的基本单位;这些运算核可以分成若干组,每一组称为一个簇。GPGPU还包括与簇分离的多个固定功能单元,固定功能单元用于根据接收到的簇发送的数据完成一些固定操作;由于这些固定功能单元不需要执行程序,因此,其固定功能单元的执行效率会更高,利于提高图形生成速度。然而,在运算核向固定功能单元发送数据时,在固定功能单元无法接收数据时,运算核需等待至固定功能单元能够接收数据时将数据发送给固定功能单元,这就导致运算核的处理效率较低。
为了克服上述技术问题,本实施例提供一种GPGPU中簇的实现方法、装置、终端及介质,通过多个运算核将顶点处理任务的处理结果存入片上存储器的共享存储器,固定功能单元在能够接收处理结果数据时接收共享存储器存储的顶点处理任务的处理结果并进行处理,如此,运算核将顶点处理任务的处理结果存入共享存储器之后可继续执行后续任务,运算核无需等待固定功能单元接收处理结果,利于提高处理效率。
下面结合附图对本实施例提供的GPGPU中簇的实现方法的功能及实现过程进行举例说明。
图1为一示例性实施例提供的方法的流程示意图;图2为一示例性实施例提供的方法中簇的结构示意图。
如图1及图2所示,本实施例提供的GPGPU中簇的实现方法,包括:
S101、多个运算核执行管理核根据绘制命令创建的第一线程组中的各线程对应的顶点处理任务,将顶点处理任务的处理结果存入片上存储器的共享存储器;
S102、固定功能单元获取共享存储器存储的顶点处理任务的处理结果并进行处理。
本示例中,运算核为多个,用于执行顶点处理或者片段处理;具体用于完成基本的浮点运算,浮点运算包括乘加和部分超越函数。管理核用于为各个运算核进行任务分配及状态监控。片上存储器,可分为共享存储器和高速缓存存储器Cache;共享存储器用于存储第一运算簇及固定功能单元等发送的数据;在运算核需要读取共享存储器的数据时,先将相关数据存入Cache,以利于提高运算核的处理效率。在具体实现时,共享存储器内的数据可由相互通信的多方如运算核、管理核、固定功能单元等共享。
在步骤S101之前,管理核获取绘制命令且对绘制命令进行命令解析,根据解析后得到的数据创建第一线程组,且根据解析后得到的数据生成多个顶点处理任务并分配给第一线程组。
在具体实现时,管理核接收通过GPGPU的分配管理单元通过配置总线写入的绘制命令地址;管理核根据绘制命令地址获取相应绘制命令,对绘制命令进行解析;管理核根据解析后的绘制命令获取并组织顶点数据;管理核根据顶点数据分派顶点处理任务,将顶点处理任务分派给创建的第一线程组。其中,分配管理单元用于对绘制命令进行分配管理。顶点处理可包括转换操作等,顶点处理的实现过程可采用本领域的常规设置,本实施例此处不做限定。
其中,第一线程组可以为一组或多组,本实施例此处不做具体限定,具体可根据实际需要来设置;每个线程组包括N(N为运算核个数)个线程;线程组是每个簇执行的最小单位,线程组中的每个线程都有独立的标识ID号,每个簇可以存放若干个线程组,每个线程组也有独立的ID号。
在步骤S101中,多个运算核中有至少部分运算核分别执行管理核根据绘制命令创建的第一线程组中的各线程对应的顶点处理任务,参与顶点处理的每个运算核对应于一个第一线程组中的线程;运算核将顶点处理任务的处理结果存入片上存储器的共享存储器。具体实现时,管理核每完成一次任务分派,运算核执行同步操作,运算核执行完毕时产生中断信息,管理核根据运算核的中断信息确定运算核将当前任务执行完毕,管理核为运算核分配下一任务或者运算核停止执行。
各运算核的处理结果按照分派顶点处理任务的顺序写入共享存储器的地址,从而利于保证各线程组之间的执行顺序正确以及线程组内线程的执行顺序正确。多个运算核根据分派顶点处理任务的顺序依次将处理结果写入共享存储器的地址。管理核根据分派顶点处理任务的顺序依次触发各运算核将处理结果写入共享存储器的地址。写入共享存储器的顶点处理任务的处理结果可提供给固定功能单元。
在步骤S102中,固定功能单元接收固定功能单元获取共享存储器存储的顶点处理任务的处理结果并进行处理。
执行完顶点处理后的处理结果存在共享存储器中,由固定功能单元完成对处理结果的裁剪或视口变换或表面剔除,且进行图元分块以及光栅化生成水平扫描线。其中,固定功能单元所执行的特定功能为本领域的常规设置,其具体实现过程为本领域的常规设置,本实施例此处不再赘述。
在一些示例中,管理核可监控固定功能单元的状态,在确定固定功能单元能够接收处理结果时,管理核将共享存储器的存储的顶点处理任务的处理结果通过总线发送给固定功能单元,或管理核触发其它模块将共享存储器的存储的顶点处理任务的处理结果通过总线发送给固定功能单元。当然,固定功能单元获取处理结果的方式并不限于此,本实施例此处只是举例说明。在另一些示例中,固定功能单元也可从共享存储器的相应地址调用顶点处理任务的处理结果。
本实施例提供一种GPGPU中簇的实现方法,通过多个运算核将顶点处理任务的处理结果存入片上存储器的共享存储器,固定功能单元在能够接收处理结果数据时接收共享存储器存储的顶点处理任务的处理结果并进行处理,如此,运算核将顶点处理任务的处理结果存入共享存储器之后可继续执行后续任务,运算核无需等待固定功能单元接收处理结果,利于提高处理效率。
在其中一种可能的实现方式中,在生成水平扫描线之后,还包括:
管理核生成水平线上的每个片段,将根据片段生成片段处理任务分派给创建的第二线程组;
多个运算核执行第二线程组中的各线程对应的片段处理任务,将执行完毕的片段处理任务所对应的片段写入共享存储器;
DMA(直接存储器访问,Direct Memory Access)将共享存储器的片段写出到外部存储器。
在具体实现过程中,由于簇执行的是分块后的渲染数据,因此各个簇的执行是完全独立的,由管理核逐个生成水平扫描线上的每个片段,管理核根据生成的片段生成片段处理任务;管理核创建线程并打包成第二线程组,将生成的片段分派给第二线程组。其中,第二线程组可以为一个或多个,具体可以根据实际需要来设置。参与片段处理的每个运算核分别执行第二线程组中的一个线程;具体地,多个运算核执行第二线程组中的各线程对应的片段处理任务,将执行完毕的片段处理任务所对应的片段写入共享存储器。直接存储器访问DMA获取共享存储器的片段,DMA将共享存储器的片段写出到外部存储器。
在上述片段处理过程中,在运算核访问纹理数据时,固定功能单元从外部高速缓冲存储器获取纹理数据,将纹理数据存于共享存储器,运算核从共享存储器获取纹理数据。具体地,固定功能单元接收外部高速缓冲存储器发送的纹理数据;或由运算核或管理核触发固定功能单元从外部高速缓冲存储器获取纹理数据。固定功能单元将获取的纹理数据发送给共享存储器进行存储,运算核从共享存储器获取纹理数据。当然,固定功能单元也可直接将获取的纹理数据发送给运算核。
在本实施例中的GPGPU可以为由多个簇通过互连总线构成的多簇GPGPU;其中,簇与固定功能单元紧耦合,将固定功能单元放到簇的内部,对外接口简单,降低了簇与固定功能单元交互的代价,且可灵活扩展簇的数目,达到性能提升的目的。如图2所示的簇的结构示意图,可根据实际需要增加运算核CORE的数量,扩展簇的数目;在管理核根据各运算核的中断信息(内部中断)确定执行完当前绘制命令时,管理核可生成对外的中断信息(外部中断)并发送给GPGPU的相应模块。
图3为一示例性实施例提供的GPGPU中簇的实现装置的结构框图。
如图3所示,本实施例还提供一种GPGPU中簇的实现装置,其功能及实现过程与前述方法实施例相对应,本实施例此处不再赘述。
本实施例提供一种GPGPU中簇的实现装置,包括:
多个运算核31,用于分别执行管理核根据绘制命令创建的第一线程组中的各线程对应的顶点处理任务;
片上存储器32,具有用于存储顶点处理任务的处理结果的共享存储器;
固定功能单元33,用于获取共享存储器存储的顶点处理任务的处理结果并进行处理。
在其中一种可能的实现方式中,GPGPU中簇的实现装置还包括:管理核34,用于:
接收通过配置总线写入的绘制命令地址;
根据绘制命令地址获取相应绘制命令,对绘制命令进行解析;
根据解析后的绘制命令获取并组织顶点数据;
根据顶点数据分派顶点处理任务,将顶点处理任务分派给创建的第一线程组。
在其中一种可能的实现方式中,多个运算核31具体用于:
按照顶点处理任务的分派顺序将处理结果存入片上存储器32的共享存储器。
在其中一种可能的实现方式中,固定功能单元33具体用于:
获取共享存储器存储的顶点处理任务的处理结果并进行裁剪或视口变换或表面剔除;
对裁剪或视口变换或表面剔除后的处理结果进行图元分块及光栅化处理,生成水平扫描线。
在其中一种可能的实现方式中,管理核34还用于生成水平线上的每个片段,将根据片段生成片段处理任务分派给创建的第二线程组;
多个运算核31用于分别执行第二线程组中的各线程对应的片段处理任务,将执行完毕的片段处理任务对应的片段写入共享存储器;
所述GPGPU中簇的实现装置还包括:
直接存储器访问DMA35,用于将共享存储器的片段写出到外部存储器。
在其中一种可能的实现方式中,固定功能单元33还用于在运算核获取纹理数据时,从外部高速缓冲存储器获取纹理数据,将纹理数据存于共享存储器;
多个运算核31还用于从共享存储器获取纹理数据。
在其中一种可能的实现方式中,管理核34还用于:
在确定固定功能单元能够接收处理结果时,触发将共享存储器的存储的顶点处理任务的处理结果发送给固定功能单元。
本实施例提供一种GPGPU中簇的实现装置,通过多个运算核将顶点处理任务的处理结果存入片上存储器的共享存储器,固定功能单元在能够接收处理结果数据时接收共享存储器存储的顶点处理任务的处理结果并进行处理,如此,运算核将顶点处理任务的处理结果存入共享存储器之后可继续执行后续任务,运算核无需等待固定功能单元接收处理结果,利于提高处理效率。
本实施例提供一种终端设备,包括:
存储器;
处理器;以及
计算机程序;
其中,计算机程序存储在存储器中,并被配置为由处理器执行以实现前述实施例的方法。
存储器可能包含高速随机存取存储器(RAM:Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器可通过至少一个通信接口(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。
处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,实施例一揭示的方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的相应方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件单元组合执行完成。软件单元可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
本实施例提供一种计算机可读存储介质,其上存储有计算机程序;计算机程序被处理器执行以实现前述实施例的方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (16)
1.一种通用图形处理器GPGPU中簇的实现装置,其特征在于,包括:
多个运算核,用于分别执行管理核根据绘制命令创建的第一线程组中的各线程对应的顶点处理任务;
片上存储器,具有用于存储所述顶点处理任务的处理结果的共享存储器;
固定功能单元,用于获取所述共享存储器存储的所述顶点处理任务的处理结果并进行处理。
2.根据权利要求1所述的装置,其特征在于,还包括:管理核,用于:
接收通过配置总线写入的绘制命令地址;
根据所述绘制命令地址获取相应绘制命令,对所述绘制命令进行解析;
根据解析后的绘制命令获取并组织顶点数据;
根据所述顶点数据分派顶点处理任务,将所述顶点处理任务分派给创建的第一线程组。
3.根据权利要求2所述的装置,其特征在于,所述多个运算核具体用于:
按照顶点处理任务的分派顺序将处理结果存入所述片上存储器的共享存储器。
4.根据权利要求2所述的装置,其特征在于,固定功能单元具体用于:
固定功能单元获取所述共享存储器存储的所述顶点处理任务的处理结果并进行裁剪或视口变换或表面剔除;
对裁剪或视口变换或表面剔除后的所述处理结果进行图元分块及光栅化处理,生成水平扫描线。
5.根据权利要求4所述的装置,其特征在于,
所述管理核还用于生成所述水平线上的每个片段,将根据所述片段生成片段处理任务分派给创建的第二线程组;
所述多个运算核还用于分别执行所述第二线程组中的各线程对应的片段处理任务,将执行完毕的片段处理任务对应的片段写入所述共享存储器;
所述GPGPU中簇的实现装置还包括:
直接存储器访问DMA,用于将所述共享存储器的片段写出到外部存储器。
6.根据权利要求1所述的装置,其特征在于,
所述固定功能单元还用于在所述运算核获取纹理数据时,从外部高速缓冲存储器获取纹理数据,将所述纹理数据存于所述共享存储器;
所述运算核还用于从所述共享存储器获取所述纹理数据。
7.根据权利要求1所述的装置,其特征在于,所述管理核还用于:
在确定所述固定功能单元能够接收处理结果时,触发将所述共享存储器的存储的所述顶点处理任务的处理结果发送给所述固定功能单元。
8.一种通用图形处理器GPGPU中簇的实现方法,其特征在于,包括:
多个运算核执行管理核根据绘制命令创建的第一线程组中的各线程对应的顶点处理任务,将所述顶点处理任务的处理结果存入片上存储器的共享存储器;
固定功能单元获取所述共享存储器存储的所述顶点处理任务的处理结果并进行处理。
9.根据权利要求8所述的方法,其特征在于,在所述多个运算核执行管理核创建的第一线程组中的各线程对应的顶点处理任务之前,还包括:
管理核接收通过配置总线写入的绘制命令地址;
管理核根据所述绘制命令地址获取相应绘制命令,对所述绘制命令进行解析;
管理核根据解析后的绘制命令获取并组织顶点数据;
管理核根据所述顶点数据分派顶点处理任务,将所述顶点处理任务分派给创建的第一线程组。
10.根据权利要求9所述的方法,其特征在于,所述将所述顶点处理任务的处理结果存入所述片上存储器的共享存储器,包括:
按照顶点处理任务的分派顺序将处理结果存入所述片上存储器的共享存储器。
11.根据权利要求9所述的方法,其特征在于,所述固定功能单元获取所述共享存储器存储的所述顶点处理任务的处理结果并进行处理,包括:
固定功能单元获取所述共享存储器存储的所述顶点处理任务的处理结果并进行裁剪或视口变换或表面剔除;
固定功能单元对裁剪或视口变换或表面剔除后的所述处理结果进行图元分块及光栅化处理,生成水平扫描线。
12.根据权利要求11所述的方法,其特征在于,在生成水平扫描线之后,还包括:
所述管理核生成所述水平线上的每个片段,将根据所述片段生成片段处理任务分派给创建的第二线程组;
所述多个运算核执行所述第二线程组中的各线程对应的片段处理任务,将执行完毕的片段处理任务所对应的片段写入所述共享存储器;
直接存储器访问DMA将所述共享存储器的片段写出到外部存储器。
13.根据权利要求12所述的方法,其特征在于,所述多个运算核执行所述第二线程组中的各线程对应的片段处理任务包括:
在所述运算核获取纹理数据时,所述固定功能单元从外部高速缓冲存储器获取纹理数据,将所述纹理数据存于所述共享存储器,所述运算核从所述共享存储器获取所述纹理数据。
14.根据权利要求8所述的方法,其特征在于,固定功能单元获取所述共享存储器存储的所述顶点处理任务的处理结果,包括:
在确定所述固定功能单元能够接收处理结果时,管理核触发将所述共享存储器的存储的所述顶点处理任务的处理结果发送给所述固定功能单元。
15.一种终端,其特征在于,包括:
存储器;
处理器;以及
计算机程序;
其中,所述计算机程序存储在所述存储器中,并被配置为由所述处理器执行以实现如权利要求8-14任一项所述的方法。
16.一种计算机可读存储介质,其特征在于,其上存储有计算机程序;所述计算机程序被处理器执行以实现如权利要求8-14任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010675151.2A CN111913816B (zh) | 2020-07-14 | 2020-07-14 | Gpgpu中簇的实现方法、装置、终端及介质 |
PCT/CN2020/118641 WO2022011841A1 (zh) | 2020-07-14 | 2020-09-29 | Gpgpu中簇的实现方法、装置、终端及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010675151.2A CN111913816B (zh) | 2020-07-14 | 2020-07-14 | Gpgpu中簇的实现方法、装置、终端及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111913816A true CN111913816A (zh) | 2020-11-10 |
CN111913816B CN111913816B (zh) | 2024-08-16 |
Family
ID=73281085
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010675151.2A Active CN111913816B (zh) | 2020-07-14 | 2020-07-14 | Gpgpu中簇的实现方法、装置、终端及介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111913816B (zh) |
WO (1) | WO2022011841A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115827252A (zh) * | 2023-01-10 | 2023-03-21 | 南京砺算科技有限公司 | 顶点数据处理方法、图形处理器、电子设备及存储介质 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116645263B (zh) * | 2023-07-25 | 2023-12-05 | 深流微智能科技(深圳)有限公司 | 一种图形处理单元 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101425175A (zh) * | 2007-12-06 | 2009-05-06 | 威盛电子股份有限公司 | 着色器处理系统与方法 |
US20160358301A1 (en) * | 2015-06-04 | 2016-12-08 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Video Adapter Alignment |
US20160358300A1 (en) * | 2015-06-03 | 2016-12-08 | Intel Corporation | Automated conversion of gpgpu workloads to 3d pipeline workloads |
CN107562549A (zh) * | 2017-08-21 | 2018-01-09 | 西安电子科技大学 | 基于片上总线和共享内存的异构众核asip架构 |
CN110597740A (zh) * | 2019-11-11 | 2019-12-20 | 北京中科寒武纪科技有限公司 | 共享存储空间的访问方法、装置以及系统和存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8817030B2 (en) * | 2009-09-30 | 2014-08-26 | Creativec Llc | GPGPU systems and services |
CN104809684B (zh) * | 2015-04-02 | 2018-03-27 | 华为技术有限公司 | 图形处理方法、装置及系统 |
US10229470B2 (en) * | 2016-08-05 | 2019-03-12 | Intel IP Corporation | Mechanism to accelerate graphics workloads in a multi-core computing architecture |
CN108389154B (zh) * | 2018-03-27 | 2022-12-02 | 长沙景嘉微电子股份有限公司 | Gpu中一种用于并行绘制的裁剪区域分割技术的实现方法 |
CN108520489B (zh) * | 2018-04-12 | 2022-12-06 | 长沙景美集成电路设计有限公司 | Gpu中一种实现命令解析和顶点获取并行的装置和方法 |
-
2020
- 2020-07-14 CN CN202010675151.2A patent/CN111913816B/zh active Active
- 2020-09-29 WO PCT/CN2020/118641 patent/WO2022011841A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101425175A (zh) * | 2007-12-06 | 2009-05-06 | 威盛电子股份有限公司 | 着色器处理系统与方法 |
US20160358300A1 (en) * | 2015-06-03 | 2016-12-08 | Intel Corporation | Automated conversion of gpgpu workloads to 3d pipeline workloads |
US20160358301A1 (en) * | 2015-06-04 | 2016-12-08 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Video Adapter Alignment |
CN107562549A (zh) * | 2017-08-21 | 2018-01-09 | 西安电子科技大学 | 基于片上总线和共享内存的异构众核asip架构 |
CN110597740A (zh) * | 2019-11-11 | 2019-12-20 | 北京中科寒武纪科技有限公司 | 共享存储空间的访问方法、装置以及系统和存储介质 |
Non-Patent Citations (2)
Title |
---|
李伟;李洋;陈帆;: "基于共享存储器的密码多核处理器核间通信机制研究与设计", 微电子学与计算机, no. 01 * |
马安国: "高效能GPGPU体系结构关键技术研究", 《中国博士电子期刊论文数据辑》, pages 3 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115827252A (zh) * | 2023-01-10 | 2023-03-21 | 南京砺算科技有限公司 | 顶点数据处理方法、图形处理器、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111913816B (zh) | 2024-08-16 |
WO2022011841A1 (zh) | 2022-01-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11782870B2 (en) | Configurable heterogeneous AI processor with distributed task queues allowing parallel task execution | |
US20210073169A1 (en) | On-chip heterogeneous ai processor | |
KR102432380B1 (ko) | 워프 클러스터링을 수행하는 방법 | |
CN107515786B (zh) | 资源分配方法、主装置、从装置和分布式计算系统 | |
CN110308982B (zh) | 一种共享内存复用方法及装置 | |
US9378533B2 (en) | Central processing unit, GPU simulation method thereof, and computing system including the same | |
US10649810B2 (en) | Data driven scheduler on multiple computing cores | |
CN111913816B (zh) | Gpgpu中簇的实现方法、装置、终端及介质 | |
US11875425B2 (en) | Implementing heterogeneous wavefronts on a graphics processing unit (GPU) | |
CN114153500A (zh) | 指令调度方法、指令调度装置、处理器及存储介质 | |
US20200042868A1 (en) | Method and apparatus for designing flexible dataflow processor for artificial intelligent devices | |
US9760969B2 (en) | Graphic processing system and method thereof | |
CN111381946A (zh) | 任务处理方法、装置及相关产品 | |
CN112395062A (zh) | 任务处理方法、装置、设备及计算机可读存储介质 | |
CN116302497A (zh) | 资源分配方法、装置、电子设备、存储介质 | |
CN107678853B (zh) | 图形处理任务的调度方法以及装置 | |
CN112463218B (zh) | 指令发射控制方法及电路、数据处理方法及电路 | |
CN114363478A (zh) | 信号处理单元、方法、加速单元、电子设备和片上系统 | |
CN118296084B (zh) | 数据处理设备、指令同步方法、电子设备和存储介质 | |
CN109800064B (zh) | 一种处理器和线程处理方法 | |
Hwang et al. | Hardware Interrupt and CPU Contention aware CPU/GPU Co-Scheduling on Multi-Cluster System | |
CN116681575B (zh) | 图形处理单元、图形渲染方法、存储介质、终端设备 | |
CN113360186B (zh) | 任务调度方法、装置、电子设备及计算机可读存储介质 | |
CN117389512B (zh) | 一种算术逻辑单元alu系统、电子设备和存储介质 | |
US20240338252A1 (en) | Thread allocation method, thread allocation device, and computer readable recording medium |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |