[发明专利]面向SPM存储层次的数据缓存实现方法有效
申请号: | 201910788897.1 | 申请日: | 2019-08-26 |
公开(公告)号: | CN112433965B | 公开(公告)日: | 2022-07-12 |
发明(设计)人: | 方燕飞;文延华;李雁冰;杨小川;王敬宇;何王全 | 申请(专利权)人: | 无锡江南计算技术研究所 |
主分类号: | G06F12/0897 | 分类号: | G06F12/0897;G06F12/0871 |
代理公司: | 苏州创元专利商标事务所有限公司 32103 | 代理人: | 王健 |
地址: | 214083 江苏*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 面向 spm 存储 层次 数据 缓存 实现 方法 | ||
1.一种面向SPM存储层次的数据缓存实现方法,其特征在于:包括以下步骤:
S1、建立数据缓存的编程描述:即在循环前,添加编译指示,用于说明循环中需要进行访存优化的数据集和用于访存优化的SPM缓存区的信息;
S2、编译器分析S1中的编译指示,确定循环分块参数LoopBlockKey:即解析S1中的编译指示,得到SPM缓存区的总大小和需要进行访存优化的数据集,确定每一次批量传送的数据量,根据该数据量确定循环迭代次数,将该循环迭代次数作为循环分块参数LoopBlockKey,确保数据访问均集中在SPM缓冲中;
S3、编译器根据S2中获得的循环分块参数LoopBlockKey,计算每一个循环块的计算、访存开销与数据传送开销的比值,得到并行隐藏参数Hkey,具体步骤如下:
S31、根据循环分块参数LoopBlockKey,获得循环分块后每一个循环块包含的迭代次数It,It=LoopBlockKey;
S32、计算每一次迭代的计算开销Tc;扫描循环中的所有语句,获取每一条语句中每一次计算的计算类型,根据计算类型得到该次计算的计算开销值,将循环中所有计算的计算开销值累加,得到每一次迭代的计算开销Tc;
S33、计算每一次迭代的访存开销Tm;扫描循环中的所有访存操作,根据S2中确定的需要访存优化的数据集判断该次访存操作是否可以进行访存优化,如果可以,则每一次迭代该访存操作的访存开销为访问SPM缓冲空间的开销,否则,该访存操作的访存开销为相应的存储层次的访存开销,将循环中所有访存操作的访存开销累加,得到每一次迭代的访存开销Tm;
S34、计算每一个循环块的数据传送开销Tt;根据S1中的编译指示说明的可以进行访存优化的数据集,获得需要进行数据传送的次数n,通过循环分块参数LoopBlockKey得到第i次数据传送的数据量Tsizei=LoopBlockKey*TypeSizei,其中,TypeSizei是第i次数据传送的数组变量的类型,数据传送开销Tt通过以下算式得到,Tt=∑(Tstart+Tsizei/Tbandwidth),i=1~n,其中,Tstart为数据传送的启动开销,Tbandwidth为数据传送的带宽;
S35、计算每一个循环块的并行隐藏参数Hkey;Hkey=(It*Tc+It*Tm)/Tt;
S4、根据S3计算出的并行隐藏参数Hkey,确定分块循环的最终循环分块参数;如果Hkey大于或等于1,说明计算、访存开销大于或等于数据传送开销,数据在不同存储层次间的传送可以被计算、访存操作隐藏,即在进行本次循环块运算时,并行进行下一个循环块所需数据的批量传送,在这种情况下,SPM缓冲需要分成两份,一份用于本循环块的运算,另一份用于下一个循环块所需数据的预先传送,因此将循环分块参数LoopBlockKey减半;如果Hkey小于1,则不做计算、访存与数据传送的并行,循环分块参数LoopBlockKey保持不变;
S5、根据S4中得到的循环分块参数LoopBlockKey,选择循环重构策略进行循环重构;当S3计算出的并行隐藏参数小于1时,计算、访存开销无法隐藏数据传送开销,采用顺序执行模式的循环重构,即运算和不同存储层次间的数据传送顺序进行,在此过程中,编译器将多个连续的访问主存操作转换为使用SPM和主存之间的数据传送引擎完成的批量数据传送和对SPM缓冲空间的多个访问,进行访存优化;当并行隐藏参数大于或等于1时,采用并行执行模式的循环重构,使用两个缓冲进行数据传送隐藏,两个缓冲交替使用,并进行异步数据传送。
2.根据权利要求1所述的面向SPM存储层次的数据缓存实现方法,其特征在于:如果有多重循环需要优化,则在每一重需要优化的循环前,添加编译指示。
3.根据权利要求1所述的面向SPM存储层次的数据缓存实现方法,其特征在于:所述SPM缓存区的信息包括SPM上的缓存区首地址和缓存区的大小。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于无锡江南计算技术研究所,未经无锡江南计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910788897.1/1.html,转载请声明来源钻瓜专利网。