具有横跨多个处理器的数据并行线程之映射处理逻辑制造技术

技术编号:7569855 阅读:192 留言:0更新日期:2012-07-15 03:16
一种用以在处理核心上执行处理逻辑的复数资料并行线程的方法,包含将该复数资料并行线程群集成一个或更多工作群组,使来自该一个或更多工作群组的第一个工作群组关联于在该处理器核心上的操作系统线程,以及将来自该第一工作群组的线程配置成该操作系统线程内的使用者层级线程。在一范例中,一种方法使先前配置成用于GPU的GPU核函数能够在例如多核心CPU的CPU上执行。以此方法将大量资料并行线程映射至CPU以减少实例化在CPU上的耗成本的操作系统线程的数目,且达成有效的除错。

【技术实现步骤摘要】
【国外来华专利技术】
本揭示专利技术系一般地关于计算机处理器以及资料并行线程。
技术介绍
计算机与其它此种数据处理装置系具有至少一个通常称为控制处理单元(CPU) 的控制处理器。此种计算机与处理装置亦可具有其它用于各种型态的专用处理的处理器, 例如图形处理单元(GPU)。举例而言,GPU系设计成特别适用于图型处理。GPU—般包括理想地适用于执行在平行资料流上相同的指令的多重处理组件,例如资料平行处理。一般而言,CPU作为主机或控制处理器而使用,且将例如图形处理的专用功能交给例如GPU的其它处理器。由于已有多核心CPU可供使用(其中各个CPU具有多重处理核心),在CPU中可具有亦可用于专门功能之实质的处理能力。多核心CPU或GPU的一个或更多计算核心可以是相同芯片(例如AMD FusionTM)之一部分或是在不同的芯片中(例如具有NVIDIA GPU 的Intel XeonTM)。近来,具有CPU与GPU两者特性之混合核心(例如CellSPETM, Intel LarrabeeTM)已普遍的提倡于通用GPU(GPGPU)类型的运算。该GPGPU类型运算提倡使用 CPU主要地执行控制编码并且卸载效能关键性的数据平行编码(performance critical data-parallel code)至GPU。该GPU系主要地用来作为加速器。该多核心CPU与GPGPU 计算模型之组合包含作为加速目标的CPU核心与GPU核心两者。在很多方面,许多多核心 CPU的核心具有可比得上GPU的效能。举例而言,许多CPU核心的每秒浮点运算(floating point operations per second, FLOPS)现在系比得上一些GPU核心的每秒浮点运算。已开发了用于具有CPU与GPU的异质计算平台的数个框架(framework)。这些框架包含Manford University所开发的BrookGPU、NVIDIA所开发的CUDA,以及被称作 Khronos Group的工业集团所开发的OpenCL。OpenCL框架提供了一类似C的开发环境,使用者可以使用该环境创造用于GPU的应用程序。举例而言,OpenCL让使用者能够指定卸载一些计算(例如数据并行计算)至GPU的指令。OpenCL亦提供了编译器与执行环境(runtime environment),在其中,可以在异质计算系统内编译与执行编码。因此,需要使CPU能力能够有效地使用于一般在GPU上处理的功能的执行的方法和系统。
技术实现思路
本专利技术揭露用以在处理器核心上执行处理逻辑的复数资料并行线程的系统与方法。该用以在处理器核心上执行处理逻辑的复数资料并行线程的方法包含将该复数资料并行线程群集成一个或更多工作群组,使来自该一个或更多工作群组的第一个工作群组关联于在该处理器核心上的操作系统线程,以及将来自该第一工作群组的线程配置成该操作系统线程内的使用者层级线程。该处理逻辑可包含先前配置成在GPU上执行的GPU核函数。 该处理核心可包含CPU核心,例如多核心CPU的处理核心。另一种实施例系用以执行GPU核函数的方法,其包含加载该GPU核函数至主机处理器,形成一个或更多工作群组(其中,各工作群组包括复数该资料并行线程),以及使该工作群组关联于耦合至该主机处理器的一个或更多处理核心的操作系统线程。各该工作群组可关联于一个或更多操作系统线程,且各个操作系统线程系配置成仅在一个处理核心上执行。该方法亦可包含将各个该工作群组的资料并行线程配置成各自关联的操作系统线程内的使用者层级线程的步骤。另一种实施例系用于在处理核心上执行处理逻辑的复数资料并行线程的系统。该系统包含包含该处理核心的至少一个处理器、耦合至该处理核心的至少一个内存与GPU 核函数排程器。该GPU核函数排程器系被配置成将该复数资料并行线程群集成一个或更多工作群组,使来自于该一个或更多工作群组的第一工作群组关联于在该处理核心上的操作系统线程,以及将来自于该第一工作群组的线程执行成在该操作系统线程内的使用者层级线程。另一种实施例系计算机程序产品包括纪录有计算机程序逻辑的计算机可读取媒体以使至少一处理器将复数资料并行线程群集成一个或更多工作群组,使来自于该一个或更多工作群组的第一工作群组关联于在至少一个处理核心上的操作系统线程,以及将来自于该第一工作群组的线程执行成在该操作系统线程内的使用者层级线程。本专利技术的进一步实施例、特征及优势,连带本专利技术的各种实施例的结构和运作,系在以下参考附加图标作详细地描述。附图说明合并至且构成本说明书的一部份的附加图标系例示本专利技术之实施例,连同前述
技术实现思路
提供的一般叙述以及下列具体实施方式提供的详细说明,以协助解释本揭示专利技术的原理,于该图标中第1图显示根据本揭示专利技术的实施例的异质计算系统。第2图显示根据本揭示专利技术的实施例的GPU核函数排程器。第3图系根据本揭示专利技术的实施例的在异质计算系统上用于执行编码的程序。第4图系关于本揭示专利技术的例示内存布局的描绘。第5图系关于本揭示专利技术的在异质计算系统上用于排程工作项的程序。第6图系关于本揭示专利技术的线程排程的例示描绘。具体实施例方式本专利技术的实施例可藉由让在CPU或GPU处理器上相同或相似的编码基底的使用以及促进这些编码基底的除错可行而产生实质上的优点。虽然本专利技术于此处系以用于特定应用的例示实施例来描述,应该了解到本专利技术并不以此为限。所属领域的技术人员接收本专利技术之教示将意识到在本叙述之范围内及本专利技术会有显著功用的其它领域中的其它修正、应用和实施例。本专利技术的实施例可使用于任何计算机系统、计算装置、娱乐系统、媒体系统、游戏系统、通讯装置、个人数字助理或任何使用一个或更多处理器的系统。本专利技术系特别有益于包括异质计算系统的系统。于此处使用的术语「异质计算系统(heterogeneous computingsystem)」系为有多种处理器可供使用的计算系统。本专利技术的实施例能够使相同的编码基底在不同的处理器(例如CPU和GPU)上被执行。本专利技术的实施例例如在具有多核心CPU及/或GPU的处理系统中可特别有利,因为对于一种类型处理器所开发的编码可以微量的或无需额外的努力而配置在另一种类型的处理器上。举例而言,利用本专利技术的实施例,开发来用于在GPU上执行的编码,亦被称为GPU 核函数,可以被配置成在CPU上执行。又,本专利技术能够以有助于除错线程的方式将典型地包括大量资料并行线程的GPU 核函数配置于CPU及其它处理器上。异质计算系统依据本专利技术的一实施例作为范例的异质计算系统100系显示在第1图中。异质计算系统100可包含一个或更多CPU,例如CPU 101,以及一个或更多GPU,例如GPU 102。异质计算系统100复可包含至少一系统内存103、至少一持续内存104、至少一系统总线105、 至少一输入/输出装置106、GPU核函数排程器109以及除错器108。CPU 101可包含任何商业上可得的控制处理器或客制化的控制处理器。CPU 101 系例如执行用以控制异质计算系统100的操作的控制逻辑。CPU 101系可为多核心CPU,例如具有二个CPU核心141和142的多核心CPU。CPU 101除任何控制电路外,可包含CPU高速缓存,例如CPU核心141和142各自的高速缓存1本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:L·莫里切特B·加斯特J·伽马拉杜
申请(专利权)人:先进微装置公司
类型:发明
国别省市:

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

1
相关领域技术