[发明专利]一种基于CPU-GPU协同的数值计算软件加速方法在审
申请号: | 202210079946.6 | 申请日: | 2022-01-24 |
公开(公告)号: | CN114428643A | 公开(公告)日: | 2022-05-03 |
发明(设计)人: | 刘亚辉;黄聃;陈志广;卢宇彤 | 申请(专利权)人: | 中山大学 |
主分类号: | G06F9/38 | 分类号: | G06F9/38;G06F8/41;G06T1/20 |
代理公司: | 深圳市创富知识产权代理有限公司 44367 | 代理人: | 高冰 |
地址: | 510275 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 cpu gpu 协同 数值 计算 软件 加速 方法 | ||
1.一种基于CPU-GPU协同的数值计算软件加速方法,其特征在于,包括:
将源程序进行基本块划分;
通过代码分析模块预估基本块运行信息;
根据运行信息将基本块划分为GPU模块和CPU模块;
对于GPU模块进行即时编译得到GPU代码;
对于CPU模块进行即时编译或解释执行。
2.如权利要求1所述的一种基于CPU-GPU协同的数值计算软件加速方法,其特征在于,所述将源程序进行基本块划分之前,还包括对源程序进行语法树构建、类型推断。
3.如权利要求1所述的一种基于CPU-GPU协同的数值计算软件加速方法,
其特征在于,所述将源程序进行基本块划分,每个基本块满足:
(1)控制流只能从基本块的入口语句进入,所述入口语句为程序的第一条语句、跳转的目标语句或者条件跳转的下一条语句;
(2)控制流只能从基本快的结束语句退出,所述结束语句为跳转语句、停语句或者下一入口语句的前一条语句。
4.如权利要求1所述的一种基于CPU-GPU协同的数值计算软件加速方法,其特征在于,所述通过代码分析模块预估基本块运行信息,根据运行信息将基本块划分为GPU模块和CPU模块:包括但不限于基本块是否为计算密集型任务,任务规模是否大于阈值,计算任务内存拷贝时间是否小于CPU执行时间;若分析结果符合,则标记此基本块为GPU模块,否则标记为CPU模块。
5.如权利要求1所述的一种基于CPU-GPU协同的数值计算软件加速方法,其特征在于,所述对于GPU模块进行即时编译得到GPU代码,具体为:将GPU模块数据类型转化为OpenCL数据类型,将GPU模块代码转换为OpenCL代码,进一步进行GPU编译得到GPU代码。
6.如权利要求1所述的一种基于CPU-GPU协同的数值计算软件加速方法,其特征在于,所述对于CPU模块进行即时编译或解释执行,具体为:分析CPU模块,若为热点代码,则将热点代码即时编译为机器码;若不为热点代码,则直接进行解释执行。
7.一种基于CPU-GPU协同的数值计算软件加速系统,其特征在于,包括:
源程序划分模块,将源程序进行基本块划分;
运行信息预估模块,通过代码分析模块预估基本块运行信息;
基本块划分模块,根据运行信息将基本块划分为GPU模块和CPU模块;
GPU运行模块,对于GPU模块进行即时编译得到GPU代码;
CPU运行模块,对于CPU模块进行即时编译或解释执行。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中山大学,未经中山大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210079946.6/1.html,转载请声明来源钻瓜专利网。