运算控制装置、运算控制方法、存储有程序的非瞬时计算机可读介质以及OpenCL设备制造方法及图纸

技术编号:11861851 阅读:107 留言:0更新日期:2015-08-12 11:48
本发明专利技术涉及运算控制装置、运算控制方法、存储有程序的非瞬时计算机可读介质以及OPENCL设备。当由运算单元执行彼此相关的第一内核和第二内核时,如果第一内核的连续写入块的分配属性和第二内核的对应于连续写入块的连续读取块的分配属性相同,则场景确定单元以流水线通过使用连续写入块执行第一内核和第二内核,以便通过专用存储器或局部存储器执行第二内核而不将其传送给全局存储器。此时,场景确定单元按逻辑地将第二内核的连续读取块的裕度属性和依赖性属性分别加到第一内核的每个读取块的为读取块设置的裕度属性和依赖性属性。

【技术实现步骤摘要】
【专利说明】运算控制装置、运算控制方法、存储有程序的非瞬时计算机可读介质以及OpenCL设备相关申请的交叉引用本申请基于并且要求于2014年2月10日提交的日本专利申请N0.2014-23044的优先权利益,其公开内容通过引用整体被包含在此。
本专利技术涉及一种并行处理器,更具体涉及一种OpenCL设备的运算控制技术。
技术介绍
近来,由于防止处理器过热的需求,通过增加执行并行处理的处理器核(下文简称为“核”)的数量而不是增加处理器的工作频率来改进性能的趋势已经变得很显著。具有多个核的处理器被称为多核处理器,具有大量核的多核处理器尤其被称为众核处理器(many-core processor) ο在此说明书中,多核处理器和众核处理器并不特别彼此区分,包括执行并行处理的多个核的处理器通常被称为“并行处理器”。并行处理器用在各种领域作为加速器。但是,因为各种类型的加速器是各种制造商制造的且处于各种领域并且开发了用于加速器的进一步的各种语言和框架,在加速器之间共享程序代码较为困难。为了解决这一问题,OpenCL(开放计算语言)被定义为用于并行处理器的标准框架(非专利文献 1:The OpenCL Specicat1n, Ver: 1.0, Document Revis1n:43, KhronosOpenCL Working Group (2009))。在下面描述了 OpenCL 的概述。图17是在上述非专利文献I的图3.1中添加附图标记的图,其示出了典型OpenCL系统的平台模型。如图17中所示,OpenCL系统10包括主机12和一个或多个计算设备(下文中被称为“OpenCL设备” )14。OpenCL设备14对应于上述的加速器。每个OpenCL设备14包括一个或多个计算单元(下文中被缩写为“⑶”)16,并且每个⑶16包括一个或多个处理元件(下文中被缩写为“PE”)18。注意:处理元件PE 18对应于上述的核。OpenCL应用由在主机12上运行的程序代码和在作为加速器的OpenCL设备14上运行的程序代码组成。在主机12上运行的程序代码被称为“主机代码”,并且在OpenCL设备14上运行的程序代码被称为“内核”。主机12调用API (应用程序接口)并且指示运算处理。OpenCL设备14执行所指示的运算处理。主机12生成用于管理资源的环境并进一步生成命令队列用于通过OpenCL调停设备操作。“设备操作”包括执行运算处理、操作存储器、获取同步等。在OpenCL中,内核在N(1彡N彡3)维索引空间中执行作为工作项目(其被简称为“项目”)。例如,如果(4, 6)被规定为二维索引空间,总共24(4X6)项目被执行。为了执行一个项目,使用一个PE。相应地,在并行执行的项目的数目和现有PE的数目相同的情况下,内核在四行乘六列的总共24个PE上执行。注意:在现有PE的数目小于并行执行的项目的数目的情况下,项目的并行执行在现有PE上重复。例如,在规定上述(4,6)索引空间的情况下,当只有两行乘三列的总共六个PE时,六个项目的并行执行需要由六个PE重复四次。进一步,在OpenCL中,引入工作组的概念。工作组是在相同⑶16上执行并且彼此相关的项目的组。相同工作组中的各个项目执行相同的内核并且共享下文将描述的CU16的局部存储器。唯一组ID被赋予每个工作组,工作组中唯一的局部ID被赋予每个工作组中的项目。进一步,唯一全局ID也被赋予项目。项目可以被全局ID或组ID与局部ID的组合来标识。OpenCL设备14执行运算处理的方法是以下面的顺序步骤通过调用API来实现的。<步骤1>:从主机12向OpenCL设备14传送用于运算处理的参考数据。<步骤2>:由“内核开始命令”开始在OpenCL设备14上执行内核。<步骤3>:在完成在OpenCL设备14上执行内核之后,从OpenCL设备14的存储器空间向主机12传送运算处理的结果数据。结合图18来描述包括存储器空间的OpenCL设备14的配置。图18是在非专利文献I的图3.3中加入参考符合的图。如较早前所述,OpenCL设备14包括一个或多个⑶16且每个⑶16包括一个或多个PE 18。在上述步骤2中执行内核时,可以在OpenCL设备14中进行对四个不同存储器的访问。这四个存储器是:专用存储器20、局部存储器22、全局存储器32和常数存储器34。首先,结合图19,基于项目和工作组来描述这四个存储器。注意:图19是非专利文献I中的表3.10专用存储器20对应于一个项目且仅用于该项目的执行。为专用存储器20定义的对应于一个项目的变量不能用于另一个项目。局部存储器22对应于一个组且可以由组中的项目共享。这样,使用局部存储器22的例子是分配由组中项目共享的变量给局部存储器22。全局存储器32和常数存储器34可以由全部的组中的全部的项目存取。注意:尽管全局存储器32可以被项目存取用于读和写,常数存储器34仅可以被项目存取用于读。下文中,全局存储器32和常数存储器34被统称为设备存储器30。根据项目和PE 18之间的——对应,上述四个存储器和⑶16和PE 18之间的对应关系如下。专用存储器20与PE 18 一一对应并且仅能够由对应PE 18存取。局部存储器22与⑶16——对应并且能够由对应⑶16中的全部的PE 18存取。设备存储器30能够由全部的⑶16中的全部的PE 18,即OpenCL设备14中的全部的PE,来存取。进一步,取决于OpenCL设备14,存在这样一种情况:进一步提供功能为设备存储器30的高速缓存存储器的高速缓存24。如上所述,不同层级中的多个存储器包括在OpenCL设备14中。这些存储器能够由PE以更高速度存取,因为它们处于更高级别。层级级别以设备存储器30 (最低)、局部存储器22 (中等)和专用存储器20 (最高)的次序提高,来自PE的存取速度在此次序中变得更尚。为了完全带来OpenCL设备14的性能,有必要设计一种机制来在设备存储器30和专用存储器20/局部存储器22之间移动数据,诸如参考在例如移动到高速存储器空间之后频繁使用的数据。在控制方法与OpenCL设备不同的串行处理器的情况下,也执行全局存储器空间与专用存储器空间之间的数据的移动。这结合图20中所示的串行处理器的示例来描述。图20中所示的串行处理器50包括作为处理元件的PE 52、专用存储器54、全局存储器56和高速缓存控制机制58。如其中所示,串行处理器50的存储设备被分为专用存储器54和全局存储器56。专用存储器54是低容量存储器,其物理上为片上,而全局存储器56是高容量存储器,其物理上为片外。尽管在串行处理器50中,存储设备被分为专用存储器54和全局存储器56,由位于专用存储器54和全局存储器56之间的高速缓存控制机制58来自动地进行专用存储器54和全局存储器56之间的数据移动,串行处理器50的用户将其视为一个大存储器空间。换句话说,串行处理器50的用户容易开发用户程序用于PE 52来执行运算处理而不考虑数据怎样在全局存储器56和专用存储器54之间移动。在并行处理器中,特别是如图18中所示包括大量核(PE)作为OpenCL设备14的并行处理器中,存在与核的数目具有相同本文档来自技高网...

【技术保护点】
一种运算控制装置,所述运算控制装置控制OpenCL(开放计算语言)设备的多个处理元件的并行处理,所述OpenCL设备包括所述多个处理元件和对于所述多个处理元件提供的不同层级的多个存储器,所述运算控制装置包括:属性组存储单元,所述属性组存储单元获取并存储为读取块和写入块中的每个所设置的属性组,所述读取块是在所述多个存储器中的最低层级的存储器中存储的一个或多个数据块并且具有用于并行处理的被传送到不同层级的存储器的数据,所述写入块是在所述并行处理后作为对所述一个或多个读取块进行并行处理的结果而从所述不同层级的存储器传送到所述最低层级的存储器的一个或多个数据块;以及场景确定单元,所述场景确定单元基于在所述属性组存储单元中存储的属性组和用于指示所述OpenCL设备的配置的配置参数中的每个来确定所述读取块和写入块中的每个的传送方法,并且执行根据所确定的传送方法来对所述读取块和写入块的传送,以及执行与所述传送相对应的对所述并行处理的控制,其中,所述属性组包括对于确定所述传送方法所需的且不取决于所述OpenCL设备的配置的多个属性,包括:分配属性,所述分配属性用于指示是否将所述数据块分段为多个子块并且将所述子块进行传送,以及指示当对所述数据块进行分段时的分段方法,裕度属性,所述裕度属性用于指示:当将所述数据块分段成多个子块并且传送所述子块时,与所述子块一起传送的相邻于所述子块的数据的大小,以及依赖性属性,所述依赖性属性用于指示当将所述数据块分段成多个子块并且传送所述子块时所述子块是否具有与其它相邻子块的依赖性,并且指示当存在所述依赖性时的全部的依赖方向,基于这样的假设来设置所述写入块的属性组,所述假设是指:所述写入块已经存在于所述不同层级的存储器中且传送到所述最低层级的存储器,当在所述OpenCL设备中接连地执行第一内核和第二内核、并且对应于所述第一内核的并行处理的写入块包括被用作对应于所述第二内核的并行处理的读取块的连续写入块、并且针对所述第一内核所设置的所述连续写入块的所述分配属性与针对所述第二内核所设置的对应于所述连续写入块的读取块的所述分配属性是相同的时,所述场景确定单元通过使用所述连续写入块以经由所述不同层级的存储器来执行所述第二内核而不将所述连续写入块传送到最低层级,来进行以流水线执行所述第一内核和所述第二内核的流水线控制,以及在所述流水线控制中,对于与所述第一内核相对应的读取块中的每个读取块,在针对该读取块所设置的所述裕度属性和所述依赖性属性上,所述场景确定单元分别按逻辑地添加针对所述第二内核所设置的对应于所述连续写入块的读取块的所述裕度属性和所述依赖性属性。...

【技术特征摘要】
...

【专利技术属性】
技术研发人员:京昭伦
申请(专利权)人:瑞萨电子株式会社
类型:发明
国别省市:日本;JP

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

1