一种用于众核处理器的函数处理方法及系统技术方案

技术编号:8452968 阅读:277 留言:0更新日期:2013-03-21 15:29
本发明专利技术公开一种用于众核处理器的函数处理方法及系统。所述方法包括:获取核心函数中需要放置在所述众核处理器中协处理器的局存中的变量;将所述变量封装成一个数据结构类型;声明一个指针变量,所述指针变量的类型与所述数据结构类型相同;将对局存中的变量的访问修改为对所述指针变量的访问。采用本发明专利技术的方法或系统,可以使众核处理器中协处理器的局存能够被不同的核心段函数所重用,进一步提高众核处理器对于函数的处理效率。

【技术实现步骤摘要】

本专利技术涉及集成电路领域,特别是涉及一种用于众核处理器的函数处理方法及系统
技术介绍
随着集成电路技术的高速发展,CPU芯片的性能也越来越强大。其中一种主要用于浮点运算和密集运算的CPU芯片称为众核处理器。众核处理器中具有多个协处理器。在运行某段程序时,众核处理器可以将该段程序分割成多个小程序后并行运行。分割出来的每个小程序可以称为核心段函数。每个协处理器可以运行一段核心段函数,多个协处理器可以同时运行多段核心段函数。这样就可以将一段比较大的程序分割成多个小程序后,并行处理,提高CPU芯片对于大程序的处理效率。众核处理器中的协处理器具有局存。局存具有高速读写能力,但是局存的存储空间较小。在对核心段函数进行处理时,应该尽可能的将核心段函数用到的变量放在局存中运行,这样可以最大程度提高众核处理器的处理效率。但是,现有技术中,由于编译器或编程语言的限制,协处理器在执行函数时,每个核心段函数的局存变量都会一直存储在局存中,固定在局存的某个位置,占用局存空间,这部分空间只能被一个核心段所使用,其它核心段函数无法使用。当变量过多时,局存空间将无法存储所有核心段函数的全部变量,导致众核处理器对于函数的处理效率无法进一步提闻。
技术实现思路
本专利技术的目的是提供一种用于众核处理器的函数处理方法及系统,能够避免核心段函数的变量在函数处理过程中,一直占用局存空间,使局存能够被不同的核心段函数所重用,进一步提高众核处理器对于函数的处理效率。为实现上述目的,本专利技术提供了如下方案一种用于众核处理器的函数处理方法,包括获取核心函数中需要放置在所述众核处理器中协处理器的局存中的变量;将所述变量封装成一个数据结构类型;声明一个指针变量,所述指针变量的类型与所述数据结构类型相同; 将对局存中的变量的访问修改为对所述指针变量的访问。可选的,将对局存中的变量的访问修改为对所述指针变量的访问之后,还包括获取所述局存中的可用的存储空间首地址;控制所述指针变量指向所述存储空间首地址。可选的,所述获取核心函数中需要放置在所述众核处理器中协处理器的局存中的变量,包括获取所述核心函数中的所有变量;确定所述所有变量的大小以及所述局存的可用空间大小;判断所述所有变量的大小是否小于或等于所述局存的可用空间大小;如果是,则将所有变量确定为需要放置在所述众核处理器中协处理器的局存中的变量;否则,根据所述核心函数中对各个变量的访问开销确定需要放置在所述众核处理器中协处理器的局存中的变量。可选的,所述根据所述核心函数中对各个变量的访问次数确定需要放置在所述众核处理器中协处理器的局存中的变量,包括按照访问开销由多到少的顺序,确定需要放置在所述众核处理器中协处理器的局存中的变量,直至已确定的需要放置在所述众核处理器中协处理器的局存中的变量的大小之和达到所述局存的可用存储空间所能存储的最大值。可选的,所述根据所述核心函数中对各个变量的访问开销确定需要放置在所述众核处理器中协处理器的局存中的变量,包括分别判断对于每个变量的访问次数是否达到预设阈值;将访问次数达到所述预设阈值的变量确定为需要放置在所述众核处理器中协处理器的局存中的变量。一种用于众核处理器的函数处理系统,包括变量获取单元,用于获取核心函数中需要放置在所述众核处理器中协处理器的局存中的变量;变量封装单元,用于将所述变量封装成一个数据结构类型;指针变量声明单元,用于声明一个指针变量,所述指针变量的类型与所述数据结构类型相同; 访问类型修改单元,用于将对局存中的变量的访问修改为对所述指针变量的访问。可选的,还包括存储空间首地址获取单元,用于获取所述局存中的可用的存储空间首地址;指针变量控制单元,用于控制所述指针变量指向所述存储空间首地址。可选的,所述变量获取单元,包括全变量获取子单元,用于获取所述核心函数中的所有变量;变量空间确定子单元,用于确定所述所有变量的大小以及所述局存的可用空间大小;第一判断子单元,用于判断所述所有变量的大小是否小于或等于所述局存的可用空间大小;第一变量确定子单元,用于当所述第一判断子单元的判断结果为是时,将所有变量确定为需要放置在所述众核处理器中协处理器的局存中的变量;第二变量确定子单元,用于当所述第一判断子单元的判断结果为否时,根据所述核心函数中对各个变量的开销确定需要放置在所述众核处理器中协处理器的局存中的变量。可选的,所述第二变量确定子单元,包括开销优先变量确定子单元,用于按照开销由多到少的顺序,确定需要放置在所述众核处理器中协处理器的局存中的变量,直至已确定的需要放置在所述众核处理器中协处理器的局存中的变量的大小之和达到所述局存的可用存储空间所能存储的最大值。可选的,所述第二变量确定子单元,包括第二判断子单元,用于分别判断对于每个变量的访问次数是否达到预设阈值;预设阈值优先变量确定子单元,用于将访问次数达到所述预设阈值的变量确定为需要放置在所述众核处理器中协处理器的局存中的变量。根据本专利技术提供的具体实施例,本专利技术公开了以下技术效果通过获取核心函数中需要放置在所述众核处理器中协处理器的局存中的变量,可以将对局存中的变量的访问修改为对放置在局存中的指针变量的访问。由于指针变量在局存中的存在周期短(相对于整型变量等变量在程序运行过程中一直占据局存空间而言),每次利用局存中存储的指针变量执行完相应的运算步骤后,该指针变量就会被释放,而不会在程序(该程序可以包括多个核心函数)运行期间一直占用局存中的存储空间,所以,采用专利技术的用于众核处理器的函数处理方法或系统,可以使众核处理器的局存能够被不同的核心段函数所重用,进一步提高众核处理器对于函数的处理效率。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图I为本专利技术的用于众核处理器的函数处理方法实施例I的流程图2为本专利技术的用于众核处理器的函数处理方法实施例2的流程图3为本专利技术的用于众核处理器的函数处理系统实施例I的结构图4为本专利技术的用于众核处理器的函数处理系统实施例2的流程图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。为使本专利技术的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本专利技术作进一步详细的说明。图I为本专利技术的用于众核处理器的函数处理方法实施例I的流程图。如图I所示, 该方法包括步骤101 :获取核心函数中需要放置在所述众核处理器中协处理器的局存中的变量;核心函数中的变量可以存储在主存中(相当于内存)也可以存储在局存中。由于协处理器在访问主存和局存的速度上有很大的差别,因此需要尽可能多地将核心函数中的变量存储在局存中。可以根据用户的编译指示和预定的优化策略决定将核心函数中的哪些变量存储在局存中。对于每个变量来说,可以考虑在执行某个核心函数的过程中,对于该变量的开销。所谓开销是指读取该变量所本文档来自技高网...

【技术保护点】
一种用于众核处理器的函数处理方法,其特征在于,包括:获取核心函数中需要放置在所述众核处理器中协处理器的局存中的变量;将所述变量封装成一个数据结构类型;声明一个指针变量,所述指针变量的类型与所述数据结构类型相同;将对局存中的变量的访问修改为对所述指针变量的访问。

【技术特征摘要】

【专利技术属性】
技术研发人员:金星尤洪涛姜小成孙俊王淼张立博毛智辉
申请(专利权)人:无锡江南计算技术研究所
类型:发明
国别省市:

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

1