CN104040500B - 基于线程相似性的调度线程执行 - Google Patents

基于线程相似性的调度线程执行 Download PDF

Info

Publication number
CN104040500B
CN104040500B CN201180074891.XA CN201180074891A CN104040500B CN 104040500 B CN104040500 B CN 104040500B CN 201180074891 A CN201180074891 A CN 201180074891A CN 104040500 B CN104040500 B CN 104040500B
Authority
CN
China
Prior art keywords
similitude
thread
task
entry
index
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.)
Expired - Fee Related
Application number
CN201180074891.XA
Other languages
English (en)
Other versions
CN104040500A (zh
Inventor
F·陈
Y·郝
J·付
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN104040500A publication Critical patent/CN104040500A/zh
Application granted granted Critical
Publication of CN104040500B publication Critical patent/CN104040500B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5033Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering data affinity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering

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 Graphics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

根据一些实施例,图形处理单元中执行的线程之间的空间及时间局部性可被分析和跟踪以提高性能。在一些应用中,大量线程被执行并且那些线程使用公用资源,例如公用数据,相似性跟踪可用于通过降低高速缓存未命中率提高性能以及更有效地使用相对小型高速缓存。

Description

基于线程相似性的调度线程执行
技术领域
本申请一般涉及通用图形处理单元。
背景技术
在许多计算平台中,可使用分离的中央处理和图形处理单元。图形处理任务可从中央处理器卸载到图形处理器。图形处理器可执行多种专用任务,包括图形任务和财务分析任务。典型的在涉及大量数学操作时,任务可卸载到图形处理器。
例如,在财务分析中可执行蒙特卡罗模拟。蒙特卡罗模拟基于平均价格和股票价格的变化预测可选价格。图形处理器可用于使用数千个线程进行这些模拟。通常线程执行的顺序未被优化,只是简单地以一个线程接着一个的顺序执行。
发明内容
按照本公开的一方面,提供一种方法,包括:分割重复的图形处理任务为多个步骤;执行跨多个所述重复的任务的相同步骤;识别任务间的相似性;并且排序执行所述任务的线程以利用任务间的相似性。
按照本公开的另一方面,提供一种装置,包括:用于分割重复的图形处理任务为多个步骤的部件;用于执行跨多个所述重复的任务的相同步骤的部件;用于识别任务间的相似性的部件;以及用于排序执行所述任务的线程以利用任务间的相似性的部件。
按照本公开的又一方面,提供一种设备,包括:控制器,分割重复的图形处理任务为多个步骤,执行跨多个所述重复的任务的相同步骤,识别任务间的相似性,并且排序执行所述任务的线程以利用任务间的相似性;以及耦合到所述控制器的存储器。
附图说明
图1是根据一实施例的图形处理单元体系结构的描绘;
图2是图1实施例中使用的相似性历史缓冲器的示意描绘;
图3是与图1实施例联系使用的相似性采样表的示意描绘;
图4是相似性跟踪缓冲器的更详细描绘;
图5是根据一实施例的相似性检测的状态图;
图6是根据一实施例的相似性采样的示意描绘;
图7根据一实施例的相似性采样的流程图;
图8是根据一实施例的相似性采样状态的描绘;
图9是根据一实施例的相似性历史缓冲器更新的描绘;
图10是根据一实施例的相似性历史更新的流程图;
图11是根据一实施例的相似性信息输出的示意描述;
图12是根据一实施例的相似性信息输出的流程图。
具体实施方式
根据一些实施例,图形处理单元中执行的线程间的空间和时间局部性(locality)可被分析和跟踪以提高性能。一些应用中,大量线程被执行并且那些线程使用公用资源,例如公用数据,相似性跟踪可用于通过降低高速缓存未命中(miss)率提高性能以及更有效地使用相对小型高速缓存。
一些实施例中,任务可被分割为大量步骤,并且任务可以因为多种不同情况而重复。通过计算跨多种情形的相同步骤(其每个都被不同线程组执行),该线程组间的相似性可用于提高性能。
一种可用的相似性分析应用是使用上千个线程用于蒙特卡罗模拟的图形处理。大量的线程,例如128或256个线程,可被用于计算每个股票的可选价格。可分析大量选项,例如可同时计算10,000个可选价格。然而,不同选项可使用提供随机数的相同的状态输入。因此可实现基于相似性的性能改进的机会,因为不同组的线程可共享公用资源的使用,在这种情况下为状态输入。由于图形处理单元的高速缓存大小与中央处理单元的相比相对较小,所以相似性分析特别应服从提高图形单元的性能。
因此,代替一个选项接着一个地计算股票可选价格,可选价格可通过将计算分割为多个步骤并跨多个选项执行一个步骤来计算。一个接着一个地计算可选价格可能低效,因为两组线程可访问相同数据集。因此通过使用线程组间的局部性识别和利用,当将计算分割为多个步骤且对于大量选项计算相同步骤时性能可被提高。
更特别的,线程执行顺序可重新排序或重新调度以利用线程间局部性。再次回顾蒙特卡罗模拟的例子,模拟计算可分割为大概一百个步骤。作为一个示例,可为第一选项完成第一步骤,且之后计算可暂停,接下来通过为第二选线完成第一步骤,且之后将其暂停等等。这样可降低高速缓存中的信息量从而空间局部性可有利地跨线程组使用。
从而在一些实施例中的高速缓存未命中率会降低。因此通过识别跨线程组的局部性,通过调度线程执行顺序以利用线程组间的局部性可获得性能的益处。基本上,具有局部性的线程组可顺序执行。
相同的局部性优势会产生在多个图形处理任务中,包括那些一般与像素着色器(shader)相关的,因为它们在计算的不同部分要求不同的纹理资源。
参考图1,根据图形处理单元吞吐率计算体系结构10,活跃线程池12可包括用于一个单独向量执行单元13的多个线程。换句话说,每个向量执行单元13可包括活跃线程池12。因此在一实施例中,每个向量执行单元可用于为一种特定股票确定可选价格。
根据本发明的一些实施例,每个向量执行单元可包括调度器,其包括相似性历史缓冲器19。该相似性历史缓冲器可用于跟踪线程间相似性。该调度器可使用该信息以利用任意检测到的相似性的顺序来执行线程。
每个向量执行单元包括数据层级高速缓存14,其依次连接到任意数量的更高层级高速缓存,包括末级(lastlevel)高速缓存(LLC)16。存储器控制器18可耦合到数据高速缓存。
本文中使用的“资源访问相似性”或“相似性”是两个不同线程使用实质相同资源的结果,从而可以通过调度具有顺序的或实质顺序的相似性的线程来获得性能优势。将计算任务分割并在不同线程上执行它们的结果是,时间和空间局部性可能会丢失。通过分析空间和时间局部性,当线程具有相似性时,可重新调度线程来顺序地执行。这样会导致提高高速缓存命中率和存储器请求合并效率。相似性历史缓冲器检测及跟踪主要(dominant)资源访问相似性。
因此参考图2,提供了对于图1中示出的相似性历史缓冲器19的更消息描述。线程路径标识符20将线程路径标识符馈送给全局线程路径位图(bitmap)28和本地线程路径位图32。存储器负载地址缓冲器22提供负载地址给存储器移位寄存器26。存储器移位寄存器26以某种程度上定期的方式移位该存储器地址以找到具有相似性的存储器地址。线程路径位图28的输出提供给存储器片段索引30,其也接收地址移位。输出是形成相似性采样表格24的本地线程路径位图32。
来自本地线程路径位图32的输出提供为相似性条目36。相似性条目可提供给线程分配状态寄存器38且最后提供给线程调度器或图1示出的向量执行单元13的资源分配逻辑40。
图2和3示出的存储器地址移位逻辑26可以是可配置的按位移位寄存器。要移位的字节数量和移位方向可由驱动器22(图3)配置。驱动器基于可用高速缓存资源大小和工作负载访问粒度设置位数。其输入是来自存储器负载地址22(图3)的存储器负载操作(图3中的块44和46)的虚拟地址。其输出称为存储器片段索引30。
实际上,存储器地址移位逻辑可使用其它按位操作而不是正常的移位。例如,对于基于二维的纹理访问,向右的移位操作可基于不同并列显示(tiling)算法调整。如果具有相同存储器片段索引的线程,则那些线程之中具有空间和/或空间局部性。要移位的位数确定了局部性的容差。
全局线程路径位图28是寄存器,其位数与活跃线程池大小相同。对于给定内核(kernel),如果图形处理单元硬件的资源不能保持40个线程,则寄存器可以是5字节的长度。如果最大线程数是32,则其长度是1个字。它的位用作位图以映射池中的每个硬件线程。例如,池中的第一线程映射到较不重要的位。如果设置了全局线程路径位图的一位,则其代表相应的线程正经过相似性采样过程,反之亦然。
相似性采样表24(图3)是二维表。对于表中每个条目,其索引域是存储器片段索引。其值域是本地线程路径位图。存储器片段索引来自存储器地址移位逻辑26的输出。本地线程路径位图是使用与全局线程路径位图28相同的语义处理的位图。如果本地线程路径位图中的一位被设置为1,则这意味着对应的硬件线程的存储器片段索引等于该条目的索引域。因而包含空间和/或时间局部性的线程可群集到相同条目。本地线程路径位图的值也可解释为相似性标识符。对于活跃线程池中的N个元素,相似性标识符的可用值范围从0到2N
相似性跟踪缓冲器34包括两个组件。第一组件包括相似性条目36。这是设计来通过访问历史以跟踪热点相似性标识符的缓冲器。第二组件是线程分配状态寄存器38。对这个子系统的输入是该相似性标识符且输出是该热点相似性标识符。
相似性跟踪缓冲器34是该子系统的核心单元。图4示出该相似性跟踪缓冲器的放大视图。其是固定大小的二维表。跟踪缓冲器中的每个条目包括一个索引和两个值域。索引域的内容是相似性标识符66。第一值域是记录给定相似性标识符66跨一系列采样的出现的命中计数器。如果该相似性标识符第一次插入表中,则它的初始值为0。第二值是在前槽(“PREVSLOT”)。
在前槽的内容表示相似性跟踪缓冲器中的槽(slot)。对于N槽的相似性跟踪缓冲器设计,在前槽的值范围是从1到N。
在前槽用于在相似性跟踪缓冲器中设置排序的连接列表。该列表之后用来保持两层级的优先队列用于条目替换和输出。这个队列中的第一优先级层级是命中率。在命中计数器中具有最高值的条目最不可能被替换,并且最可能被输出到外部系统。第二优先级层级是条目寿命。对于具有相同命中记录值的条目,最年轻的条目将最不可能被替换,并且最可能被输出到外部系统。在前槽值指向这个链接的列表的下一热点条目。为了加速相似性信息输出,保持该链接的列表的末尾。其指向最热点的相似性组索引。
参考图5,示出了使用相似性缓冲器进行相似性检测的状态图。每次迭代包括初始状态70、相似性采样状态72,其中存储器指令可从不同线程退出,相似性历史更新状态74,其一次且仅一次接收所有线程更新的表格,以及相似性状态输出状态和停止状态。开始状态是状态机的开始点。相似性采样表格的内容对每次迭代是本地的且在开始状态设为0。动作包括形成位,将相似性采样表格和全局线程路径位图清零的行动。在相似性采样状态72,相似性采样子系统群集相似性标识符用于活跃线程池。对于池中的每个线程,线程被采样一次且仅采样一次。相似性历史更新状态74识别并跟踪当前应用的主要相似性标识符。它的内容跨迭代被保护。状态可切换到相似性信息输出阶段76,其期间输出热点相似性标识符。
相似性采样状态72在图6中更详细地示出。使用该线程池具有M个元素的例子,线程零是被采样的第一个线程,数字“1”被向左移位“0”次,且该结果将与全局线程路径位图的值进行按位与操作。结果是零表示该线程零可用于采样。线程标识符和负载操作的虚拟地址馈送回子系统。假设用于标识相似性访问的粒度是4K字节,地址移位逻辑配置为移位12位。线程零的访问地址是0x0010f00c。移位结果是0x0010f。子系统检索是通过相似性采样表并找到零条目。新条目被分配用于0x0010f并且在本地线程路径位图域中被设置为线程零的对应位。而且,全局线程路径位图中的相应位也被设置。下一线程的类似步骤也被执行,线程1在图6步骤2中示出。
参考图7示出的序列90,该序列可实现为硬件、软件和/或固件。在软件和固件实施例中,其可通过存储在非短暂性计算机可读介质中的计算机可读指令实现。
当存储器指令退出后序列在块92处开始。之后在块94创建线程标识符和存储器地址元组。菱形96处的检测确定是否该元组的逻辑与结果等于零。如果是,该流程结束。否则,在块98,该地址通过映射功能被映射到存储器片段索引。
之后在块100,在该相似性采样表中检索当前存储器片段索引。如果如在菱形102中所确定的存在该条目,则流程转到步骤106。否则在块104分配新条目用于当前存储器片段索引。在块106,本地线程路径位图域使用其旧值和该元组间的逻辑或操作结果来更新。之后在块108,使用其旧值和该元组间的逻辑或操作结果更新全局线程位图。
在完成相似性采样后,如图8所示在相似性采样表中存在3个可能的状态。对于分类1,其在采样表中仅有一个条目并且其被称为强相似性。对于分类2,有至少一个条目的本地线程路径位图被设置多于一次且被称为重要相似性。对于分类3,条目数量等于活跃线程池大小且被称为无关联。对于强和重要相似性分类,子系统输出采样结果到该相似性跟踪子系统。
图5中对应于状态74的相似性跟踪缓冲器更新类似高速缓存来工作。该相似性跟踪缓冲器跟踪热点相似性标识符。假设相似性跟踪缓冲器中在第一缓冲器更新发生前有四个槽,该缓冲器中没有条目,且所有四个槽都可插入。完成第一相似性采样后,相似性标识符0x3800和0xf被识别且填入槽1和2。第二相似性采样阶段中,相似性标识符0xAADA和0x5525被发现并填入。从那时起,不存在空槽。指向槽4的尾部是最近访问过的。跟踪缓冲器的状态如图9中状态1被显示。
当采样表准备好第三次输出时,如图9中状态2所示,0xAADA和0x5525被馈送且增加相应的命中计数器。当第四采样结果就绪时(标识符0x360和0x7)不存在可使用的空槽。缓冲器清除具有最低命中计数的最老条目,其在此情况下为槽1和2中的0x3800和0xF。该状态显示如图9中的状态3。详细的控制流显示在图10中。
图10示出了可实现为硬件、软件和/固件的序列。在软件和固件实施例中,它可由存储在非短暂性计算机可读介质,例如光学、磁或半导体存储器中的计算机可读指令实施。
为更新相似性历史缓冲器,该流程在菱形110通过确定相似性采样表中是否存在更多条目开始。如果存在,则如块112所指示,该条目的对应本地线程路径位图被获得。在块141计算位图中1的数量。如果如在菱形116确定的该数量比1大,则在块118检索相似性历史缓冲器中该位图的值。
菱形120处的检测找到对应的条目。如果如此,则在块122增加命中计数。如果不是,则在菱形124处的检测确定是否有可用的空槽。如果有,则如块128所指示的在目标槽创建相似性条目记录。否则基于最近最少使用的条目找到并替换槽(块124)。
若需要,则相似性跟踪缓冲器帮助输出相似性信息。每个条目的索引域描述相似性线程组和位图。相似性信息输出的示例在图11示出。
在输出开始前,该线程分配状态寄存器清零。相似性跟踪缓冲器输出条目0xAADA作为由尾部指向的第一候选。0xAADA对线程分配状态寄存器进行按位与操作。结果是零意味着位图0xAADA中的所有线程可用。使用旧值和0xAADA间的按位或操作的结果更新线程分配状态寄存器。之后0x5525以相同方式输出。输出过程在第三候选停止因为其的一个线程已经在进行输出。细节图在图12显示。
参考图12,相似性信息输出序列可实现为硬件、软件和/固件。在软件和固件实施例中,它可由存储在非短暂性计算机可读介质,例如半导体、光学或磁存储器中的计算机执行的指令实施。
该序列在块130处通过在当前相似性标识符和线程分配状态寄存器之间进行按位与操作开始。如果如在菱形132处确定的结果为零,则该相似性标识符在块134输出。在块136使用其旧值与当前相似性标识符之间按位或操作的结果更新线程分配状态寄存器的值。之后在块138使用由在前槽指示的条目替换当前条目。
此处描述的图形处理技术可应用在不同的硬件体系结构中。例如,图形功能性可集成在芯片集中。备选地,可使用分立的图形处理器。如再另一实施例,图形功能可由通用处理器,包括多核处理器实现。
说明书全文中提及的“一实施例”或“实施例”意味着联系该实施例描述的特定特征,结构或特性也包括在本发明包含的至少一实施方式中。因此,短语“一实施例”或“在实施例中”的出现并不一定指相同的实施例。进一步的,特定的特征、结果或特性可以其它适合方式而不是示出的特定实施例建立,并且所有这些方式都包含在本发明权利要求书范围内。
尽管本发明关于有限数量的实施例进行描述,但是本领域技术人员能够懂得来自它的众多修改方式和变换。附带的权利要求书意在覆盖所有这样的修改和变换,其均落入本发明的范围和真实精神内。

Claims (21)

1.一种用于图形处理的方法,包括:
分割重复的图形处理任务为多个步骤;
执行跨多个所述重复的任务的相同步骤;
识别任务间的相似性;并且
排序执行所述任务的线程以利用任务间的相似性,其中所述相似性是资源访问相似性。
2.根据权利要求1的方法,包括使用地址移位逻辑以识别可能具有相似性的任务。
3.根据权利要求2的方法,包括使用驱动器配置所述地址移位逻辑,所述驱动器基于可用高速缓存大小来设置要移位的位数,所述地址移位逻辑输出存储器片段索引。
4.根据权利要求3的方法,包括将具有相同存储器片段索引的线程命名为具有相似性。
5.根据权利要求4的方法,包括设立二维相似性采样表,其索引域是所述存储器片段索引且其值域是本地线程路径位图,其指示所述存储器片段索引是否与条目的索引域相同。
6.根据权利要求5的方法,包括在所述表的一个条目中群集具有相似性的线程。
7.根据权利要求1的方法,包括在缓冲器中跟踪相似性,其建立排序的链接列表来保持两层级优先级序列用于条目替换。
8.一种用于图形处理的装置,包括:
用于分割重复的图形处理任务为多个步骤的部件;
用于执行跨多个所述重复的任务的相同步骤的部件;
用于识别任务间的相似性的部件;以及
用于排序执行所述任务的线程以利用任务间的相似性的部件,其中所述相似性是资源访问相似性。
9.根据权利要求8的装置,进一步包括用来使用地址移位逻辑以识别可能具有相似性的任务的部件。
10.根据权利要求9的装置,进一步包括用来使用驱动器配置所述地址移位逻辑的部件,所述驱动器基于可用高速缓存大小来设置要移位的位数,所述地址移位逻辑输出存储器片段索引。
11.根据权利要求10的装置,进一步包括用来将具有相同存储器片段索引的线程命名为具有相似性的部件。
12.根据权利要求11的装置,进一步包括用来设立二维相似性采样表的部件,其索引域是所述存储器片段索引且其值域是本地线程路径位图,其指示所述存储器片段索引是否与条目的索引域相同。
13.根据权利要求12的装置,进一步包括用来在所述表的一个条目中进行群集具有相似性的线程的部件。
14.根据权利要求8的装置,进一步包括用来在缓冲器中跟踪相似性的部件,其建立排序的链接列表来保持两层级优先级序列用于条目替换。
15.一种用于图形处理的设备,包括:
控制器,分割重复的图形处理任务为多个步骤,执行跨多个所述重复的任务的相同步骤,识别任务间的相似性,并且排序执行所述任务的线程以利用任务间的相似性,其中所述相似性是资源访问相似性;以及
耦合到所述控制器的存储器。
16.根据权利要求15的设备,所述控制器使用地址移位逻辑以识别可能具有相似性的任务。
17.根据权利要求16的设备,包括驱动器,用于配置所述地址移位逻辑,所述驱动器基于可用高速缓存大小来设置要移位的位数,以及所述地址移位逻辑输出存储器片段索引。
18.根据权利要求17的设备,所述控制器将具有相同存储器片段索引的线程命名为具有相似性。
19.根据权利要求18的设备,所述控制器设立二维相似性采样表,其索引域是所述存储器片段索引且其值域是本地线程路径位图,其指示所述存储器片段索引是否与条目的索引域相同。
20.根据权利要求19的设备,所述控制器在所述表的一个条目中群集具有相似性的线程。
21.一种机器可读介质,其上面存储指令,所述指令在被执行时导致所述机器执行如权利要求1-7中任一项所述的方法。
CN201180074891.XA 2011-11-15 2011-11-15 基于线程相似性的调度线程执行 Expired - Fee Related CN104040500B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2011/082215 WO2013071485A1 (en) 2011-11-15 2011-11-15 Scheduling thread execution based on thread affinity

Publications (2)

Publication Number Publication Date
CN104040500A CN104040500A (zh) 2014-09-10
CN104040500B true CN104040500B (zh) 2018-03-30

Family

ID=48428927

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180074891.XA Expired - Fee Related CN104040500B (zh) 2011-11-15 2011-11-15 基于线程相似性的调度线程执行

Country Status (3)

Country Link
US (1) US9268595B2 (zh)
CN (1) CN104040500B (zh)
WO (1) WO2013071485A1 (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9069609B2 (en) * 2012-01-18 2015-06-30 Nvidia Corporation Scheduling and execution of compute tasks
CN104995603A (zh) * 2013-11-14 2015-10-21 联发科技股份有限公司 至少部分基于共享相同数据及/或存取相同存储地址的任务分布的任务调度方法以及多核处理器系统中用于分配任务的相关非暂时性计算机可读介质
US9606823B2 (en) * 2013-12-09 2017-03-28 Vmware, Inc. Adaptive interrupt and system call coalescing
GB2521155B (en) * 2013-12-10 2021-06-02 Advanced Risc Mach Ltd Configuring thread scheduling on a multi-threaded data processing apparatus
JP6459784B2 (ja) * 2015-06-03 2019-01-30 富士通株式会社 並列計算機、マイグレーションプログラム、及び、マイグレーション方法
KR102449333B1 (ko) 2015-10-30 2022-10-04 삼성전자주식회사 메모리 시스템 및 그것의 읽기 요청 관리 방법
CN105808358B (zh) * 2016-03-29 2019-10-18 西安交通大学 一种用于众核系统的数据相关性线程分组映射方法
US10552309B2 (en) 2017-11-09 2020-02-04 International Business Machines Corporation Locality domain-based memory pools for virtualized computing environment
US10691590B2 (en) 2017-11-09 2020-06-23 International Business Machines Corporation Affinity domain-based garbage collection
US10445249B2 (en) 2017-11-09 2019-10-15 International Business Machines Corporation Facilitating access to memory locality domain information
US10558572B2 (en) * 2018-01-16 2020-02-11 Microsoft Technology Licensing, Llc Decoupling trace data streams using cache coherence protocol data

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101833438A (zh) * 2010-04-19 2010-09-15 浙江大学 一种基于多重并行的数据通用处理方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100319768B1 (ko) * 1991-08-13 2002-04-22 마거리트 와그너-달 영상화및그래픽처리시스템내에서의다차원주소발생방법
US7467383B2 (en) * 2004-03-08 2008-12-16 Ab Initio Software Llc System for controlling task execution using a graphical representation of task dependency
US8006175B2 (en) * 2007-10-29 2011-08-23 Microsoft Corporation Calculation of spreadsheet data
US8156495B2 (en) * 2008-01-17 2012-04-10 Oracle America, Inc. Scheduling threads on processors
CN101286138A (zh) 2008-06-03 2008-10-15 浙江大学 基于数据划分的多线程共享多核处理器二级缓存的方法
CN101615120B (zh) 2009-08-13 2012-11-14 电子科技大学 Aadl模型的一种调度分析方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101833438A (zh) * 2010-04-19 2010-09-15 浙江大学 一种基于多重并行的数据通用处理方法

Also Published As

Publication number Publication date
WO2013071485A1 (en) 2013-05-23
US9268595B2 (en) 2016-02-23
CN104040500A (zh) 2014-09-10
US20130290971A1 (en) 2013-10-31

Similar Documents

Publication Publication Date Title
CN104040500B (zh) 基于线程相似性的调度线程执行
TWI493451B (zh) 使用預解碼資料進行指令排程的方法和裝置
CN103218309B (zh) 多级指令高速缓存预取的方法、系统与设备
TWI501150B (zh) 無指令解碼而排程指令的方法和裝置
US10255228B2 (en) System and method for performing shaped memory access operations
US8949841B2 (en) Approach for a configurable phase-based priority scheduler
US9606808B2 (en) Method and system for resolving thread divergences
US9946549B2 (en) Register renaming in block-based instruction set architecture
US9069609B2 (en) Scheduling and execution of compute tasks
US10691597B1 (en) Method and system for processing big data
US9626216B2 (en) Graphics processing unit sharing between many applications
KR20130116166A (ko) 멀티-코어 프로세서용 멀티스레드 애플리케이션-인지 메모리 스케줄링 기법
CN104160420A (zh) 在图形处理单元上执行图形和非图形应用
US11934867B2 (en) Techniques for divergent thread group execution scheduling
US9715413B2 (en) Execution state analysis for assigning tasks to streaming multiprocessors
CN109564515A (zh) 为了向后兼容性而对应用程序特定的操作参数进行的实时调整
US20140204098A1 (en) System, method, and computer program product for graphics processing unit (gpu) demand paging
CN103294449A (zh) 发散操作的预调度重演
US20200264879A1 (en) Enhanced scalar vector dual pipeline architecture with cross execution
CN116635823A (zh) 用于前端聚集/分散存储器合并的方法和装置
US20210049016A1 (en) Efficient performance of inner loops on a multi-lane processor
US20180120919A1 (en) Method and Computing System of Allocating Registers
Aljoby et al. Parallelization of K-medoid clustering algorithm
US20240193721A1 (en) System and method for adaptive graph-to-stream scheduling
US9817668B2 (en) Batched replays of divergent operations

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
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20180330

Termination date: 20191115