[发明专利]一种面向异构平台的复杂指针数据结构自动管理系统有效
申请号: | 202010971038.9 | 申请日: | 2020-09-15 |
公开(公告)号: | CN112083956B | 公开(公告)日: | 2022-12-09 |
发明(设计)人: | 张伟哲;何慧;王法瑞;方滨兴;郝萌;郭浩男 | 申请(专利权)人: | 哈尔滨工业大学 |
主分类号: | G06F9/30 | 分类号: | G06F9/30;G06F8/41 |
代理公司: | 黑龙江立超同创知识产权代理有限责任公司 23217 | 代理人: | 杨立超 |
地址: | 150001 黑龙*** | 国省代码: | 黑龙江;23 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 面向 平台 复杂 指针 数据结构 自动 管理 系统 | ||
1.一种面向异构平台的复杂指针数据结构自动管理系统,其特征在于,所述系统用于实现OpenMPOffloading程序中复杂指针数据结构在异构计算平台上的自动管理并保证数据一致性;
该系统包括以下三个模块:
信息收集模块,该模块有两项功能:1)对源程序进行静态分析以收集程序信息;2)基于收集到的信息对源程序建立抽象表示即串并行控制流图;
该模块的工作过程分为以下两步:1)通过Clang编译器,将C或者C++的源代码生成对应的抽象语法树AST和控制流图CFG,遍历AST和CFG,区分串并行域,并获取程序详细信息;2)根据这些信息生成串并行控制流图;
自动转换模块,主要负责基于串并行控制流图,在源码中插入运行时API,从而完成代码转换;首先根据串并行控制流图中保存的复杂指针变量信息,确定复杂指针数据的类型;之后根据不同类型,在源码中适当位置,插入合适的运行时API,完成代码转换;这样,复杂指针变量所涉及的内存分配、释放以及数据传输操作都由运行时接管,从而可以通过运行时自动管理复杂指针变量,保证CPU和GPU之间的数据一致性;
运行时模块,主要负责基于统一内存实现复杂指针数据类型的以下操作:CPU和GPU上的内存分配和释放操作,以及CPU和GPU之间的自动数据传输操作;运行时模块由UMMaper类和allocator类组成,UMMaper类和allocator类以API接口的形式向外部提供内存分配和释放的接口。
2.根据权利要求1所述的一种面向异构平台的复杂指针数据结构自动管理系统,其特征在于,所述信息收集模块的信息收集功能的实现过程为:
首先使用Clang编译器对目标程序进行词法分析和语义分析,并生成抽象语法树AST和控制流图CFG;
之后对AST和CFG进行下述三种静态分析,获得函数调用关系信息、变量相关信息、串/并行域相关信息,为之后的串并行控制流图建立和代码转换提供信息支持;
分析一,函数调用关系分析:对于一个AST,执行以下两步工作:
1)递归遍历AST上的每个节点;
2)如果当前节点是函数定义节点,则保存该函数名和该函数调用的子函数信息;
分析二,变量信息分析,对于一个AST,执行以下三步工作:
1)递归遍历AST上的每个节点;
2)如果当前节点涉及变量定义或引用,则保存变量定义信息、变量引用信息、变量作用域信息;
3)如果当前节点涉及内存分配或释放,则保存内存分配信息、内存释放信息;
分析三,串并行域分析:对于一个CFG,执行以下三步工作:
1)递归遍历CFG上的每个节点,保存节点间关系信息;
2)如果当前节点在OpenMP#pragma并行指导语句的作用域内,则将当前节点标记为并行节点,并保存其类型信息和范围信息;
3)如果当前节点不在OpenMP#pragma并行指导语句的作用域内,则将当前节点标记为串行节点,并保存其类型信息和范围信息;
通过上述三种静态分析,可以获得以下信息:函数调用关系信息、变量定义信息、变量引用信息、变量作用域信息、内存分配信息、内存释放信息、串并行节点类型信息、串并行节点范围信息、节点间关系信息;这些信息将对串并行控制流图建立提供支持。
3.根据权利要求1或2所述的一种面向异构平台的复杂指针数据结构自动管理系统,其特征在于,所述信息收集模块中的串并行控制流图定义如下:
定义串并行控制流图由串行节点、并行节点以及节点之间的有向边组成;其中,串行节点表示一段OpenMP#pragma并行指导语句作用域外的、内部无分支的、串行执行的代码片段;串行节点对应的代码片段在CPU上执行,串行节点也记作SEQ节点;
并行节点表示一段在OpenMP#pragma并行指导语句作用域内的,并行执行的代码片段;并行节点对应的代码片段被卸载到GPU上执行,并行节点也记作OMP节点;
串行节点和并行节点中保存有函数调用信息和变量相关信息;
节点之间的有向边表示节点对应的代码片段执行的先后关系。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于哈尔滨工业大学,未经哈尔滨工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010971038.9/1.html,转载请声明来源钻瓜专利网。