CN111699506A - 指令处理 - Google Patents

指令处理 Download PDF

Info

Publication number
CN111699506A
CN111699506A CN201880088674.8A CN201880088674A CN111699506A CN 111699506 A CN111699506 A CN 111699506A CN 201880088674 A CN201880088674 A CN 201880088674A CN 111699506 A CN111699506 A CN 111699506A
Authority
CN
China
Prior art keywords
descriptor
fields
hardware unit
memory
data
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
Application number
CN201880088674.8A
Other languages
English (en)
Other versions
CN111699506B (zh
Inventor
瓦塔利娅·普拉萨德
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN111699506A publication Critical patent/CN111699506A/zh
Application granted granted Critical
Publication of CN111699506B publication Critical patent/CN111699506B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Image Generation (AREA)
  • Stored Programmes (AREA)

Abstract

一种用于形成描述符的硬件单元,所述描述符用作处理单元的指令,每个描述符包括多个字段,所述硬件单元用于接收定义以下信息的数据:(i)存储描述符内容的内存位置的地址以及(ii)继承字段集;所述硬件单元用于:(i)通过从先前形成的描述符复制数据来填充新描述符的继承字段并且(ii)通过从所定义的地址处的内存位置复制数据来填充所述新描述符的其它字段,形成所述新描述符。

Description

指令处理
背景技术
本发明涉及对图形处理单元(graphics processing unit,GPU)等处理单元的指令进行处理。
通常,将指令提供给处理单元,在处理单元上主机(例如中央处理器(centralprocessing unit,CPU))运行驱动程序。处理器的指令可以打包成作业,每个作业包括一组与公共任务相关的指令,并且将所述作业发送到所述处理器。以描述符的形式将所述作业发送给所述处理器。描述符可以包含直接(通过包含在所述描述符中的信息)定义作业的信息或间接(通过包含在内存中的信息,其中所述内存的地址包含在所述描述符中)定义作业的信息。期望能降低驱动程序所需的负载。从而更快地准备指令或作业,或者可以释放资源来执行其它任务。在图形处理应用程序中,指令和作业可以与图形处理任务有关。作业和指令可以由应用程序处理接口(application processing interface,API)直接调用驱动程序产生的。所述驱动程序打包和发送作业所需的开销受图形API的架构和作业所指向的处理器的架构的影响。
在包含GPU的系统中,驱动程序的开销会对总体功耗和计算性能产生实质性影响。许多移动片上系统(systems-on-chip,SoC)具有固定的总功率预算,并在CPU和GPU之间动态分配所述预算。实现动态分配的方法有智能功率分配(intelligentpower allocation,IPA)和能量感知调度(energy aware scheduling,EAS)。
在典型的移动SoC中,驱动程序由CPU实现。在这种架构中,高驱动程序开销意味着CPU占用了固定功率预算的较大部分。这会导致GPU节流,例如降低GPU的工作频率,进而影响整体性能。
研究表明,在现有的GPU驱动程序实现中,内存事务消耗的时间相对较多,而内存开销中大部分是由于分配、复制和设置内存操作造成的。通常,每当需要或更新作为图形API状态机实现的一部分的绘制调用的新GPU资源(纹理texture、统一uniform等)时,从池中分配一部分GPU内存,并将数据从主机内存复制到GPU映射内存的分配部分。这需要相当多的资源。
Vulkan API是新一代图形和计算API,其提供对GPU的高效跨平台访问,并可以降低驱动程序开销。但是,Vulkan不支持参数化可重用块,例如参数化命令缓冲区。利用Vulkan,所述GPU驱动程序以完整的GPU硬件描述符集的形式为每个绘制调用构建GPU硬件作业。这会涉及大量内存访问。在一些场景中,在一次调用中发送或引用(例如,纹理映射)的一些信息可能在后续调用中重复发送或引用,两次调用都使用大量内存资源。
期望通过高效生成作业描述符来减少图形处理单元中的驱动程序开销。
发明内容
根据第一方面,提供了一种硬件单元,所述硬件单元用于形成描述符的硬件单元,所述描述符用作处理单元的指令,每个描述符包括多个字段,所述硬件单元用于接收定义以下信息的数据:(i)存储描述符内容的内存位置的地址以及(ii)继承字段集;所述硬件单元用于:(i)通过从先前形成的描述符复制数据来填充新描述符的继承字段并且(ii)通过从所定义的地址处的内存位置复制数据来填充所述新描述符的其它字段,形成所述新描述符。
所述硬件单元可用于存储所述新描述符。这有利于所述硬件单元访问所述描述符。
在一种实现方式中,所述硬件单元可以由专用硬件块或专用处理电路提供。例如,所述硬件单元可以由硬件作业管理器提供,或者所述硬件单元可以是所述硬件作业管理器的一部分。
所述硬件单元可用于通过所述硬件单元先前存储的描述符的字段填充所述新描述符的继承字段。这可减少复制内容与先前描述符的字段相同的描述符字段的数据的需求,从而可以减少驱动程序开销。
定义存储所述描述符内容的所述内存位置的所述地址的所述数据可以包括基地址和第一数据结构,所述第一数据结构包括对应于所述内存中存储的每个描述符字段的偏移值,所述硬件单元可以用于通过确定相对于所述基地址偏移所述第一数据结构中的相应偏移值的地址来确定每个所述地址。这是定义内存地址的一种方便的方法。
所述单元用于接收定义所述继承字段集的数据,所述继承字段集包括第二数据结构,所述第二数据结构指示通过从先前形成的描述符复制数据来填充哪些字段。所述第二数据结构可以包括掩码,其中所述掩码的每个字段对应于所述描述符的相应字段并指示所述描述符的所述字段是否为继承字段。这是指示哪些字段是继承字段的高效方法。
所述硬件单元可以用于向所述处理单元提供所述新描述符。然后,所述处理单元可以使用所述描述符。
所述处理单元可以是图形处理单元。所述描述符可以是图形处理单元任务描述符。所述指令可以是图形特定的任务或计算特定的任务中的一个。所述指令可以是着色器、顶点、像素、片段和计算任务中的一种。这可以允许所述硬件单元用于执行通用图形处理操作。
所述硬件单元可以与包含所述内存位置的驱动程序内存共享。这是一种高效的架构安排。
所述描述符的格式可以使得所述描述符的所述字段的第一子集为固定长度,所述描述符的所述字段的第二子集为可变长度;所述驱动程序可以用于存储用于将所述第一子集的所述字段填充到所述内存的第一公共区域的数据,以及用于存储用于将所述第二子集的所述字段填充到所述内存的与所述第一公共内存区域分离的第二公共区域的数据。这是一种高效存储描述符元素的方法。
根据第二方面,提供了一种用于形成用作处理单元或处理器的指令的描述符的方法,每个描述符包括多个字段,所述方法包括:接收定义以下信息的数据:(i)存储描述符内容的内存位置的地址以及(ii)继承字段集;以及(i)通过从先前形成的描述符复制数据来填充新描述符的继承字段并且(ii)通过从所定义的地址处的内存位置复制数据来填充所述新描述符的其它字段,形成所述新描述符。
根据第一方面描述的与所述硬件单元相关的所有特征及其相关优点可以组合到根据所述第二方面的方法中,以获得第二方面的方法的其它实现方式。
根据第三方面,提供了一种计算机程序产品,所述计算机程序产品包含计算机可执行指令,当所述可执行指令由处理器执行时,执行根据第二方面的方法的步骤。
附图说明
现将结合附图通过示例的方式对本发明进行描述。在附图中:
图1示出了GPU硬件的高级结构的示例。
图2示出了描述符内容的示例。
图3示出了形成描述符的方法。
图4示出了形成描述符的方法。
具体实施方式
图1示出了GPU硬件的高级结构示例。所述GPU硬件包括位于公共作业管理器101之后的多个图形处理集群102、103、104。这些集群及其接口101统称为GPU 100。所述GPU可以包括图1中未示出的其它硬件。所述接口101与CPU 108的驱动程序105连接。所述CPU也支持应用程序。所述应用程序可以是用户应用程序或操作系统的一部分。当所述应用程序需要所述GPU进行处理时,所述应用程序通过API通知所述驱动程序105。然后,所述驱动程序可以为所述GPU编写作业。所述驱动程序形成定义作业的描述符。将描述符传递给所述GPU。所述GPU的所述作业管理器101准备要执行的作业,并将所述作业分配给所述处理集群中的一个或多个,然后所述处理集群中的一个或多个处理集群执行所述作业。所述驱动程序可以将所述描述符直接传递给所述GPU,或者所述驱动程序可以将所述作业描述符存储在所述CPU和所述GPU都可以访问的共享内存107的区域106中。在后一种情况下,所述作业管理器101可以从所述区域106中的队列中读取所述描述符,然后对它们进行操作。所述驱动程序可以在所述共享内存107中存储其它信息,例如纹理定义,然后所述信息可以由所述GPU访问。
如上所述,通过将作业描述符和定义一个或多个作业的任何关联信息存储在共享内存107中的数据结构中,便于所述驱动程序向所述GPU传递所述作业描述符和所述信息。便于更直接地从所述驱动程序向所述GPU传递至少部分功能。例如,对一些高级配置和控制功能可以这样做。通过寄存器接口(例如内存映射的高级外设总线(advanced peripheralbus,APB)寄存器接口)来传递是一种方便的方法。
发送到所述GPU的所述作业可用于图形特定的任务(例如顶点、着色器、像素或片段处理)、计算任务或系统内部的作业,以准备或暂停系统的元素等。本文描述的方法可用于向不是专用GPU的处理器提供作业。
作业管理器接口或简称为作业管理器101的作用是向所述CPU隐藏图形处理集群的数量和组织。这样,无论所述GPU的内部架构如何,所述CPU都可以实现一个通用的机制,将作业传递给所述GPU。
方便地,所述作业管理器101可以包括专用硬件块或专用处理电路或硬件单元。所述作业管理器101通过所述内存107与所述驱动程序105连接。如下所述,所述作业管理器101使用参数化数据和由所述GPU驱动程序生成的跳过列表掩码来配置后期GPU描述符和地址修补。
由所述驱动程序105形成的每个GPU任务描述符可包括多个字段。每个字段的内容可以存储在所述内存107中的相应地址处。所述内容本身可以定义所述作业的参数,也可以是指向内存中(方便地,在所述共享内存107中)存储参数的另一位置的指针。
因此,每个GPU描述符可以是基于指针的数据结构。每个GPU描述符可能有非顺序节点(即,所述描述符的字段可能指向内存中的非顺序块)。相对于所述描述符所引用的数据总量,所述描述符的有效载荷可能较小。它们包含要读取和/或处理的数据以及指向后续节点的下一个或多个指针。图2以字段列表的形式示出了描述符的格式的示例。在图2中,列表以两列示出。每个字段由图2中所示的列表中的一行定义。当一个字段引用一个“内存区域”时,所述字段的内容可以是指向内存区域(称为节点)的指针,所述内存区域包含满足所述字段的信息需求所需的数据。
为了使所述作业管理器硬件块101最高效地工作,所述GPU驱动程序应按顺序在内存中打包所述描述符的节点。这可以在标准内存子系统中最佳利用空间局部性优化。所述GPU描述符和所述描述符的相关数组数据结构可以打包,并以统一的内存布局进行索引。在一个典型的描述符中,多个区域可能具有相同的固定大小。在一个典型的处理系统中,通过调用描述符结构的相关部分的“sizeof”运算符可以方便地获得这种固定大小。当所讨论的结构是由多个相同大小的元素组成的数组时,可以得到总大小为数组元素的大小(例如,可以使用sizeof运算符确定)与数组元素的数量的乘积。所述固定大小值可以在系统配置期间设置并且可以是常数,不同描述符的固定大小值也可以不同。一个或多个元素的大小可以通过链接阶段的着色器信息确定。对于具有可变大小元素的描述符,其大小可能取决于特定的绘制调用参数。
显而易见,将具有固定长度的描述符元素和/或静态或基本静态的描述符元素存储在包含所述描述符的内存106的第一连续区域中可以是有效的。在图2中,这个区域表示为主要模板区域(PTSZ)。将例如大小可变的元素和/或值不是静态的或基本上不是静态的元素的其它元素存储在包含所述描述符的所述内存106的第二连续区域中也可以是有效的。在图2中,这个区域表示为辅助模板区域(STSZ)。
可以通过减少复制内容与先前描述符的字段相同的描述符字段的数据的需要来提高处理描述符的效率。所讨论的字段可以是相应的字段(在图2中所示类型的描述符中,所述字段是由列表中同一行指定但属于不同描述符的字段)。先前描述符可以是(例如)按照写入顺序和/或读取顺序紧接在前面的描述符。第一描述符的后续描述符中具有这种性质的字段可以称为继承字段。假设将第一描述符(D1)和后续描述符(D2)写入内存106,并且所述后续描述符包括的字段(F2),所述字段(F2)与所述第一描述符的字段(F1)传送相同的数据。待传送的数据可以直接包含在所述第一描述符的字段F1中。或者,所述待传送的数据可以存储在所述内存106的另一区域R中,并且所述第一描述符的字段F1可以包括对所述区域的引用。在本方法中,将所述第一描述符D1写入所述内存106。所述字段F1的内容存储在某个位置(“M1”)。如果待传送的数据不直接保存在所述字段中,则待传送的数据存储在内存区域(“R”)中,并且R的详细信息(例如,其起始地址和长度)用存储在M1处的F1来表示。在写入所述后续描述符D2时,将使所述字段F2表示与所述描述符D1的字段F1相同的内容。如果所述内容直接存储在F1中,则将所述F2写入所述内存106,以便包含对区域M1的引用。如果F1保存了对R的引用,则对R的引用存储为字段F2。在这两种情况下,字段F2可以是继承字段;不需要作为存储D2的一部分再次存储实际内容数据。内存区域中为第一描述符存储的内容数据可以被引用,并重新用于后续描述符。这种逻辑可以降低将所述后续描述符写入内存所需的内存操作的工作量,因为不需要将所述继承字段F2的内容数据作为存储D2的一部分写入。在读取侧,当所述作业管理器101检索具有一个或多个继承字段的描述符时,所述作业管理器101可以使用索引表,从而使其能够有效地检索需要为每个绘制调用更新的作业描述符字段值。如果缓存了最后读取的描述符的内容,则可以跳过从与所述最后读取的描述符相同的内存部分读取描述符的过程。这样可以提高效率。
定义存储描述符内容的内存位置的地址的数据可以包括基地址和对应于所述内存中存储的每个描述符字段的偏移值。所述硬件单元可以通过确定相对于所述基地址偏移相应偏移值的地址来确定每个内存地址。
待通过先前生成的描述符(继承字段)填充的字段可以由包括字段列表的数据结构定义,每个字段都有一个指示,用于指示应从内存中读取还是跳过所述字段。如果跳过某个字段,则所述字段通过先前描述符的内容填充,因此所述作业管理器101不会从内存中再次读取所述字段。所述数据结构可以称为跳过列表掩码。所述掩码的每个字段可以对应于描述符的相应字段,并指示所述描述符的字段是否为继承字段,即,是否应通过先前生成的描述符填充字段,或者是否应通过基地址和偏移值以及通过内存填充的字段来查找内存地址。
所述作业管理器101可以配置为,如果描述符的字段在内存106中不存在,或者为空或由空标记指示,则将所述字段视为与最后读取的描述符的对应字段具有相同的值。
所述作业管理器101的作用是处理所述驱动程序105提供的描述符,并且根据每个描述符的内容以及所述描述符的内容引用指示的内存106中的任何其它信息,初始化所述处理集群102至104中的一个或多个,以执行所述描述符定义的作业。这样,所述作业管理器可以逐个遍历所存储的描述符。例如,遍历所述描述符的顺序可以是写入所述描述符的顺序、它们位于所述内存106中的顺序,或者可以取决于与每个描述符相关联的优先级值。当所述作业管理器读取每个描述符及其引用的任何值时,其将所述数据缓存到本地。这允许从缓存中重新构建继承数据,而无需从内存中重新读取。
可以提供一个或多个偏移表。第一偏移表可指示存储每个描述符的内存区域的地址,作为从基地址的偏移。通过基指针加上存储在所述偏移表中的相应偏移值导出所述内存106中的描述符的地址。这允许所述作业管理器101访问每个描述符,并允许所述驱动程序将每个描述符的内容形成到内存,而无需事先知道所述描述符将存储在哪个地址。对于描述符的至少一些元素,第二偏移表可以指示从存储相应元素的所述描述符的起始地址的偏移。一旦知道相关描述符的起始地址,所述作业管理器就可以使用第二偏移表直接复制和/或克隆和修补存储在特定元素中的地址。
与通过存储在所述共享内存107中相反,使用通用寄存器可以方便地将所述跳过列表掩码和所述基地址中的每一个提供给所述作业管理器101。
一旦生成描述符,所述硬件单元可以存储或缓存所述新描述符。如果描述符具有一个继承字段,则所述单元可以通过先前生成并存储在缓存或内存中的描述符填充继承字段。
当系统架构具有存储描述符和所述描述符引用的任何其它数据的统一内存布局时,避免重复复制描述符有效负载值的方法特别方便。内存可以采用参数化缓冲区的形式。
由描述符元素寻址的数据块的大小可以根据应用程序而变化。例如,所述数据块的大小可以在4字节至1K字节的范围内。有效负载大小应与在遍历作业链中的作业时所需检查的有效负载大小相对应。
如上所述的内存107的安排可以减少内存分配、碎片和管理的开销。有助于实现这一点的一个方面是通过在一个或多个描述符元素中寻址将所述内存107划分为单独的区域,以存储(i)描述符和(ii)与描述符链接的数据。有助于实现这一点的第二方面是将每个描述符的内存划分为存储定长描述符元素的第一区域和存储可变长度描述符元素的第二区域。分配和初始化所述统一内存107以服务特定应用程序109可以在初始化所述应用程序的阶段中完成。
与一些其它方法相比,通过安排所述作业管理器如以上所描述的那样重新使用作业描述符数据,可以减少从所述驱动程序105到所述内存107以及从所述内存107到所述作业管理器101的副本数量。
所述作业管理器可以通过在所述内存107中保持指针指向当前读取位置方便地读取描述符。指针的位置可以用相对较少的参数计算:
1.基地址,所述作业描述符开始存储在所述内存107中的所述基地址处;
2.表地址,所述表存储所述描述符的元素从其基址的偏移(不同类型的描述符可能有多个这样的表);
3.偏移表的大小(指示所述作业管理器应从所述表地址读取多远;这将取决于所述描述符中的字段数;方便的是,对于每个描述符字段,所述表中的字段都是固定长度的)。
所述作业管理器可以遍历所述偏移表,从表地址(2)开始,确定与当前描述符的一个字段相关的一系列偏移值。这些偏移值中的每一个可以添加到基地址(1),以确定相应描述符字段的地址。可以读取所述字段,以给出一个或多个其它地址,其中将从所述一个或多个其它地址读取内容数据。
在上述系统中,许多不同的基于指针的描述符的执行特征可以用以下参数表示:
1.统一内存布局的作业基地址
2.偏移表地址
3.偏移表大小
4.当前参数化缓冲区地址
5.任意依赖树
内存子系统可以硬连线以接受控制逻辑,所述控制逻辑允许所述作业管理器使用一组这样的参数来访问它。这可以提高性能。
所述作业管理器可以实现为执行软件的GPU协处理器,或实现为专用的固定硬件块。预计硬件实现会更高效。
图3示出了根据本发明的读取描述符的方法。301:读取基地址列表并检索特定描述符的基地址。302:读取跳过列表掩码,以确定从内存107读取当前描述符的哪些元素,不读取(跳过)哪些元素,因为它们将通过最后读取的描述符的相应数据填充。(应注意的是,最后读取的描述符本身可能已经通过先前读取的描述符继承了所述数据)。303:读取偏移表地址。304:读取参数化内存106中的初始地址。步骤305:确定是否已达到所述偏移表的末尾。306:如果是,则流程结束,然后所述单元将已形成的描述符传递给图1中所示的集群102、103、104中的一个或多个集群。因此,在步骤306中,准备所述作业描述符以供所述GPU的图形处理集群使用,其中填充了所述作业描述符的所有字段。
步骤307:如果未到达偏移表的末尾,则加载偏移表的下一个值。308:通过基地址加上所述偏移值形成当前地址指针。所述作业管理器硬件块中的后续控制逻辑使用每个描述符字段的当前地址指针来直接访问存储在所述地址处的值,同时为所述GPU集群准备任务。它不需要通过添加基地址和所需的偏移量索引来再次进行算术地址计算操作。这是一个正好在任务完成之前的后期地址修补操作。309:增加偏移表指针,以指向下一个偏移。步骤310:判定是否设置了所述跳过列表掩码的下一个比特值。311:如果判定结果为是,则跳过条目,并使用模板内存中的先前描述符的旧数据。步骤312:如果结果为否,则从模板内存中的参数化内存位置复制从参数化内存指针的当前值开始并且其大小是由当前偏移指针指示的偏移表值的块。步骤313:然后,将所述参数化内存指针更新为所述参数化内存指针的当前值加上所述当前偏移大小。步骤314:然后流程返回至步骤305。
图4中描述了根据本发明的方法的摘要。步骤401:接收定义以下信息的数据:(i)存储描述符内容的内存位置的地址以及(ii)继承字段集。步骤402:(i)通过从先前形成的描述符复制数据来填充新描述符的继承字段并且(ii)通过从所定义地址处的内存位置复制数据来填充所述新描述符的其它字段,形成所述新描述符。
上述硬件单元可减少GPU驱动程序开销,所述开销可定义为由于API调用而将作业打包和发送至所述GPU所需的CPU工作量。减少移动SoC上的GPU驱动程序开销可以通过避免例如GPU的热节流而提高整体性能。还可以降低整体功耗。
申请方在此单独公开本文描述的每一个体特征及两个或两个以上此类特征的任意组合。以本领域技术人员的普通知识,能够基于本说明书将此类特征或组合作为整体实现,而不考虑此类特征或特征的组合是否能解决本文所公开的任何问题;且不对权利要求书的范围造成。本申请表明本发明的各方面可由任何这类单独特征或特征的组合构成。鉴于前文描述可在本发明的范围内进行各种修改对本领域技术人员来说是显而易见的。

Claims (14)

1.一种用于形成描述符的硬件单元,其特征在于,所述描述符用作处理单元的指令,每个描述符包括多个字段,所述硬件单元用于接收定义以下信息的数据:(i)存储描述符内容的内存位置的地址以及(ii)继承字段集;所述硬件单元用于:(i)通过从先前形成的描述符复制数据来填充新描述符的继承字段并且(ii)通过从所定义的地址处的内存位置复制数据来填充所述新描述符的其它字段,形成所述新描述符。
2.根据权利要求1所述的硬件单元,其特征在于,所述硬件单元用于存储所述新描述符。
3.根据权利要求1或2所述的硬件单元,其特征在于,所述硬件单元用于通过所述硬件单元先前存储的描述符的所述字段填充所述新描述符的所述继承字段。
4.根据前述权利要求中任一项所述的硬件单元,其特征在于,定义存储所述描述符内容的所述内存位置的地址的所述数据包括基地址和第一数据结构,所述第一数据结构包括对应于所述内存中存储的每个描述符字段的偏移值,所述硬件单元用于通过确定相对于所述基地址偏移所述第一数据结构中的相应偏移值的地址来确定每个所述地址。
5.根据前述权利要求中任一项所述的硬件单元,其特征在于,所述硬件单元用于接收定义所述继承字段集的数据,所述继承字段集包括第二数据结构,所述第二数据结构指示通过从先前形成的描述符复制数据来填充哪些字段。
6.根据权利要求5所述的硬件单元,其特征在于,所述第二数据结构包括掩码,其中所述掩码的每个字段对应于所述描述符的相应字段并指示所述描述符的所述字段是否为继承字段。
7.根据前述权利要求中任一项所述的硬件单元,其特征在于,所述硬件单元用于向所述处理单元提供所述新描述符。
8.根据前述权利要求中任一项所述的硬件单元,其特征在于,所述硬件单元用于向作为所述处理单元的图形处理单元提供所述新描述符。
9.根据前述权利要求中任一项所述的硬件单元,其特征在于,所述指令是着色器、顶点、像素、片段和计算中的一种。
10.根据前述权利要求中任一项所述的硬件单元,其特征在于,所述描述符是图形处理单元作业描述符。
11.根据前述权利要求中任一项所述的硬件单元,其特征在于,所述硬件单元与包含所述内存位置的驱动程序内存共享。
12.根据权利要求11所述的硬件单元,其特征在于:
所述描述符的格式使得所述描述符的所述字段的第一子集为固定长度,所述描述符的所述字段的第二子集为可变长度;
所述驱动程序用于存储用于将所述第一子集的所述字段填充到所述内存的第一公共区域的数据,以及用于存储用于将所述第二子集的所述字段填充到所述内存的与所述第一公共内存区域分离的第二公共区域的数据。
13.一种用于形成用作处理单元的指令的描述符的方法,其特征在于,每个描述符包括多个字段,所述方法包括:
接收定义以下信息的数据:(i)存储描述符内容的内存位置的地址以及(ii)继承字段集;
(i)通过从先前形成的描述符复制数据来填充新描述符的继承字段,以及(ii)通过从所定义地址处的内存位置复制数据来填充所述新描述符的其它字段,形成所述新描述符。
14.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机可执行指令,所述计算机可执行指令在由处理器执行时执行权利要求13所述的方法的步骤。
CN201880088674.8A 2018-04-23 2018-04-23 指令处理 Active CN111699506B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2018/060384 WO2019206398A1 (en) 2018-04-23 2018-04-23 Instruction processing

Publications (2)

Publication Number Publication Date
CN111699506A true CN111699506A (zh) 2020-09-22
CN111699506B CN111699506B (zh) 2023-09-01

Family

ID=62046931

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880088674.8A Active CN111699506B (zh) 2018-04-23 2018-04-23 指令处理

Country Status (2)

Country Link
CN (1) CN111699506B (zh)
WO (1) WO2019206398A1 (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110296411A1 (en) * 2010-05-25 2011-12-01 Transoft Kernel Bus System to Build Virtual Machine Monitor and the Performance Service Framework and Method Therefor
US20140347371A1 (en) * 2013-05-24 2014-11-27 Sony Computer Entertainment Inc. Graphics processing using dynamic resources
US20150221063A1 (en) * 2014-02-04 2015-08-06 Samsung Electronics Co., Ltd. Method for caching gpu data and data processing system therefor
WO2015142770A2 (en) * 2014-03-19 2015-09-24 Microsoft Technology Licensing, Llc Configuring resources used by a graphics processing unit
CN105446898A (zh) * 2014-09-23 2016-03-30 Arm有限公司 描述符环管理
US20170344468A1 (en) * 2016-05-27 2017-11-30 Hewlett Packard Enterprise Development Lp Object descriptors

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110296411A1 (en) * 2010-05-25 2011-12-01 Transoft Kernel Bus System to Build Virtual Machine Monitor and the Performance Service Framework and Method Therefor
US20140347371A1 (en) * 2013-05-24 2014-11-27 Sony Computer Entertainment Inc. Graphics processing using dynamic resources
US20150221063A1 (en) * 2014-02-04 2015-08-06 Samsung Electronics Co., Ltd. Method for caching gpu data and data processing system therefor
WO2015142770A2 (en) * 2014-03-19 2015-09-24 Microsoft Technology Licensing, Llc Configuring resources used by a graphics processing unit
CN105446898A (zh) * 2014-09-23 2016-03-30 Arm有限公司 描述符环管理
US20170344468A1 (en) * 2016-05-27 2017-11-30 Hewlett Packard Enterprise Development Lp Object descriptors

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
肖汉;郭运宏;周清雷;: "面向CPU+GPU异构计算的SIFT特征匹配并行算法", 同济大学学报(自然科学版), no. 11 *

Also Published As

Publication number Publication date
CN111699506B (zh) 2023-09-01
WO2019206398A1 (en) 2019-10-31

Similar Documents

Publication Publication Date Title
US10831376B2 (en) Flash-based accelerator and computing device including the same
JP5668014B2 (ja) プロセッサにおけるタスクおよびデータ管理
US9329988B2 (en) Parallel dynamic memory allocation using a nested hierarchical heap
JP5091215B2 (ja) コプロセッサの性能を強化するシステムおよび方法
US20230196502A1 (en) Dynamic kernel memory space allocation
JP2010287254A (ja) タスクのスケジューリングを支援する装置
CN102985910A (zh) 对无用存储单元收集的gpu支持
GB2543866A (en) Task assembly for SIMD processing
US9798543B2 (en) Fast mapping table register file allocation algorithm for SIMT processors
US20150123980A1 (en) Method and apparatus for supporting programmable software context state execution during hardware context restore flow
KR101943312B1 (ko) 플래시 기반 가속기 및 이를 포함하는 컴퓨팅 디바이스
CN115934102A (zh) 通用寄存器动态分配方法、装置、计算机设备和存储介质
CN110209354B (zh) 用于处理数据的方法、装置、设备和介质
US6895583B1 (en) Task control block for a computing environment
US9405470B2 (en) Data processing system and data processing method
CN111699506B (zh) 指令处理
CN109983435B (zh) 图形处理方法及相关装置和设备
US20120011330A1 (en) Memory management apparatus, memory management method, program therefor
US12099866B2 (en) Address mapping-aware tasking mechanism
US20220206839A1 (en) Address mapping-aware tasking mechanism
US20240281311A1 (en) Queue adjustments to avoid message underrun and usage spikes
US20230334750A1 (en) Methods and hardware logic for loading ray tracing data into a shader processing unit of a graphics processing unit
GB2614098A (en) Methods and hardware logic for writing ray tracing data from a shader processing unit of a graphics processing unit
JP2024116638A (ja) 情報処理装置
GB2611599A (en) Methods and hardware logic for loading ray tracing data into a shader processing unit of a graphics processing unit

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