发明名称 一种基于动态搜索的运行时GPU显存级数据复用优化方法
摘要 本发明公开了一种基于动态搜索的GPU显存级数据复用优化方法,首先,将已经执行的GPU计算任务的数据访问抽象为动态搜索树的叶子节点,将循环等抽象为搜索树的内部节点;其次,对GPU和CPU计算任务对数据的访问,在运行时逆向回溯检索搜索树发现数据复用,基于数据复用实现对数据的就近访问,有效减少了CPU-GPU数据传输次数。本发明放宽了已有技术对CPU访问GPU显存复用数据的限制,在不需要编译优化的情况下,更有效的利用GPU显存级数据复用消除冗余的CPU-GPU数据传输,进而更大程度地缩短整个应用问题的处理时间。
申请公布号 CN103020320B 申请公布日期 2016.01.13
申请号 CN201310011319.X 申请日期 2013.01.11
申请人 西安交通大学 发明人 董小社;李亮;张兴军;颜康;张保;白秀秀;朱正东
分类号 G06F17/30(2006.01)I 主分类号 G06F17/30(2006.01)I
代理机构 西安通大专利代理有限责任公司 61200 代理人 徐文权
主权项 一种基于动态搜索的运行时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节点从搜索树删除。
地址 710049 陕西省西安市咸宁西路28号
您可能感兴趣的专利