一种基于动态搜索的运行时gpu显存级数据复用优化方法

文档序号:6582674阅读:455来源:国知局
专利名称:一种基于动态搜索的运行时gpu显存级数据复用优化方法
技术领域
本发明属于计算机图形处理技术领域,涉及ー种数据复用方法,尤其是一种基于动态搜索的运行时GPU显存级数据复用优化方法。
背景技术
高性能计算发展水平是衡量ー个国家综合国力与国际竞争力的重要指标,是ー个国家科技实カ的综合体现。在航空航天、核武研制、石油勘探、气象预报、生命科学、海嘯与地震自然灾害预测等关键领域有着巨大应用需求。因此,世界各国都竞相将高性能计算作为技术与经济争夺的战略制高点。目前,异构并行系统架构为解决高性能计算提供了契机,它采用“主处理器+协处理器”的分エ机制,主处理器负责逻辑性较强的事务处理,而协处理器则负责数据密集型计算任务。但随着主、协处理器架构的使用,两者之间的跨架构通信不可避免,使得高性能计算问题再次遇到了瓶颈。在CPU-GPU异构并行系统中,CPU是主处理器,GPU是协处理器。在使用CPU-GPU系统处理一个涉及高性能计算的应用问题吋,CPU负责把该问题的数据密集型计算任务加载到GPU上,利用GPU对数据的大規模并行处理加速计算任务的执行,进而缩短整个应用问题处理所需要的时间。但是,这个过程需要CPU将初始化数据传输到GPU,而GPU处理的结果也要传输给CPU,这就是前面所提到的架构之间的通信。由于CPU和GPU通过PC1-E总线互连,其通信延迟高开销大,严重影响了 CPU-GPU解决高性能计算应用问题的性能提升。一种有效的解决方法是不同GPU计算任务之间复用GPU显存数据,即显存级数据复用,这样后执行的GPU计算任务访问复用数据时不需要再次取数据到GPU显存。在当前技术中,可以使用源到源编译器Cetus提供的CPU-GPU通信优化技术或CGCM (CPU-GPU Communication Management)的 Map Promotion 对 CPU-GPU 数据传输进行优化。Cetus在包含GPU计算任务的循环中将复用数据的CPU-GPU数据传输移动到循环夕卜,这样在循环执行时最多执行一次,不需要随循环迭代频繁执行。而CGCM使用源到源编译器,对于优化区域内GPU计算任务复用的数据,在GPU计算任务执行前后分别添加map和releaseタト,并在优化区域开始之前添加map,在其后添加unmap和release,map等的介绍如下所示,其效果相当于将优化区域内对复用数据的CPU-GPU数据传输移动到优化区域外。
权利要求
1.一种基于动态搜索的运行时GPU显存级数据复用优化方法,其特征在于,包括以下步骤1)使用搜索树表示程序执行将已经执行的GPU计算任务的数据访问抽象为搜索树的 access节点;而将程序中循环、循环迭代和GPU计算任务对应为搜索树的loop、iteration 和funExec内部节点;并使用回溯搜索的方法,从与当前数据访问最近的funExec节点出发,逆向回溯检索搜索树;假设访问数据为d,对于所有已经执行的访问数据d的GPU数据访问,在搜索树最多保留一个access节点;2)对于GPU计算任务访问数据d,当在搜索树中检索到访问数据d的access节点时, 则说明数据d在GPU显存有效,GPU复用显存数据,此时若access节点记录的访问方式为读数据d且当前访问方式为写数据d,则将access节点的访问方式更新为写;当未检索到访存数据d的access节点时,说明数据d在GPU显存无效,使用新的access节点表示当前 GPU计算任务的数据访问,并从内存中传输数据d到GPU显存;3)对于CPU计算任务访问数据d,如果为CPU读数据d,此时若在搜索树检索到访问数据d的access节点且该节点表示GPU已经修改数据d,则说明数据d在GPU显存有效,在内存无效,执行显存到内存的数据更新;否则数据d在内存有效,CPU可复用内存数据;如果为 CPU写数据d,则将搜索树中表示GPU访问数据d的access节点删除;4)在数据d的生存期结束时,将表示数据d的access节点从搜索树删除。
2.根据权利要求1所述的基于动态搜索的运行时GPU显存级数据复用优化方法,其特征在于,步骤I)中,回溯搜索的方法为如果上次执行的funExec节点为t。,则首先搜索tc 表示的子树,如果找到则返回;否则,令nt。=!:。,tc=tc. parent,在t。下搜索除nt。外的所有其他子树,如此反复,直到找到或检索完整棵树;对于所有已经执行的GPU数据访问数据d, 在搜索树最多保留一个access节点,具体实现方法为将存在数据复用的access节点移动到当前funExec节点下,表示当前GPU数据访问。
全文摘要
本发明公开了一种基于动态搜索的GPU显存级数据复用优化方法,首先,将已经执行的GPU计算任务的数据访问抽象为动态搜索树的叶子节点,将循环等抽象为搜索树的内部节点;其次,对GPU和CPU计算任务对数据的访问,在运行时逆向回溯检索搜索树发现数据复用,基于数据复用实现对数据的就近访问,有效减少了CPU-GPU数据传输次数。本发明放宽了已有技术对CPU访问GPU显存复用数据的限制,在不需要编译优化的情况下,更有效的利用GPU显存级数据复用消除冗余的CPU-GPU数据传输,进而更大程度地缩短整个应用问题的处理时间。
文档编号G06F17/30GK103020320SQ201310011319
公开日2013年4月3日 申请日期2013年1月11日 优先权日2013年1月11日
发明者董小社, 李亮, 张兴军, 颜康, 张保, 白秀秀, 朱正东 申请人:西安交通大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1