首页 专利交易 科技果 科技人才 科技服务 国际服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

一种自动细粒度的两级并行翻译方法 

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

申请/专利权人:武汉大学

摘要:本发明提供了一种自动细粒度的两级并行翻译方法,首先通过ANTLR解析源C代码,自动生成EBNF语法描述,并生成相应的词法和语法分析器。然后分析从解析器中提取的循环信息,如果找到流依赖关系,则包含这些依赖关系的循环语句不可并行化。如果找到数据之间的反依赖关系和输出依赖关系,进行依赖关系的消除。如果没有数据依赖关系,则这种循环语句是可并行化的。再将可并行化的循环结构映射到适合CUDA和CPU多线程执行的结构,然后生成相应的CUDA代码和CPU多线程代码,本发明可以节约计算资源,提高计算效率。

主权项:1.一种自动细粒度的两级并行翻译方法,其特征在于,包括:S1:采用预设语法分析器对串行源代码进行解析,生成源代码对应的抽象语法树,并遍历抽象语法树,提取出循环结构;S2:对提取出的循环结构中的数据依赖关系进行分析,判断是否存在数据依赖关系,其中,数据依赖关系包括流依赖关系、反依赖关系和输出依赖关系,如果不存在数据依赖关系,则直接对循环结构进行并行化处理;如果存在数据依赖关系,则根据数据依赖关系的类型进行处理,具体包括:当数据依赖关系为流依赖关系时,则将循环结构标记为无法并行化处理,当数据依赖关系为反依赖关系或者输出依赖关系时,则采用阵列私有化技术对循环结构进行处理,采用阵列私有化技术对循环结构进行处理包括:将与循环结构中循环迭代对应的存储单元进行本地化,并消除因变量重用而引起的反依赖关系和输出依赖关系;S3:将可并行化的循环结构映射到CUDA和CPU多线程执行结构,生成相应的CUDA代码和CPU多线程代码,其中,CPU创建相应数量的线程,一个线程负责GPU调度,其他线程负责执行分配给CPU的并行任务,同时,GPU执行GPU调度中分配的任务;其中,步骤S1包括:S1.1:使用ANTLR工具创建串行源代码的EBNF描述;S1.2:执行词法分析,匹配串行源代码的EBNF描述中的字符,掩盖或过滤不相关的内容,并生成用于语法分析的标记;S1.3:执行语法分析,分析生成的标记,生成源代码对应的抽象语法树;S1.4:对生成的抽象语法树进行遍历,提取出循环结构,其中循环结构包括循环嵌套级别和与循环相关的变量信息,与循环相关的变量信息包括变量名称,变量类型和存储循环位置的行号;在步骤S1.3执行语法分析时,添加规则参数用以实现上下文信息的传递;对提取出的循环结构中的数据依赖关系进行分析,判断是否存在数据依赖关系,包括:如果当前循环结构中一个存储单元在一次迭代中写入,然后在后续迭代中读取,则表示存在该循环结构中存在流依赖关系;如果当前循环结构中在一个迭代中读取一个存储单元,然后在随后的迭代中写入一个存储单元,则表示存在该循环结构中存在反依赖关系;如果当前循环结构中一个存储单元在一次迭代写入,然后在后续迭代中再次写入,则表示存在该循环结构中存在输出依赖关系。

全文数据:

权利要求:

百度查询: 武汉大学 一种自动细粒度的两级并行翻译方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。