法律状态公告日
法律状态信息
法律状态
2022-07-29
公开
发明专利申请公布
技术领域
本发明属于计算机技术领域,特别涉及基于缓存失效行为的预取距离自适应调整方法及装置。
背景技术
随着多核处理器技术的发展,处理器运算速度和存储器访问速度之间的差距越来越大,高性能计算的存储墙问题也越来越突显。在过去的几十年中,研究学者们已经提出了若干基于多核处理器的线程数据预取方法。然而,由于软件结构的日益复杂,以及线程同步的复杂性和特定性,使得线程预取成为一个非常具有挑战性的问题。同时,线程预取的性能受许多因素的影响,包括代码分片依据、线程触发机制、并行程序的访存特性等等,理想的线程预取机制应能处理这些变化因素对预取性能的影响,因此应该适应各种因素的变化。这些变化因素的客观存在使得对于线程预取的研究仍有许多问题未能得到良好的解决,已有方法存在着诸多局限性,在实际应用中达不到理想的效果,远不能满足当前巨大的应用需求。
线程预取策略中,预取距离的大小直接决定了线程预取的有效性。一方面,为了让线程预取数据在被使用前到达以便完全隐藏该数据的Cache(缓存)失效延迟,预取距离应该足够大;另一方面,为了避免线程预取数据到达的太早造成Cache污染,预取距离又不能过大。对于非规则数据访存模式,访存操作没有固定规律难以预测,而且数据访存之间互相依赖,难以实现对预取距离的有效控制。传统的帮助线程数据预取方法本质上都是通过线程间同步机制实现对预取距离的调整,由于预取数据间的相互依赖,预取距离难以增加到足够大使预取数据充分提前到达。因此,传统的帮助线程数据预取中,即使数据预取的准确率高达100%,由于不能在恰当的时机发出预取请求,也达不到有效隐藏访存延迟的目的。
发明内容
基于此,有必要针对上述技术问题,提供一种基于缓存失效行为的预取距离自适应调整方法及装置,以解决传统的帮助线程数据预取中,由于不能在恰当的时机发出预取请求,导致不能有效隐藏访存延迟的问题。
第一方面,本发明提供一种基于缓存失效行为的预取距离自适应调整方法,该基于缓存失效行为的预取距离自适应调整方法包括以下步骤:
获取帮助线程的缓存失效率和主线程缓存失效率,根据所述帮助线程的缓存失效率和所述主线程的缓存失效率得到缓存失效率比,所述缓存失效率比为所述帮助线程的失效率与所述主线程失效率的比值;
获取预取对象平衡选取比率,所述预取对象平衡选取比率为帮助线程预取时访问的非规则数据量和主线程访问的非规则数据量的比值;
将所述缓存失效率比和所述预取对象平衡选取比率进行比较,根据比较结果调节所述帮助线程的预取距离。
第二方面,本发明提供一种基于缓存失效行为的预取距离自适应调整装置,该基于缓存失效行为的预取距离自适应调整装置包括:
缓存失效率比计算模块,用于获取帮助线程的缓存失效率和主线程缓存失效率,根据所述帮助线程的缓存失效率和所述主线程的缓存失效率得到缓存失效率比,所述缓存失效率比为所述帮助线程的失效率与所述主线程失效率的比值;
预取对象平衡选取比率获取模块,用于获取预取对象平衡选取比率,所述预取对象平衡选取比率为帮助线程预取时访问的非规则数据量和主线程访问的非规则数据量的比值;
预取距离调节模块,用于将所述缓存失效率比和所述预取对象平衡选取比率进行比较,根据比较结果调节所述帮助线程的预取距离。
本发明与现有技术相比存在的有益效果是:本发明通过选择非循环依赖数据作为预取对象,解除帮助线程和主线程的被动依赖关系;利用帮助线程和主线程缓存失效行为信息,考虑到线程预取的时效性,计算帮助线程与主线程的缓存失效率之比,根据比值和预取率的比较结果调整预取距离,从而为帮助线程预取设定最优预取距离,解决了传统的帮助线程数据预取中,由于不能在恰当的时机发出预取请求,导致不能有效隐藏访存延迟的问题。
优选的,上述方法和装置中,所述将所述缓存失效率比和所述预取对象平衡选取比率进行比较,根据比较结果调节所述帮助线程的预取距离,包括:
将所述缓存失效率比与所述预取对象平衡选取比率的差值的绝对值记为判定值;
若所述判定值不大于预设差值,则不对所述帮助线程的预取距离进行调节;
若所述判定值大于预设差值,则对所述帮助线程的预取距离进行调节,直至调节后的判定值不大于预设差值。
优选的,上述方法和装置中,所述若所述判定值大于预设差值,则对所述帮助线程的预取距离进行调节,包括:
若所述判定值大于预设差值,且所述缓存失效率比大于所述预取对象平衡选取比率,则减小所述帮助线程的预取距离;
若所述判定值大于预设差值,且所述缓存失效率比小于所述预取对象平衡选取比率,则增大所述帮助线程的预取距离。
优选的,上述方法和装置中,当所述判定值大于预设差值,且所述缓存失效率比大于所述预取对象平衡选取比率时,减小所述帮助线程的预取距离的幅度与所述判定值成正相关关系;当所述判定值大于预设差值,且所述缓存失效率比小于所述预取对象平衡选取比率时,增大所述帮助线程的预取距离的幅度与所述判定值成正相关关系。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的一种基于缓存失效行为的预取距离自适应调整方法的流程示意图;
图2是本发明提供的一种基于缓存失效行为的预取距离自适应调整策略示意图;
图3是本发明提供的一种基于缓存失效行为的预取距离自适应调整装置的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。为了说明本发明的技术方案,下面通过具体实施例来进行说明。
基于缓存失效行为的预取距离自适应调整方法实施例:
参见图1,是本发明提供的基于缓存失效行为的预取距离自适应调整方法的流程示意图,该基于缓存失效行为的预取距离自适应调整方法包括以下步骤:
步骤1,获取帮助线程的缓存失效率和主线程缓存失效率,根据所述帮助线程的缓存失效率和所述主线程的缓存失效率得到缓存失效率比,所述缓存失效率比为所述帮助线程的失效率与所述主线程失效率的比值。
本实施例在帮助线程预取程序启动后,首先读取帮助线程的缓存失效率H
R
步骤2,获取预取对象平衡选取比率,所述预取对象平衡选取比率为帮助线程预取时访问的非规则数据量和主线程访问的非规则数据量的比值。
本实施例中,预取对象平衡选取比率Rp为帮助线程预取时访问的非规则数据量和主线程访问的非规则数据量的比值,Rp为预设值,其是在帮助线程预取启动前,通过剖析程序执行时的非规则数据访问延迟和计算延迟情况设置的固定值。预取对象平衡选取比率Rp设定的目的是使帮助线程与主线程共同分担主程序的总执行任务量,并发执行处于平衡状态。
步骤3,将所述缓存失效率比和所述预取对象平衡选取比率进行比较,根据比较结果调节所述帮助线程的预取距离。
本实施例中,将所述缓存失效率比和所述预取对象平衡选取比率进行比较,若缓存失效率比R
若缓存失效率比R
若缓存失效率比R
参见图2,为本发明的基于缓存失效行为的预取距离自适应调整策略流程图,在对帮助线程的预取距离P_distance进行调节后,重复上述计算缓存失效率比R
对于上述调整策略,程序实现如下:
Begin
读取帮助线程和主线程的缓存失效率Hmiss和Mmiss;
举例说明如下:
在帮助线程预取启动前,通过剖析程序执行时的非规则数据访问延迟和计算延迟情况设置Rp的值为1.0;另外,设置预设差值为0.1,设置帮助线程的初始预取距离P_distance的值为5;帮助线程预取启动,启动后得到帮助线程的缓存失效率Hmiss为30%,主线程的缓存失效率Mmiss为70%,缓存失效率比R
本实施例通过作差的方式来判断缓存失效率比和预取对象平衡选取比率的相对大小;作为其他实施方式,也可以按照其他方式判断缓存失效率比和预取对象平衡选取比率的相对大小,比如通过相除后与1进行比较的方式。
本实施例为了提高对帮助线程的预取距离调节的效率,在缓存失效率比R
本实施例利用帮助线程和主线程缓存失效行为信息,考虑到线程预取的时效性,计算帮助线程与主线程的缓存失效率之比,根据比值和预取率的比较结果调整预取距离,从而为帮助线程预取设定最优预取距离,解决了传统的帮助线程数据预取中,由于不能在恰当的时机发出预取请求,导致不能有效隐藏访存延迟的问题。
基于缓存失效行为的预取距离自适应调整装置实施例:
对于上述基于缓存失效行为的预取距离自适应调整方法实施例的基于缓存失效行为的预取距离自适应调整方法,图3示出了基于缓存失效行为的预取距离自适应调整装置的结构示意图,该基于缓存失效行为的预取距离自适应调整装置包括:
缓存失效率比计算模块31,用于获取帮助线程的缓存失效率和主线程缓存失效率,根据所述帮助线程的缓存失效率和所述主线程的缓存失效率得到缓存失效率比,所述缓存失效率比为所述帮助线程的失效率与所述主线程失效率的比值;
预取对象平衡选取比率获取模块32,用于获取预取对象平衡选取比率,所述预取对象平衡选取比率为帮助线程预取时访问的非规则数据量和主线程访问的非规则数据量的比值;
预取距离调节模块33,用于将所述缓存失效率比和所述预取对象平衡选取比率进行比较,根据比较结果调节所述帮助线程的预取距离。
需要说明的是,上述模块之间的信息交互、执行过程等内容,由于与基于缓存失效行为的预取距离自适应调整方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见基于缓存失效行为的预取距离自适应调整方法实施例部分,此处不再赘述。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
机译: 基于专用高速缓存集中竞争性的专用预取策略的自适应高速缓存预取,可减少高速缓存污染
机译: 基于竞争专用高速缓存集中的专用预取策略以减少高速缓存污染的自适应高速缓存预取
机译: 基于竞争专用高速缓存集中的专用预取策略以减少高速缓存污染的自适应高速缓存预取