在多处理单元中使用片上存储器的数据处理制造技术

技术编号:8494020 阅读:186 留言:0更新日期:2013-03-29 06:51
本发明专利技术公开了在处理器中利用多个处理单元中的片上本地存储器来提升数据处理性能的方法。根据一个实施例,在处理器中利用多个处理单元对数据元素进行处理的方法包括:在每一个所述处理单元中运行(launching)具有第一类型线程的第一波阵面(wavefront),其后是具有第二类型线程的第二波阵面(wavefront),其中第一波阵面读取来自片外(off-chip)共享存储器的数据元素的部分以作为输入并生成第一输出;将该第一输出写入到相应的处理单元的片上本地存储器中;并将由第二波阵面生成的第二输出写入到该片上本地存储器中,其中到第二波阵面的输入包括来自第一输出的第一多个数据元素。同时也公开了相应的系统和计算机程序产品的具体实施方式。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及提升处理器的数据处理性能。
技术介绍
包括多处理单元的处理器通常应用在具有较大数量的数据元素的并行处理过程中。例如,包括多个单指令多数据(SIMD: single instruction multiple data)处理单兀的图形处理器(GPU:graphic processor)能够并行地处理大量的图形数据。在大多数情况下,数据元素由一系列单独的线程来处理直到获得了最终输出。例如,在一个图形处理器中,包括顶点着色器、几何着色器以及像素着色器的不同类型的线程序列可以按顺序在数据元素组上进行操作直到用于渲染显示的最终输出已经准备好。在不同阶段采用多个单独类型的线程进行数据元素的处理激活了流水线处理,并因此有利于提升数据的输出处理量。处理数据元素组的每一个单独的线程序列从共享的存储器中获得其输入并将其输出写入到共享存储器中,在该共享存储器中刚写入的数据可以由随后的线程进行读取。通常来说,在共享存储器中的存储器访问操作会消耗大量的时钟周期。当同步线程的数量增加时,基于存储器访问的延迟也相应地增加。在具有多个单独处理单元来并行地执行多个线程的传统处理器中,存储器访问延迟已经使得处理器的整个处理速度都显著地下降。因此,需要这样的系统和方法,其通过减少由处理数据元素组的程序序列所进行的存储器访问而消耗的时间以提升具有多个处理单元的处理器的数据处理性能。
技术实现思路
本专利技术公开了一些在多个数据处理单元中采用片上(on-chip)本地存储器以提升处理器的数据处理性能的装置和方法。根据一个实施例,利用多个处理单元对处理器中的数据元素进行处理的方法包括在每一个所述处理单元中运行(launching)具有第一类型线程的第一波阵面(wavefront),其后是具有第二类型线程的第二波阵面(wavefront),其中第一波阵面读取来自片外(off-chip)共享存储器的数据元素的部分以作为输入并生成第一输出;将第一输出写入到相应的处理单元的片上本地存储器中;并将由第二波阵面生成的第二输出写入到片上本地存储器中,其中到第二波阵面的输入包括来自第一输出的第一多个数据元素。在另一个实施例中提供一个系统,包括包括多个处理单元的处理器,每一个处理单元包括片上本地存储器;耦合到该处理单元并被配置为存储多个输入数据单元的片外共享存储器;波阵面调度模块;以及波阵面执行模块。该波阵面调度模块配置为在每一个所述处理单元中运行(launching)具有第一类型线程的第一波阵面(wavefront),其后是具有第二类型线程的第二波阵面(wavefront),其中第一波阵面被配置为读取来自片外(off-chip)共享存储器的数据元素的一部分。将所述波阵面执行模块配置为将第一输出写入到相应的处理单元的片上本地存储器中;并将由第二波阵面生成的第二输出写入到片上本地存储器中,其中到第二波阵面的输入包括来自第一输出的第一多个数据元素。然而另一个实施例是包括计算机可读媒介的有形计算机程序产品,该计算机可读媒介具有记录在其上的计算机程序逻辑,以便使得包括多个处理单元的处理器以在每一个所述处理单元中运行(launching)具有第一类型线程的第一波阵面(wavefront),其后是具有第二类型线程的第二波阵面(wavefront),其中第一波阵面读取来自片外(off-chip)共享存储器的数据元素的一部分以作为输入并生成第一输出;将第一输出写入到相应的处理单元的片上本地存储器中;并将由第二波阵面生成的第二输出写入到片上本地存储器中,其中到第二波阵面的输入包括来自第一输出的第一多个数据元素。下面参照附图详细说明本专利技术进一步的实施例、特征和优点,以及本专利技术各实施例的结构及操作。附图说明包含于说明书中并构成其部分的附图与上面的概括说明以及下面给出的实施例的详细说明一起阐释本专利技术的实施例,用于解释本专利技术的原理。在附图中图1显示了根据本专利技术的一个实施例的数据处理设备;图2显示了根据本专利技术的一个实施例在具有多个处理单元的处理器中进行数据处理的示例性的方法;图3显示了根据本专利技术的一个实施例,在具有多个处理单元的处理器上执行第一波阵面的示例性方法;图4显示了根据本专利技术的一个实施例,在具有多个处理单元的处理器上执行第二波阵面的示例性方法;图5显示了根据本专利技术的一个实施例,用于确定线程波阵面分配的方法。具体实施例方式尽管本文用特定应用的示例性实施例对本专利技术进行了描述,但应该了解到本专利技术并不这些实施例为限。得到本文所提供的教导的本领域技术人员会认识到本专利技术范围内的其他修改、应用和实施方式以及本专利技术有显著实用性的其他领域。本专利技术的实施例可用于任何计算机系统或者计算机设备中,其中的多个处理单元能同步地访问共享存储器。例如,但不限于此,本专利技术的实施例可包括计算机、游戏平台、娱乐平台、个人数字助理,移动计算机设备,电视以及视频平台。大多数的现代计算机系统能够进行多处理操作,例如,其具有多处理器,例如但不限于,多中央处理单兀(CPU:central processor units)、图形处理单兀(GPU:graphicprocessor units)、以及其他控制器,诸如存储器控制器和/或直接存储器访问(DMA:direct memory access)控制器,其能够从处理器上卸载一些处理。同时,在许多图形处理设备中,例如可通过并行地处理多个数据流来进行大量的并行处理。这样的多处理和并行处理,尽管显著地增加了系统的效率和速度,同时也产生了包括基于竞争的很多问题,即,多个设备和/或进程试图同时访问或者使用相同的系统资源。例如,多个设备和/或进程需要访问共享存储器以执行它们的操作。然而,由于共享存储器的接口数量可能并没有足够到能够支持所有的并行访问请求,这样冲突就会产生并且需要对共享存储器进行访问以继续其处理的一个或多个系统设备和/或进程则被延迟。在图形处理设备中,不同类型的进程,例如顶点着色器,几何着色器,以及像素着色器需要访问存储器以对存储在存储器中的图形对象(即,顶点数据,像素数据)进行读取、写入、操控和/或处理。例如,每一个着色器在其处理周期的读取输入和写入输出阶段都需要访问共享存储器。包含顶点着色器、几何着色器和像素着色器的图形流水线通过并行地使每一种着色器在任何给定时间内处理位于不同处理阶段的数据单元组,从而使得系统免于受到存储器访问延迟的影响。当图形流水线的一部分遇到访问存储器中数据的延迟加剧时,其将会导致系统操作的整体下降和/或控制流水线的复杂度的增加,这样的话则会有足够的并行处理能力来隐藏存储器访问的延迟。在具有多个处理单元的设备中,例如,多个单指令多数据(SMD:singleinstruction multiple data)处理单元或多个其他的算术逻辑单元(ALU),每一个单元能够同时执行多个线程,由于在每个处理设备中多个处理设备和多个线程访问同时访问共享存储器大大的增加,因此冲突延迟可能会加重。例如,在具有多个SMD处理单元的图形处理设备中,像素数据组由“线程群组”序列来处理。为每一个处理单元分配波阵面线程。该“波阵面”线程是来自线程群组中的一个或多个线程。由于在一个波阵面中同时的线程访问请求,以及由于在其他处理单元中执行的波阵面,因此存储器访问的冲突可本文档来自技高网...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】2010.07.19 US 61/365,7091.一种利用多个处理单元在处理器中处理数据元素的方法,其包括 在每一个所述处理单元中运行具有第一类型线程的第一波阵面,其后是具有第二类型线程的第二波阵面,其中所述第一波阵面读取来自片外共享存储器的所述数据元素的一部分以作为输入并生成第一输出; 将所述第一输出写入到各自的所述处理单元的片上本地存储器;以及将所述第二波阵面生成的第二输出写入到所述片上本地存储器,其中到所述第二波阵面的输入包括来自所述第一输出的多个第一数据元素。2.如权利要求1所述的方法,进一步包括 利用所述第二波阵面处理所述第一多个数据元素来生成所述第二输出,其中所述第二输出中的数据元素的数量明显不同于来自所述第一多个数据元素的数量。3.如权利要求2所述的方法,进一步包括 根据权利要求2所述的方法,其中所述第二输出中的数据元素的数量是动态确定的。4.如权利要求2所述的方法,其中所述第二波阵面包括一个或多个几何着色器线程。5.如权利要求4所述的方法,其中所述第二输出通过第一输出的几何放大生成。6.如权利要求1所述的方法,进一步包括 在第一处理单元中在所述第二波阵面之后执行第三波阵面,其中该第三波阵面读取来自所述片上本地存储器中的所述第二输出。7.如权利要求1所述的方法,进一步包括 对各自的所述处理单元基于至少所述片上本地存储器中的可用存储器来确定要处理的所述数据元素的数量;以及 对各自的所述处理单元基于所确定的所述数量来调整所述第一和第二波阵面的尺寸。8.如权利要求7所述的方法,其中所述确定包括 估计所述第一输出的存储器尺寸; 估计所述第二输出的存储器尺寸;以及 利用所估计的所述第一和第二输出的所述存储器尺寸来计算所需的片上存储器的尺寸。9.如权利要求1所述的方法,其中所述运行包括 执行所述第一波阵面; 检测所述第一波阵面的完成;以及 继所述检测之后由所述第二波阵面读取所述第一输出。10.如权利要求9所述的方法,其中所述执行所述第一波阵面包括 确定所述第一波阵面的各自线程的输出尺寸;以及 将到所述片上本地存储器中的输出偏移量提供给所述第一波阵面的所述各自线程中的每一个。11.如权利要求9所述的方法,其中所述运行进一步包括 确定所述第二波阵面的各自线程的输出尺寸;以及 将从所述第一输出中读取的到所述片上本地存储器中的...

【专利技术属性】
技术研发人员:维妮特·戈埃尔托德·马丁芒热斯·尼娅舒
申请(专利权)人:超威半导体公司
类型:
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1