用于在多线程处理器上执行发散操作的方法和设备技术

技术编号:14204424 阅读:99 留言:0更新日期:2016-12-18 11:00
本发明专利技术提供一种SIMD处理器,其可经配置以确定来自多个线程的一或多个活动线程;从所述一或多个活动线程选择一个活动线程;以及在所选择的活动线程上执行发散操作。所述发散操作可为串行操作。

Techniques for serial execution in SIMD processing systems

The invention provides a SIMD processor, can be configured to determine from multiple threads of one or more active threads; from the one or more active threads choose an activity thread; and performing operation in divergent chosen activity thread. The divergence operation can be a serial operation.

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及多线程处理,且更确切地说,涉及用于单指令多数据(SIMD)处理系统中的串行化执行的技术。
技术介绍
单指令多数据(SIMD)处理系统为包含对多个数据段执行相同指令的多个处理元件的一类并行计算系统。SIMD系统可为独立计算机或计算系统的子系统。举例来说,一或多个SIMD执行单元可用于图形处理单元(GPU)中以实施支持可编程着色的可编程着色单元。SIMD处理系统允许程序的多个执行线程以并行方式在多个处理元件上同步执行,由此增加需要对多个数据段执行相同集合的操作的程序的处理量。在一些情形中,可能需要串行地执行一或多个线程。举例来说,在需要将一个线程的输出作为一或多个其它线程的输入的情形中。在SIMD上执行串行操作可为资源密集的且低效的。
技术实现思路
本专利技术描述用于在SIMD处理系统中执行串行化操作的技术。在本专利技术的实例中,提议选择多个活动线程中的一个线程以执行串行指令的硬件执行的指令。所述指令可在不检查线程ID或使用指令以锁定共享变量的情况下选择线程。因而,可在对系统资源造成最小影响的情况下快速且高效地执行串行操作。在本专利技术的一个实例中,经配置以执行发散操作的多线程处理器包括经配置以确定来自多个线程的一或多个活动线程且从所述一或多个活动线程选择一个活动线程的控制单元,和多个处理元件,其中与所选择的活动线程相关联的多个处理元件中的一个处理元件经配置以执行发散操作。在本专利技术的另一实例中,经配置以在多线程处理器上执行发散操作的设备包括用于确定来自多个线程的一或多个活动线程的装置;用于从所述一或多个活动线程选择一个活动线程的装置;以及用于在所选择的活动线程上执行发散操作的装置。在本专利技术的另一实例中,经配置以执行发散操作的设备包括多线程处理器,其包括经配置以确定来自多个线程的一或多个活动线程且从所述一或多个活动线程选择一个活动线程的控制单元和多个处理元件,其中与所选择的活动线程相关联的多个处理元件中的一个处理元件经配置以执行发散操作。在本专利技术的另一实例中,在多线程处理器上执行发散操作的方法包括确定来自多个线程的一或多个活动线程;从所述一或多个活动线程选择一个活动线程;以及在所选择的活动线程上执行发散操作。在附图及以下描述中阐述本专利技术的一或多个实例的细节。本专利技术的其它特征、目标和优点将根据所述描述和图式以及权利要求书显而易见。附图说明图1为说明可经配置以实施本专利技术的技术的装置的框图。图2为说明可用于实施本专利技术的技术的实例图形处理单元(GPU)的框图。图3为更详细地说明图2的实例GPU中的控制单元的框图。图4为展示本专利技术的串行化操作技术的流程图。图5为说明本专利技术的技术的实例方法的流程图。具体实施方式本专利技术描述用于在SIMD处理系统(例如,GPU)中执行串行操作的技术。用于在SIMD处理系统中执行串行操作的常规技术可为资源密集的且低效的。本专利技术提议在不循环所有非活动线程的情况下选择多个活动线程中的一个活动线程以执行串行操作的指令(例如,通过SIMD处理器中的硬件执行)。此可导致SIMD处理系统中的更高效的串行操作。图1为说明可实施用于在SIMD处理系统中的串行化执行的本专利技术的技术的实例装置的框图。图1说明装置10,其包含GPU 12、系统存储器14以及处理器16(其可为中央处理单元(CPU))。装置10的实例包含(但不限于)视频装置(例如,媒体播放器)、机顶盒、无线手持机(例如,移动电话)、个人数字助理(PDA)、台式计算机、膝上型计算机、游戏控制台、视频会议单元、平板计算装置及其类似者。装置10除图1中所说明的那些组件之外还可包含若干组件。系统存储器14可被视为装置10的存储器。系统存储器14可包括一或多个计算机可读存储媒体。系统存储器14的实例包含(但不限于)随机存取存储器(RAM)、电可擦除可编程只读存储器(EEPROM)、快闪存储器或可用于携载或存储呈指令和/或数据结构形式的所要程序代码且可通过计算机或处理器访问的任何其它媒体。在一些方面中,系统存储器14可包含使处理器16和/或GPU 12执行在本专利技术中归于处理器16和GPU 12的功能的指令。因此,系统存储器14可为上面存储有指令的计算机可读存储媒体,所述指令在执行时致使一或多个处理器(例如,处理器16和GPU 12)执行各种功能。在一些实例中,系统存储器14可被视为非暂时性存储媒体。术语“非暂时性”可指示存储媒体未体现于载波或传播信号中。然而,术语“非暂时性”不应解释为意味着系统存储器14为非可移动的或其内容为静态的。作为一个实例,可从装置10去除系统存储器14,及将所述系统存储器移动到另一装置。作为另一实例,实质上类似于系统存储器14的存储器可插入到装置10中。在某些实例中,非暂时性存储媒体可存储可随时间推移而变化的数据(例如,存储在RAM中)。在一些实例中,例如装置10为无线手持机通信装置的实例,处理器16和GPU 12可形成在(IC)中。举例来说,IC可被视为芯片封装内的处理芯片。在一些实例中,例如装置10为台式或膝上型计算机的实例,处理器16和GPU 12可容纳在不同集成电路(即,不同芯片封装)中。然而,在装置10为无线手持机通信装置的实例中,处理器16和GPU 12容纳在不同集成电路中可为有可能的。处理器16和GPU 12的实例包含(但不限于)数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其它等效集成或离散逻辑电路。在一些实例中,GPU 12可为包含集成和/或离散逻辑电路的专用硬件,所述电路为GPU 12提供适合于图形处理的大规模并行处理能力。在一些情况下,GPU 12还可包含通用处理能力,且在实施通用处理任务(即,非图形相关任务)时可被称为通用GPU(GPGPU)。处理器16可执行各种类型的应用程序。应用程序的实例包含web浏览器、电子邮件应用程序、电子数据表、视频游戏或产生供显示的可视对象的其它应用程序。用于执行一或多个应用程序的指令可存储在系统存储器14内。处理器16可将可视对象的图形数据传输到GPU 12以供进一步处理。举例来说,处理器16可将处理任务分担到GPU 12,例如需要大规模并行操作的任务。作为一个实例,图形处理需要大规模并行操作,且处理器16可将此些图形处理任务分担到GPU 12。处理器16可根据特定应用程序处理接口(API)与GPU 12通信。此些API的实例包含的API、克罗诺斯(Khronos)小组的API以及OpenCLTMAPI;然而,本专利技术的各方面不限于DirectX、OpenGL或OpenCL API,且可扩展到其它类型的API。此外,本专利技术中描述的技术不需要根据API作用,且处理器16和GPU 12可利用任何通信技术。为了执行图形操作,GPU 12可实施图形处理管道。图形处理管道包含执行如由执行于GPU 12上的软件或固件定义的功能,和通过经硬接线以执行极特定功能的固定功能单元执行功能。执行于GPU 12上的软件或固件可被称为着色器程序(或仅仅着色器),且着色器程序可在GPU 12的一或多个着色器核心上执行。着色器程序为用户提供功能灵活性,由于用户可设计着色器程序以任何可设想方式执行所要任务。然而,固定功能单元针对固定功能单元执行任务本文档来自技高网...
<a href="http://www.xjishu.com/zhuanli/55/201580021777.html" title="用于在多线程处理器上执行发散操作的方法和设备原文来自X技术">用于在多线程处理器上执行发散操作的方法和设备</a>

【技术保护点】
一种在多线程处理器上执行发散操作的方法,所述方法包括:确定来自多个线程的一或多个活动线程;从所述一或多个活动线程选择一个活动线程;以及在所述选择的活动线程上执行发散操作。

【技术特征摘要】
【国外来华专利技术】2014.05.02 US 14/268,2151.一种在多线程处理器上执行发散操作的方法,所述方法包括:确定来自多个线程的一或多个活动线程;从所述一或多个活动线程选择一个活动线程;以及在所述选择的活动线程上执行发散操作。2.根据权利要求1所述的方法,其中所述多线程处理器为单指令多数据SIMD处理器。3.根据权利要求2所述的方法,其中所述多个线程形成波,其中通过所述SIMD处理器并行地执行所述波。4.根据权利要求1所述的方法,其中在所述选择的活动线程上执行所述发散操作包括在所述选择的活动线程上执行串行化操作。5.根据权利要求1所述的方法,其中执行所述发散操作包括将子例程目标存储在共享寄存器中,所述方法进一步包括:在可访问所述共享寄存器的所述一或多个活动线程上执行存储在所述子例程目标处的代码。6.一种经配置以执行发散操作的设备,所述设备包括:多线程处理器,其包括:控制单元,其经配置以确定来自多个线程的一或多个活动线程且从所述一或多个活动线程选择一个活动线程;以及多个处理元件,其中所述多个处理元件中的与所述选择的活动线程相关联的一个处理元件经配置以执行发散操作。7.根据权利要求6所述的设备,其中所述多线程处理器为单指令多数据SIMD处理器。8.根据权利要求7所述的设备,其中所述多个线程形成波,其中通过所述SIMD处理器并行地执行所述波。9.根据权利要求6所述的设备,其中与所述选择的活动线程相关联的所述处理元件经配置以执行串行化操作。10.根据权利要求6所述的设备,其中所述发散操作将子例程目标存储在共享寄存器中,且其中所述多个处理元件进一步经配置以在所述多个处理元件中的与所述一或多个活动线程相关联且可以访问所述共享寄存器的任何处理元件上执行在所述子例程目标处所存储的代码。11.一种经配...

【专利技术属性】
技术研发人员:安德鲁·埃文·格鲁贝尔陈林杜云阿列克谢·弗拉狄米罗维奇·布尔德
申请(专利权)人:高通股份有限公司
类型:发明
国别省市:美国;US

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

1