CN102047241B - 本地与全局数据共享 - Google Patents
本地与全局数据共享 Download PDFInfo
- Publication number
- CN102047241B CN102047241B CN200980119960.7A CN200980119960A CN102047241B CN 102047241 B CN102047241 B CN 102047241B CN 200980119960 A CN200980119960 A CN 200980119960A CN 102047241 B CN102047241 B CN 102047241B
- Authority
- CN
- China
- Prior art keywords
- thread
- simd
- privately owned
- processor
- processing 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.)
- Active
Links
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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
- G06F9/3009—Thread control instructions
-
- 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/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
- G06F9/30087—Synchronisation or serialisation instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8007—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
-
- 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/30098—Register arrangements
-
- 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/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/30123—Organisation of register space, e.g. banked or distributed register file according to context, e.g. thread buffers
-
- 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/3824—Operand accessing
- G06F9/3834—Maintaining memory consistency
-
- 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/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
-
- 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
-
- 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]
-
- 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/3888—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple threads [SIMT] in parallel
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Multimedia (AREA)
- Computing Systems (AREA)
- Image Processing (AREA)
- Multi Processors (AREA)
Abstract
本发明揭露一种图形处理单元,该图形处理单元具有处理器,该处理器具有一个或多个SIMD处理单元,以及对应该一个或多个SIMD处理单元之一的本地数据共享,该本地数据共享包括供分配至一个或多个执行波阵面(wavefront)的各线程群组的一个或多个低延迟可访问存储区,以及全局数据共享,该全局数据共享包括供各线程群组的一个或多个低延迟存储区。
Description
技术领域
本发明一般涉及优化图形处理单元中执行线程之间的数据共享。
背景技术
图形处理单元(graphics processing unit;GPU)是为图形处理操作优化的专用集成电路。在执行具有苛刻的图形处理需求的应用,例如视频游戏应用,的计算设备中(例如个人电脑、渲染农场(rendering farm)或服务器、手持设备、数字电视等)经常包含有图形处理单元(GPU)。
为提升处理效率,图形处理单元(GPU)通常利用单指令多数据(single instruction multiple data;“SIMD”,或“向量”)指令执行并行线程,以实现数据级并行。这使得SIMD处理器能够例如通过对单个SIMD通道(lane)上的各像素运行独立的线程操作而对多个像素数据执行相同的指令。但是,在未执行计算复杂且成本昂贵的数据存储和检索指令的情况下,在任一SIMD通道内生成的数据通常无法被其他SIMD通道访问。
因此,需要提供一种改进技术,以实现SIMD通道之间的数据共享。
发明内容
本发明实施例包含一种图形处理单元,该图形处理单元包括:多个SIMD处理单元,各SIMD处理单元包括:多个线程处理器,多个通用寄存器(general purpose register;GPR)文件,各GPR文件与该多个线程处理器之一通信,以及本地数据共享(local data share;LDS),该本地数据共享与该多个线程处理器的各线程处理器通信;以及全局数据共享(global data share;GDS),该全局数据共享与该多个SIMD处理单元的各SIMD处理单元中该多个线程处理器的各线程处理器通信。
本发明实施例还包含一种制造方法,其包括多个SIMD处理单元,各SIMD处理单元包括:多个线程处理器,多个通用寄存器(GPR)文件,各GPR文件与该多个线程处理器之一通信,以及本地数据共享(LDS),该本地数据共享与该多个线程处理器的各线程处理器通信;以及形成全局数据共享(GDS),该全局数据共享与该多个SIMD处理单元的各SIMD处理单元中该多个线程处理器的各线程处理器通信。
本发明实施例还包含一种计算机可读介质,其上存储有计算机可执行指令,若由计算设备执行该些指令,则使该计算设备执行一种方法,该方法包括:将图像的一组像素分配至一组SIMD处理器;将该组像素的像素子集分配至各该组SIMD处理器的各SIMD处理器的各处理通道;将该像素子集存储在与各处理通道关联的通用寄存器(GPR)文件中;基于该像素子集计算逐通道(per-lane)本地结果;以及将该逐通道本地结果自该GPR文件写入与该处理通道关联的本地数据共享(LDS)的私有区域,该LDS仅与包含该处理通道的该SIMD处理器关联。
下面参照附图进一步详细描述本发明的特征和优点,以及本发明不同实施例的结构和操作。应当注意的是,本发明并不限于这里所述的特定实施例。这里所提出的实施例仅仅是出于说明目的。基于这里所包含的教导,其他实施例对于相关领域的技术人员将显而易见。
附图说明
包含于此并构成说明书一部分的附图显示本发明实施例,并进一步与书面描述一起用于解释本发明的原理,并使相关领域的技术人员能够制造和使用本发明。
图1显示依据本发明实施例的计算架构;
图2显示依据本发明实施例的本地数据共享;
图3显示依据本发明实施例的全局数据共享;
图4显示依据本发明实施例的利用该计算架构改进图像处理算法的步骤流程图;以及
图5显示可实施本发明实施例的示例计算机系统。
下面参照附图进一步详细描述本发明的特征和优点,以及本发明不同实施例的结构和操作。应当注意的是,本发明并不限于这里所述的特定实施例。这里所提出的实施例仅仅是出于说明目的。基于这里所包含的教导,其他实施例对于相关领域的技术人员将显而易见。
具体实施方式
I介绍
以下参照附图对本发明示例实施例作详细描述,所述附图说明与本发明一致的示例实施例。本发明还可具有其他实施例,并可在本发明的精神和范围内修改该些实施例。因此,所作详细描述并非意图限制本发明。相反,本发明的范围由所附权利要求定义。
对于本领域技术人员显而易见的是,如下所述的本发明可在软件、硬件、固件和/或附图所示的实体等诸多不同的实施例中实施。专门控制硬件以实施本发明的任意实际的软件代码并不限制本发明。因此,对本发明的操作行为描述的前提是在给定的详细程度下可对所述实施例进行修改和变更。此外,对于本领域的技术人员显而易见的是,可通过使用计算机可读代码(如上所述),包含通用编程语言(例如C或C++),Verilog HDL、VHDL、Altera HDL(AHDL)等硬件描述语言(HDL),或其他可用的编程和/或原理图撷取工具(例如电路撷取工具)部分地实施本发明的各种实施例的模拟、综合和/或制造。
该计算机可读代码可设置于任意已知的计算机可用介质中,包含半导体、磁盘、光盘(例如CD-ROM、DVD-ROM),并作为计算机数据信号实施于计算机可用(例如可读)传输介质中(例如载波或任意其他介质,包含数字介质、光学介质或基于模拟的介质)。因此,该代码可在包含Internet以及互联网的通信网络上传输。应当理解,由上述系统和技术实现的功能和/或提供的结构可表示在以程序代码实施的核心中(例如GPU核心),并可转换成硬件作为集成电路生产的一部分。
图1显示依据本发明实施例的计算架构100。架构100包含一个或多个SIMD处理器102a-102m。依据本发明实施例,各SIMD处理器包含一个或多个线程处理器,在SIMD 0102a中显示为104a0-104an,在SIMD m 102m中显示为104m0-104mn。此外,依据本发明实施例,各线程处理器也关联一通用寄存器(GPR)文件,在SIMD 0 102a中显示为106a0-106an,在SIMD m 102m中显示为106m0-106mn。尽管该些附图标记显示本发明的范围内考虑了多个SIMD处理器,各具有多个线程处理器和GPR文件,但文中偶尔会通过引用基本附图标记(例如102、104和106)而涉及单个SIMD处理器、线程处理器和GPR文件。
通常将单个线程处理器104和与其关联的GPR文件106的结合称作SIMD处理通道(或简称为“通道”或“SIMD通道”)。相关领域的技术人员应了解,与该线程处理器104和GPR文件106关联的其他元素可构成单个SIMD通道的一部分,并且图1所示的特定实施例仅为示例,而非限制本发明。
依据本发明实施例,架构100进一步包含多个本地数据共享(“LDS”)108a-108m,各SIMD处理器102关联一LDS 108。而且,架构100包含一全局数据共享(“GDS”)110,其可由各SIMD处理器102的各线程处理器104访问。该LDS和GDS将在后面进一步详细讨论。
在架构100上执行一进程(process)时,该进程可生成线程集(collection of thread)以在一SIMD处理器102上执行。在SIMD处理器102中,为该线程集中的各线程分配一特定的SIMD通道,因而将各线程分配至一特定的线程处理器104和GPR文件106。依据本发明实施例,由同一进程生成的该线程集作为“波阵面”分配至一SIMD处理器102,从而允许暂时掩蔽该波阵面中单个线程的执行。依据本发明实施例,可将多个波阵面分配至一SIMD处理器102,如同将任意其他线程集分配至一SIMD处理器102一样。将SIMD处理器102中运行的所有线程,包括多个波阵面,或其任意子集,统称为一线程群组(group)。
II通用寄存器
依据本发明实施例,各SIMD处理器102包含一个或多个线程处理器104,各线程处理器与一GPR文件106关联。如上所述,可将一波阵面分配至一SIMD处理器。该波阵面中的各线程被分配至一特定的SIMD通道执行,因而被分配至与该SIMD通道关联的一特定线程处理器104和GPR文件106。线程处理器104上执行的线程能够读写同一通道的GPR文件106的寄存器。相关领域的技术人员应了解,目前有多种寄存器访问实施技术能够使线程处理器104与GPR文件106通信,从而访问GPR文件106的寄存器,并且本发明的实施例不限于任意特定的实施技术。
依据本发明实施例,各GPR文件106包含与线程处理器104上执行的一线程关联的指定私有空间或寄存器区块。依据本发明进一步实施例,GPR文件106被提前分割(segment)为多个私有寄存器区块(private register block)。线程处理器104中执行的多个新线程于首次执行时被分配一私有寄存器区块,并成为可写访问该私有寄存器区块的唯一线程。
依据本发明另一实施例,GPR文件106包含共享全局池(sharedglobal pool),在线程处理器104上执行的任意线程,无论其与哪个波阵面关联,都能够读写该共享全局池。该功能允许相邻线程访问保留全局区,因而允许读取、修改和写入顺序无关(order-independent)的相关全局数据。该功能还允许分配至同一SIMD通道但属于不同波阵面的多个线程之间的快速共享。
III本地数据共享
如上所述,各SIMD处理器102包含一LDS 108。该LDS 108可供同一SIMD处理器102内的各线程处理器104直接访问。依据本发明一实施例,LDS 108被分割为多个私有写空间,各私有写空间对应并保留给一线程处理器104的一个执行线程。依据本发明另一实施例,各私有写空间对应一线程处理器104。相关领域的技术人员应了解,LDS 108的分割方式可变化,并且上述分割方式仅为示例,而非限制本发明。
依据本发明一实施例,被分配至LDS 108的一私有写空间的线程处理器104上运行的线程能够读写该所分配的私有写空间。此外,任意线程处理器104能够读取LDS 108的任意私有写空间,从而能够使多个线程处理器104在SIMD处理器102内共享数据。相关领域的技术人员应了解,尽管LDS 108采用“所有者-写(owner-write)”模式操作,但还可采用其他访问模式,并且该“所有者-写”模式仅为示例,而非限制本发明。
依据本发明另一实施例,分配至LDS 108的一私有写空间的单个线程能够读写该所分配的私有写空间。在SIMD 102上执行的任意线程,包含在其他线程处理器104上执行的那些线程,则能够自该所分配的私有写空间读取数据。
提供具有“所有者-写”模式的LDS 108不仅能够使单个线程处理器104上执行的多个线程之间共享数据,如同上面所述的GPR共享一样,而且能够使SIMD 102的所有线程处理器104上运行的所有线程之间共享数据。其允许在一波阵面内的线程與在同一波阵面内的其他线程共享数据。此外,该行为允许同一SIMD 102上执行的任意波阵面内运行的线程访问属于该线程群组中任意其他波阵面的线程的数据。
图2显示依据本发明实施例对应图1的LDS 108a-108m的LDS存储器写架构200。相关领域的技术人员应了解,图2所示的数据宽度和逻辑布局并不一定严格按照如图所示实施,并且可容纳不同数目的数据宽度和逻辑布局。单个SIMD处理器102内的所有GPR文件106集在图2中显示为GPRs 201。
依据本发明一实施例,将数据自GPRs 201写入LDS 203是通过将该数据写至对应一线程向量写位置的LDS内地址实现的,它是为特定的执行线程保留的一节LDS。将其称作在该LDS内该线程的私有写空间。相关领域的技术人员应了解,可使用多种寻址模式,并且这里所述的寻址模式仅为示例,而非限制本发明。
依据本发明进一步实施例,该LDS内的私有写空间是可变的。例如,但不限于,私有写空间被分配为每个线程一个寄存器,容纳高达16个波阵面,或是,16个寄存器以及仅一个波阵面。本领域的技术人员应了解,为每个线程分配的寄存器数目以及该LDS可容纳的最终的波阵面总数有多种组合,并且上面提供的群组仅为示例,而非限制本发明。在其他实施例中,还可将该多个波阵面分成大小可变的线程群组。
依据本发明另一实施例,设置一个或多个复用器(multiplexer)202,以将数据自GPRs 201写入LDS 203。安排写操作时,自GPRs 201读取数据并将其写入LDS 203。在一实施例中,在单个时钟周期内将四个线程的数据自GPRs 201写入LDS 203。
如前所述,依据本发明一实施例,每个SIMD处理器102具有一LDS存储器108/203。依据本发明另一实施例,SIMD处理器102内执行的各波阵面被分配至LDS 108内一波阵面存储区。构成该波阵面的各线程被分配至此较大的波阵面存储区内的一特定存储区。此避免线程向非分配存储区或由其相应波阵面的其他线程共享的存储区写入数据,但允许线程在其所分配的存储区内交换数据。
例如,但不限于,将LDS存储器203分割成对应各波阵面的存储区以对其索引(index)。例如,存储区206对应波阵面0。当写入存储区206时,将波阵面0的线程0-3安排写入存储块索引(bank index)0处的LDS 203,如204处所示。一实施例中,该写操作发生于单个时钟周期内。对波阵面0内的每组四个线程重复该进程,接着在下一时钟周期内将下一组四个线程写至下一存储块(bank)。相关领域的技术人员应了解,这里提出的时序和存储容量值仅为示例,而非限制本发明。
依据本发明进一步实施例,可使用专门的广播读模式,以自该LDS快速读取数据,该数据被返回至波阵面中的所有线程,或返回至共享寄存器。一实施例中,该广播读模式执行一至四个dword数据的快速读取,并在四个时钟周期内将该数据返回至各波阵面内的所有线程。
依据本发明另一实施例,实施屏障(barrier)指令。该屏障指令出现于自同一进程生成的所有线程内(例如线程群组或波阵面),该屏障指令迫使所有线程在继续执行之前同步至该屏障点(barrier point)。例如,但不限于,使用该屏障指令可避免访问该LDS时出现危险(hazard)状况。例如,如果一线程执行读取该LDS数据的指令,而该LDS正由来自另一波阵面的不同线程写入,则这时无法知道是否能够获得该线程希望读取的数据。通过将提供所述数据的写指令置于屏障指令之前,并将读指令置于该屏障指令之后,可保证该读指令将自LDS获得正确的数据。相关领域的技术人员应了解,该屏障指令可具有其他用途,包含,例如但不限于,避免其他访问危险。
IV全局数据共享
图3显示依据本发明实施例支持来自所有SIMD处理单元的读写操作的GDS 300。另外,依据本发明进一步实施例,SIMD处理单元可通过广播自该GDS 300请求数据,从而利用来自该GDS 300的广播数据更新系统中所有的GPR文件。
相关领域的技术人员应了解,图3所示的数据宽度和逻辑布局并不一定严格按照如图所示实施,并且可容纳不同数目的数据宽度和逻辑布局。
V示例应用
图4显示依据本发明实施例利用该私有GPR空间、全局GPR空间、LDS和GDS的所述功能的示例应用的流程图400。例如,但不限于,该流程图400可用于在一个操作周期内计算图像上的属性,例如该图像的最大和最小亮度值。相关领域的技术人员应了解,其他应用也可利用该私有GPR空间、全局GPR空间、LDS和GDS的配置,并且流程图400仅为示例,而非限制本发明。
该方法从步骤402开始执行,接着前进至步骤404,在步骤404中,将该图像的像素子集分配至一个或多个波阵面。在各波阵面中,将分配至该波阵面的像素子集分配至该波阵面的各线程,其中,该波阵面已分配至一SIMD处理器102。该波阵面的各线程在该所分配的SIMD处理器102的一通道内执行,该通道对应特定的线程处理器104以及与其关联的GPR文件106。由于在单个SIMD处理器102中可执行一个或多个波阵面,因此执行流程图400的步骤的多个线程可被分配至同一SIMD处理器102中的同一通道。
在步骤406中,将各线程的相应像素子集存储在与其关联的GPR文件106中。接着,在步骤408中,线程处理器104上的各线程计算逐线程私有结果。以最大和最小亮度值为例,线程处理器104计算分配至该执行线程的像素子集的最大和最小亮度值。波阵面的各通道原子地(atomically)将其结果与存储在各通道的全局GPR空间中的逐通道结果结合。在安排完成该图像的所有像素后,缩减阶段(reductionphase)开始将存储在该全局寄存器中的“本地结果”写入LDS 108的该线程私有区域。
接着,在步骤412中,对于各SIMD 102,配置一个通道以读取由SIMD 102的各通道生成的全部本地结果,并将该数据缩减,以获得SIMD本地结果。例如,对应单个线程处理器104的通道被分配用以缩减所述本地结果,以获得所述SIMD本地结果。该线程处理器104将LDS 108的所有本地结果读入其GPR文件106,并在所有该本地结果中计算最大和最小亮度值。该计算结果成为该SIMD本地结果。在步骤414中,该线程处理器104将该SIMD本地结果写入GDS 110的私有区域。
类似地,在步骤416中,单个线程处理器104自GDS 110读取并收集所有SIMD本地结果,并缩减该数据以获得最终结果。例如,单个线程处理器104将所有SIMD本地结果自GDS 110读入其GPR文件106,并在所有该SIMD本地结果中计算最大和最小亮度值。该计算结果成为该缩减的最终结果。接着,在步骤418中,将该最终结果存储至一存储器位置(memory location)。依据本发明另一实施例,该步骤418使用计算的最终结果被作为中间结果存储回该GDS,并在该存储操作后接着执行广播读,以导入(populate)GPR文件106中供第二次执行流程图400所述的操作。
VI计算机系统实施
可由软件、固件、硬件或其组合实施本发明的不同态样。图5显示示例计算机系统500,其中,本发明或其部分作为计算机可读代码实施。根据该示例计算机系统500描述本发明的不同实施例。阅读本说明之后,对于相关领域的技术人员而言,如何利用其他计算机系统和/或计算机架构实施本发明将变得显而易见。
计算机系统500包含一个或多个处理器,例如处理器504。处理器504可为专用或通用处理器。处理器504连接至通信基础设施506(例如总线或网络)。
计算机系统500还包含主要存储器508,较佳为随机访问存储器(random access memory;RAM);并且还可包含次要存储器510。次要存储器510例如可包含硬盘驱动器512、可移除存储驱动器514和/或存储卡(memory stick)。可移除存储驱动器514可包括软盘驱动器、磁带驱动器、光盘驱动器、快闪存储器等等。可移除存储驱动器514通过现有方式读取和/或写入可移除存储单元518。可移除存储单元518可包括软盘、磁带、光盘等等,其由可移除存储驱动器514读写。相关领域的技术人员应了解,可移除存储单元518包含计算机可用存储介质,其中存储有计算机软件和/或数据。
在替代实施中,次要存储器510可包含可将计算机程序或其他指令载入计算机系统500的其他类似装置。此类装置可包含,例如可移除存储单元522以及接口520。此类装置例如可包含程序磁带盒(program cartridge)和磁带盒接口(例如可在视频游戏设备中找到)、可移除存储芯片(例如EPROM或PROM)及相关插座,以及允许将软件和数据传输至计算机系统500的其他可移除存储单元522和接口520。
计算机系统500还可包含通信接口524。通信接口524允许计算机系统500与外部设备之间传输软件和数据。通信接口524可包含调制解调器、网络接口(例如以太网卡)、通信端口、PCMCIA插槽和卡等等。经由通信接口524传输的软件和数据为信号形式,其可为电子信号、电磁信号、光信号或其他能够由通信接口524接收的信号。这些信号经由通信路径526提供至通信接口524。通信路径526传输信号,并可使用电线或线缆、光纤、电话线、蜂窝电话链路、RF链路或其他通信沟道实现。
本文中,术语“计算机程序介质”和“计算机可用介质”一般指例如可移除存储单元518、可移除存储单元522以及安装在硬盘驱动器512中的硬盘等介质。在通信路径526上传输的信号还可实施这里所述的逻辑。计算机程序介质和计算机可用介质还可指存储器,例如主要存储器508和次要存储器510,其可为存储器半导体(memorysemiconductor)(例如DRAM等)。该些计算机程序产品是为计算机系统500提供软件的装置。
计算机程序(还称作计算机控制逻辑或数据和/或指令)存储在主要存储器508和/或次要存储器510中。计算机程序还可经由通信接口524接收。此类计算机程序于执行时能够使计算机系统500实施这里所讨论的本发明。尤其是,该些计算机程序于执行时能够使处理器504实施本发明的进程。因此,此类计算机程序代表计算机系统500的控制器。利用软件实施本发明时,该软件可存储在计算机程序产品中,并通过可移除存储驱动器514、接口510、硬盘驱动器512或通信接口524载入计算机系统500。
本发明还针对计算机程序产品,其包括存储在任意计算机可用介质上的软件。在一个或多个数据处理设备中执行此类软件时,此类软件使数据处理设备如这里所述操作,或如上所述允许计算设备(例如ASIC或处理器)的综合和/或制造,从而执行如这里所述的本发明的实施例。本发明的实施例采用已知或未知的任意计算机可用或可读介质。计算机可用介质例如包含,但不限于,主存储设备(例如任意类型的随机访问存储器)、辅助存储设备(例如硬盘驱动器、软盘、CD ROM、ZIP盘、磁带、磁存储设备、光存储设备、MEMS、纳米技术存储设备等等)以及通信介质(例如有线和无线通信网络、局域网、广域网、企业内部网等等)。
VII结论
尽管上面描述了本发明的不同实施例,但应当理解,这些实施例仅为示例,而非限制本发明。相关领域的技术人员应当理解,可在所附权利要求所定义的本发明的精神和范围内对本发明进行形式和细节上的各种修改。应当理解,本发明并不限于这些示例。本发明可适用于如这里所述操作的任意元件。因此,本发明的广度和范围不应当限于示例实施例,而是仅依据权利要求及其等同所定义。
Claims (13)
1.一种图形处理单元,包括:
多个SIMD处理单元,各SIMD处理单元包括:
多个线程处理器,
多个通用寄存器GPR文件,各GPR文件与该多个线程处理器之一通信,以及
本地数据共享LDS,该本地数据共享与该多个线程处理器双向通信,其中,该多个线程处理器被分配用于执行多个线程,其中,该LDS具有被分配至该多个线程处理器之一的私有写空间,其中,该LDS仅通过该多个线程处理器之一迫使写访问该私有写空间,并且其中,该多个线程处理器能够读取该私有写空间;以及
全局数据共享GDS,该全局数据共享与该多个SIMD处理单元的各SIMD处理单元中该多个线程处理器的各线程处理器通信。
2.如权利要求1所述的图形处理单元,其中,各GPR文件包括:多个寄存器的私有区块,各寄存器的私有区块被分配至与该GPR文件关联的该线程处理器上执行的一个或多个线程中的一个,其中,仅该分配的线程能够读或写与其关联的寄存器私有区块;以及
寄存器的全局区块,其中,该一个或多个线程的任意线程能够读与写该全局区块。
3.如权利要求1所述的图形处理单元,其中,该私有写空间的大小是可变的。
4.如权利要求1所述的图形处理单元,其中,该GDS包括:
私有写空间,该私有写空间被分配至该多个SIMD处理单元的该多个线程处理器之一。
5.如权利要求4所述的图形处理单元,其中,该GDS仅通过该多个SIMD处理单元的该多个线程处理器之一迫使写访问该私有写空 间,并且其中,该多个SIMD处理单元能够读取该私有写空间。
6.一种制造图形处理单元的方法,包括:
物理地形成多个SIMD处理单元,各SIMD处理单元包括:
多个线程处理器,
多个通用寄存器GPR文件,各GPR文件与该多个线程处理器之一通信,以及
本地数据共享LDS,该本地数据共享与该多个线程处理器双向通信,其中,该多个线程处理器被分配用于执行多个线程,其中,该LDS具有被分配至该多个线程处理器之一的私有写空间,其中,该LDS仅通过该多个线程处理器之一迫使写访问该私有写空间,并且其中,该多个线程处理器能够读取该私有写空间;以及
物理地形成全局数据共享GDS,该全局数据共享与该多个SIMD处理单元的各SIMD处理单元中该多个线程处理器的各线程处理器通信。
7.如权利要求6所述的方法,其中,物理地形成该多个SIMD处理单元的各SIMD处理单元包括:
物理地形成该多个GPR文件的各GPR文件,各GPR文件包括:
寄存器的私有区块,该寄存器的私有区块被分配至与该GPR文件关联的该线程处理器上执行的一个或多个线程的第一线程,其中,仅该第一线程能够写入该私有区块,并且其中,该一个或多个线程的任意线程能够读取该私有区块;以及
寄存器的全局区块,其中,该一个或多个线程的任意线程能够读写该全局区块。
8.如权利要求6所述的方法,其中,该私有写空间的大小是可变的。
9.如权利要求6所述的方法,其中,该GDS包括:
私有写空间,该私有写空间被分配至该多个SIMD处理单元的该 多个线程处理器之一。
10.如权利要求6所述的方法,其中,该方法通过综合硬件描述语言指令执行。
11.一种用于图形处理单元的方法,包括:
将图像的一组像素分配至一组SIMD处理器;
将该组像素的像素子集分配至该组SIMD处理器的各SIMD处理器的处理通道上执行的各线程;
将该像素子集存储在与各处理通道关联的通用寄存器GPR文件中;
基于该GPR文件的私有空间中的该像素子集计算逐线程私有结果;
累积各同一通道的线程计算的各线程私有结果,以生成逐通道本地结果,其存储在该GPR文件的全局空间中;
将该逐通道本地结果自该GPR文件的该全局空间写入与该处理通道关联的本地数据共享LDS的私有区域,该LDS仅与包含该处理通道的该SIMD处理器关联;
将各逐通道本地结果自该LDS读入第一单个处理通道的第一单个GPR文件;
缩减来自该LDS的所有逐通道本地结果的结果,以获得SIMD本地结果;
将该SIMD本地结果自该第一单个GPR文件写入与该第一单个处理通道关联的全局数据共享GDS的私有区域;
将各SIMD本地结果自该GDS读入第二单个处理通道的第二单个GPR文件;
缩减来自该GDS的所有SIMD本地结果的结果,以获得最终结果;以及
写入该最终结果。
12.如权利要求11所述的方法,其中,写入该最终结果包括:
将该最终结果写入存储器位置。
13.如权利要求12所述的方法,其中,写入该最终结果包括将该最终结果写回至该GDS,该方法进一步包括:
写入该最终结果后,执行广播读指令;
响应该广播读指令将该GDS的该最终结果导入该GPR;以及
在随后的计算中使用该最终结果作为中间结果以计算随后的逐线程私有结果。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US5753408P | 2008-05-30 | 2008-05-30 | |
US61/057,534 | 2008-05-30 | ||
PCT/US2009/003315 WO2009145917A1 (en) | 2008-05-30 | 2009-06-01 | Local and global data share |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102047241A CN102047241A (zh) | 2011-05-04 |
CN102047241B true CN102047241B (zh) | 2014-03-12 |
Family
ID=41377444
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200980119960.7A Active CN102047241B (zh) | 2008-05-30 | 2009-06-01 | 本地与全局数据共享 |
Country Status (6)
Country | Link |
---|---|
US (2) | US9619428B2 (zh) |
EP (2) | EP2289001B1 (zh) |
JP (1) | JP5461533B2 (zh) |
KR (1) | KR101474478B1 (zh) |
CN (1) | CN102047241B (zh) |
WO (1) | WO2009145917A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110023904A (zh) * | 2016-11-23 | 2019-07-16 | 超威半导体公司 | 双模式本地数据存储 |
Families Citing this family (44)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7861060B1 (en) * | 2005-12-15 | 2010-12-28 | Nvidia Corporation | Parallel data processing systems and methods using cooperative thread arrays and thread identifier values to determine processing behavior |
US7788468B1 (en) | 2005-12-15 | 2010-08-31 | Nvidia Corporation | Synchronization of threads in a cooperative thread array |
US20100250564A1 (en) * | 2009-03-30 | 2010-09-30 | Microsoft Corporation | Translating a comprehension into code for execution on a single instruction, multiple data (simd) execution |
KR20130141446A (ko) * | 2010-07-19 | 2013-12-26 | 어드밴스드 마이크로 디바이시즈, 인코포레이티드 | 복수의 프로세싱 유닛들에서 온-칩 메모리를 사용하는 데이터 프로세싱 |
US9552206B2 (en) * | 2010-11-18 | 2017-01-24 | Texas Instruments Incorporated | Integrated circuit with control node circuitry and processing circuitry |
US8752064B2 (en) | 2010-12-14 | 2014-06-10 | Advanced Micro Devices, Inc. | Optimizing communication of system call requests |
US9092267B2 (en) * | 2011-06-20 | 2015-07-28 | Qualcomm Incorporated | Memory sharing in graphics processing unit |
US9547880B2 (en) * | 2012-04-09 | 2017-01-17 | Intel Corporation | Parallel processing image data having top-left dependent pixels |
US10062135B2 (en) * | 2013-07-31 | 2018-08-28 | National Technology & Engineering Solutions Of Sandia, Llc | Graphics processing unit management system for computed tomography |
US9633411B2 (en) * | 2014-06-26 | 2017-04-25 | Qualcomm Incorporated | Load scheme for shared register in GPU |
US9749548B2 (en) | 2015-01-22 | 2017-08-29 | Google Inc. | Virtual linebuffers for image signal processors |
US9760969B2 (en) * | 2015-03-09 | 2017-09-12 | Mediatek Inc. | Graphic processing system and method thereof |
US9785423B2 (en) | 2015-04-23 | 2017-10-10 | Google Inc. | Compiler for translating between a virtual image processor instruction set architecture (ISA) and target hardware having a two-dimensional shift array structure |
US9772852B2 (en) | 2015-04-23 | 2017-09-26 | Google Inc. | Energy efficient processor core architecture for image processor |
US10291813B2 (en) | 2015-04-23 | 2019-05-14 | Google Llc | Sheet generator for image processor |
US9769356B2 (en) | 2015-04-23 | 2017-09-19 | Google Inc. | Two dimensional shift array for image processor |
US9756268B2 (en) | 2015-04-23 | 2017-09-05 | Google Inc. | Line buffer unit for image processor |
US10095479B2 (en) | 2015-04-23 | 2018-10-09 | Google Llc | Virtual image processor instruction set architecture (ISA) and memory model and exemplary target hardware having a two-dimensional shift array structure |
US9965824B2 (en) | 2015-04-23 | 2018-05-08 | Google Llc | Architecture for high performance, power efficient, programmable image processing |
GB2539958B (en) * | 2015-07-03 | 2019-09-25 | Advanced Risc Mach Ltd | Data processing systems |
US9779469B2 (en) * | 2015-08-17 | 2017-10-03 | Qualcomm Incorporated | Register spill management for general purpose registers (GPRs) |
US10313641B2 (en) | 2015-12-04 | 2019-06-04 | Google Llc | Shift register with reduced wiring complexity |
US9830150B2 (en) | 2015-12-04 | 2017-11-28 | Google Llc | Multi-functional execution lane for image processor |
GB2546308B (en) * | 2016-01-15 | 2019-04-03 | Advanced Risc Mach Ltd | Data processing systems |
US10387988B2 (en) * | 2016-02-26 | 2019-08-20 | Google Llc | Compiler techniques for mapping program code to a high performance, power efficient, programmable image processing hardware platform |
US10204396B2 (en) | 2016-02-26 | 2019-02-12 | Google Llc | Compiler managed memory for image processor |
US10380969B2 (en) | 2016-02-28 | 2019-08-13 | Google Llc | Macro I/O unit for image processor |
US10552934B2 (en) * | 2016-07-01 | 2020-02-04 | Intel Corporation | Reducing memory latency in graphics operations |
US10546211B2 (en) | 2016-07-01 | 2020-01-28 | Google Llc | Convolutional neural network on programmable two dimensional image processor |
US20180007302A1 (en) | 2016-07-01 | 2018-01-04 | Google Inc. | Block Operations For An Image Processor Having A Two-Dimensional Execution Lane Array and A Two-Dimensional Shift Register |
US20180005059A1 (en) | 2016-07-01 | 2018-01-04 | Google Inc. | Statistics Operations On Two Dimensional Image Processor |
US20180005346A1 (en) | 2016-07-01 | 2018-01-04 | Google Inc. | Core Processes For Block Operations On An Image Processor Having A Two-Dimensional Execution Lane Array and A Two-Dimensional Shift Register |
US10033482B2 (en) * | 2016-08-03 | 2018-07-24 | Samsung Electronics Co., Ltd | System and method for providing interference parameter estimation for multi-input multi-output (MIMO) communication system |
US10223822B2 (en) * | 2016-12-22 | 2019-03-05 | Apple Inc. | Mid-render compute for graphics processing |
US10580104B2 (en) * | 2017-04-17 | 2020-03-03 | Intel Corporation | Read/write modes for reducing power consumption in graphics processing units |
US10922258B2 (en) * | 2017-12-22 | 2021-02-16 | Alibaba Group Holding Limited | Centralized-distributed mixed organization of shared memory for neural network processing |
GB2578932B (en) * | 2019-02-14 | 2021-02-24 | Imagination Tech Ltd | Allocation of memory |
US11029954B2 (en) * | 2019-04-22 | 2021-06-08 | Samsung Electronics Co., Ltd. | Per-lane dynamic indexing in temporary registers |
US11449339B2 (en) * | 2019-09-27 | 2022-09-20 | Red Hat, Inc. | Memory barrier elision for multi-threaded workloads |
US10891708B1 (en) | 2019-11-25 | 2021-01-12 | Arm Limited | Shader program execution in graphics processing |
US11829439B2 (en) * | 2019-12-30 | 2023-11-28 | Qualcomm Incorporated | Methods and apparatus to perform matrix multiplication in a streaming processor |
US11361400B1 (en) | 2021-05-06 | 2022-06-14 | Arm Limited | Full tile primitives in tile-based graphics processing |
US12265484B2 (en) | 2021-09-03 | 2025-04-01 | Advanced Micro Devices, Inc. | Processing device and method of sharing storage between cache memory, local data storage and register files |
CN117132450B (zh) * | 2023-10-24 | 2024-02-20 | 芯动微电子科技(武汉)有限公司 | 一种可实现数据共享的计算装置和图形处理器 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1170171A (zh) * | 1995-11-22 | 1998-01-14 | 任天堂株式会社 | 带三维图形和数字音频信号处理协处理器的视频游戏系统 |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2073185A1 (en) | 1990-01-05 | 1991-07-06 | Won S. Kim | Parallel processor memory system |
US5388206A (en) * | 1992-11-13 | 1995-02-07 | The University Of North Carolina | Architecture and apparatus for image generation |
JPH06332700A (ja) * | 1993-05-25 | 1994-12-02 | Matsushita Electric Ind Co Ltd | 情報処理装置 |
US5655132A (en) * | 1994-08-08 | 1997-08-05 | Rockwell International Corporation | Register file with multi-tasking support |
JPH09198361A (ja) | 1996-01-23 | 1997-07-31 | Kofu Nippon Denki Kk | マルチプロセッサシステム |
JP3923574B2 (ja) | 1996-12-02 | 2007-06-06 | 株式会社日立製作所 | 並列データ処理機能を備えた検査装置及び検査方法 |
US6718457B2 (en) * | 1998-12-03 | 2004-04-06 | Sun Microsystems, Inc. | Multiple-thread processor for threaded software applications |
US6449699B2 (en) | 1999-03-29 | 2002-09-10 | International Business Machines Corporation | Apparatus and method for partitioned memory protection in cache coherent symmetric multiprocessor systems |
CN100367730C (zh) * | 2001-02-14 | 2008-02-06 | 克利尔斯皮德科技有限公司 | 一种互连系统 |
JP2003030047A (ja) | 2001-07-16 | 2003-01-31 | Fujitsu Ltd | キャッシュ装置およびキャッシュ方法 |
US7120651B2 (en) * | 2003-08-01 | 2006-10-10 | Oracle International Corporation | Maintaining a shared cache that has partitions allocated among multiple nodes and a data-to-partition mapping |
JP4699685B2 (ja) | 2003-08-21 | 2011-06-15 | パナソニック株式会社 | 信号処理装置及びそれを用いた電子機器 |
JP2005189975A (ja) * | 2003-12-24 | 2005-07-14 | Toshiba Corp | 画像処理装置、画像処理方法およびプログラム |
US20050251649A1 (en) | 2004-04-23 | 2005-11-10 | Sony Computer Entertainment Inc. | Methods and apparatus for address map optimization on a multi-scalar extension |
US7634621B1 (en) * | 2004-07-13 | 2009-12-15 | Nvidia Corporation | Register file allocation |
GB2417105B (en) * | 2004-08-13 | 2008-04-09 | Clearspeed Technology Plc | Processor memory system |
US7522168B2 (en) * | 2005-09-27 | 2009-04-21 | Sony Computer Entertainment Inc. | Cell processor task and data management |
US8316220B2 (en) * | 2005-09-27 | 2012-11-20 | Sony Computer Entertainment Inc. | Operating processors over a network |
US7480768B2 (en) | 2005-09-30 | 2009-01-20 | Intel Corporation | Apparatus, systems and methods to reduce access to shared data storage |
US7750915B1 (en) * | 2005-12-19 | 2010-07-06 | Nvidia Corporation | Concurrent access of data elements stored across multiple banks in a shared memory resource |
US7970956B2 (en) * | 2006-03-27 | 2011-06-28 | Ati Technologies, Inc. | Graphics-processing system and method of broadcasting write requests to multiple graphics devices |
US8081184B1 (en) * | 2006-05-05 | 2011-12-20 | Nvidia Corporation | Pixel shader program thread assembly |
US8108872B1 (en) * | 2006-10-23 | 2012-01-31 | Nvidia Corporation | Thread-type-based resource allocation in a multithreaded processor |
US20080109795A1 (en) * | 2006-11-02 | 2008-05-08 | Nvidia Corporation | C/c++ language extensions for general-purpose graphics processing unit |
US8108659B1 (en) * | 2006-11-03 | 2012-01-31 | Nvidia Corporation | Controlling access to memory resources shared among parallel synchronizable threads |
US7940261B2 (en) * | 2007-01-10 | 2011-05-10 | Qualcomm Incorporated | Automatic load balancing of a 3D graphics pipeline |
US8248422B2 (en) * | 2008-01-18 | 2012-08-21 | International Business Machines Corporation | Efficient texture processing of pixel groups with SIMD execution unit |
-
2009
- 2009-06-01 CN CN200980119960.7A patent/CN102047241B/zh active Active
- 2009-06-01 JP JP2011511649A patent/JP5461533B2/ja active Active
- 2009-06-01 EP EP09755280.6A patent/EP2289001B1/en active Active
- 2009-06-01 WO PCT/US2009/003315 patent/WO2009145917A1/en active Application Filing
- 2009-06-01 US US12/476,130 patent/US9619428B2/en active Active
- 2009-06-01 EP EP18184959.7A patent/EP3413206B1/en active Active
- 2009-06-01 KR KR1020107028532A patent/KR101474478B1/ko active Active
-
2017
- 2017-04-10 US US15/483,745 patent/US10140123B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1170171A (zh) * | 1995-11-22 | 1998-01-14 | 任天堂株式会社 | 带三维图形和数字音频信号处理协处理器的视频游戏系统 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110023904A (zh) * | 2016-11-23 | 2019-07-16 | 超威半导体公司 | 双模式本地数据存储 |
CN110023904B (zh) * | 2016-11-23 | 2021-11-02 | 超威半导体公司 | 双模式本地数据存储 |
Also Published As
Publication number | Publication date |
---|---|
JP5461533B2 (ja) | 2014-04-02 |
WO2009145917A1 (en) | 2009-12-03 |
JP2011522325A (ja) | 2011-07-28 |
US20090300621A1 (en) | 2009-12-03 |
CN102047241A (zh) | 2011-05-04 |
EP2289001A1 (en) | 2011-03-02 |
EP2289001B1 (en) | 2018-07-25 |
US10140123B2 (en) | 2018-11-27 |
US9619428B2 (en) | 2017-04-11 |
EP2289001A4 (en) | 2012-12-05 |
EP3413206A1 (en) | 2018-12-12 |
KR101474478B1 (ko) | 2014-12-19 |
KR20110015439A (ko) | 2011-02-15 |
US20170212757A1 (en) | 2017-07-27 |
EP3413206B1 (en) | 2020-10-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102047241B (zh) | 本地与全局数据共享 | |
CN112328172B (zh) | 数据存储方法、装置及数据读取方法、装置 | |
US20070294514A1 (en) | Picture Processing Engine and Picture Processing System | |
CN103793893A (zh) | 采用限缓冲区处理的世界和屏幕空间管线间基元重新排序 | |
DE102015224026A1 (de) | Indirektes Erfassen von Sampledaten zur Durchführung mehrfacher Faltungsoperationen in einem Parallelverarbeitungssystem | |
GB2336983A (en) | Improvements relating to computer 3D rendering system | |
DE102013020966B4 (de) | Leistungseffiziente Attribut-Handhabung für Parkettierungs- und Geometrie-Schattierungseinheiten | |
DE102013205886A1 (de) | Dynamische Bankmodus-Adressierung für Speicherzugriff | |
CN105245759B (zh) | 一种实现图像同步显示的方法及装置 | |
CN101594299A (zh) | 基于链表的交换网络中队列缓冲管理方法 | |
US8675002B1 (en) | Efficient approach for a unified command buffer | |
US7750915B1 (en) | Concurrent access of data elements stored across multiple banks in a shared memory resource | |
CN103995684A (zh) | 超高分辨率平台下的海量影像并行处理显示方法及系统 | |
DE102013208421A1 (de) | Sharing einer Grafikverarbeitungseinheit unter vielen Anwendungen | |
CN102023843A (zh) | 函数的调用方法、装置及智能卡 | |
US20230061711A1 (en) | Inter-layer communication techniques for memory processing unit architectures | |
CN106101712A (zh) | 一种视频流数据的处理方法及装置 | |
US9798550B2 (en) | Memory access for a vector processor | |
CN118012631B (zh) | 一种算子执行方法、处理设备、存储介质及程序产品 | |
CN115758989B (zh) | 用于修复数字芯片版图设计规则时序违例的方法及系统 | |
JP2010244096A (ja) | データ処理装置、印刷システムおよびプログラム | |
US8539207B1 (en) | Lattice-based computations on a parallel processor | |
CN117215491A (zh) | 一种快速数据访问方法、快速数据访问装置及光模块 | |
CN102047316A (zh) | 具有分布式第一阶缓存系统及集中式第二阶缓存的着色组合 | |
DE102012222552B4 (de) | Aufeinanderfolgende Wiederholungen von divergenten Operationen |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |