[发明专利]面向SPM存储层次的数据缓存实现方法有效
申请号: | 201910788897.1 | 申请日: | 2019-08-26 |
公开(公告)号: | CN112433965B | 公开(公告)日: | 2022-07-12 |
发明(设计)人: | 方燕飞;文延华;李雁冰;杨小川;王敬宇;何王全 | 申请(专利权)人: | 无锡江南计算技术研究所 |
主分类号: | G06F12/0897 | 分类号: | G06F12/0897;G06F12/0871 |
代理公司: | 苏州创元专利商标事务所有限公司 32103 | 代理人: | 王健 |
地址: | 214083 江苏*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 面向 spm 存储 层次 数据 缓存 实现 方法 | ||
本发明公开一种面向SPM存储层次的数据缓存实现方法,包括以下步骤:S1、建立数据缓存的编程描述;S2、编译器分析编译指示,确定循环分块参数LoopBlockKey;S3、编译器根据S2中获得的循环分块参数,计算每一个循环块的计算、访存开销与数据传送开销的比值,得到并行隐藏参数Hkey;S4、根据S3得到的并行隐藏参数,反馈修正,得到最终的循环分块参数;S5、根据循环分块参数和并行隐藏参数,选择循环重构策略进行循环重构。本发明有效提升了编译器的上下文分析精确度和应用的访存效率,且可以做到计算与不同存储层次间的数据传送并行进行,有效利用处理器的各个存储层次,更进一步提升程序性能。
技术领域
本发明涉及一种面向SPM存储层次的数据缓存实现方法,属于计算机技术领域。
背景技术
随着微处理器架构的发展,多核和众核成为微处理器设计的主要方向。受到面积和功耗的限制,众核处理器倾向于将片上SRAM组织成SPM这种软件管理的非cache结构。这种需要软件管理存储层次的特点给用户编程带来了很大的挑战,用户在编写应用时,不仅需要进行多级多层次的并行规划,还需要考虑数据在不同存储层次的布局、缓冲和传送。
众核处理器支持多级多层次并行,存储架构复杂,编程困难,为了解决众核处理器的编程问题,学术界和业界都展开了大量深入的研究,提出了多种解决方案。主要包括:1)以OpenCL语言为代表的支持显式异构编程的并行语言。OpenCL提供了丰富的语言扩展,支持多种存储层次上的数据,支持不同存储层次间显式的数据传送。OpenCL丰富的语言支持是编制灵活高效应用的利器,也是制约OpenCL用户的主要因素。作为提供丰富API支持显式并行的语言,OpenCL应用性能的获得主要依靠用户显式说明的数据布局和数据传送,以及用户确定的并行方式。这就要求OpenCL用户不仅需要具备丰富的专业应用知识,而且对众核处理器的体系结构有深入的了解。2)以OpenMP、OpenAcc语言为代表的支持隐式并行的编程语言。使用这一类语言编程,用户不需要进行显示的存储管理,只需要用编译指示指明并行区间和并行方式。这一类应用的性能在很大程度上依赖于编译系统的优化。编译系统编译优化的前提是保证应用的正确性。以此为据,编译系统在上下文无法明确的情况下只能进行保守处理,无法进行激进的性能优化,这势必会影响应用程序的效率。
武汉科技大学于2012年11月申请了专利(CN102890658A,一种嵌入式系统中基于SPM的输入输出缓冲实现方法),主要用于提高嵌入式系统输入输出处理速度和降低输入输出处理过程的存储访问功耗。其特点是在SPM空间中划分出多个输入输出请求区域用作输入输出缓冲,缓冲溢出后,才将数据从SPM空间导入内存空间。该专利利用SPM空间访问延迟小、访问带宽高的特点,通过将内存空间的输入输出缓冲到SPM空间从而提高访存性能。然而,以上专利解决的是输入输出的缓冲处理问题,利用SPM空间提高访存性能,与如何实现循环中数据访问的缓冲以及运算与数据传送的并行,以达到提高访存性能的目的相去甚远。
还有许多科研机构也在面向SPM存储层次的众核处理器编程和编译优化设计方面做了尝试,目前主要的处理方法有两大类,第一类从挖掘机器性能的角度出发,提供详细的API接口,将应用的并行设计和数据的布局、导入导出全部交给用户处理,最大化提高应用性能。这类方法的缺点是对用户要求太高。第二类从减轻用户负担的角度出发,用户只需要进行并行策略的制定,数据的布局和导入导出全部交给编译器自动处理。该类方法的缺点是应用性能严重依赖于编译器的优化设计,在某些编译器无法进行精细优化的情况下,应用性能势必受到很大影响。所以,如何在这两类方法之间进行权衡,寻找一种用户指导编译器进行数据布局和数据导入导出处理的方法,就成为面向SPM存储层次的众核处理器编程和编译优化设计的难题。
发明内容
本发明的目的是提供一种面向SPM存储层次的数据缓存实现方法,该面向SPM存储层次的数据缓存实现方法有效提升了编译器的上下文分析精确度和应用的访存效率,且可以做到计算与不同存储层次间的数据传送并行进行,有效利用处理器的各个存储层次,更进一步提升程序性能。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于无锡江南计算技术研究所,未经无锡江南计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910788897.1/2.html,转载请声明来源钻瓜专利网。