【技术实现步骤摘要】
一种基于CPU
‑
GPU协同的数值计算软件加速方法
[0001]本专利技术涉及异构计算
,尤其涉及一种基于CPU
‑
GPU协同的数值计算软件加速方法。
技术介绍
[0002]CPU
‑
GPU协同应用于并行计算任务,协同有两种,其一为CPU负责管理GPU,为GPU提供计算数据并接收计算结果,GPU承担所有的计算任务;其二为CPU管理GPU的同时负责一部分计算任务。
[0003]数值计算软件以数值方式解决线程和非线性问题,使用高级编程语言,编码简单,基于CPU采用解释执行的方式运行。以Octave为例,Octave具有与Matlab基本一致的语法规范,弱类型,但解释执行效率低下。
[0004]为解决数值计算软件解释执行效率低下的问题,Matlab引入即时编译技术。在Matlab中,即时编译器在程序的执行过程中将代码编译优化为本地代码,包括将源代码或字节码转化为机器码,然后直接执行,显著提升性能。与静态编译相比,即时编译可以选择性地编译热点代码,节省不必要 ...
【技术保护点】
【技术特征摘要】
1.一种基于CPU
‑
GPU协同的数值计算软件加速方法,其特征在于,包括:将源程序进行基本块划分;通过代码分析模块预估基本块运行信息;根据运行信息将基本块划分为GPU模块和CPU模块;对于GPU模块进行即时编译得到GPU代码;对于CPU模块进行即时编译或解释执行。2.如权利要求1所述的一种基于CPU
‑
GPU协同的数值计算软件加速方法,其特征在于,所述将源程序进行基本块划分之前,还包括对源程序进行语法树构建、类型推断。3.如权利要求1所述的一种基于CPU
‑
GPU协同的数值计算软件加速方法,其特征在于,所述将源程序进行基本块划分,每个基本块满足:(1)控制流只能从基本块的入口语句进入,所述入口语句为程序的第一条语句、跳转的目标语句或者条件跳转的下一条语句;(2)控制流只能从基本快的结束语句退出,所述结束语句为跳转语句、停语句或者下一入口语句的前一条语句。4.如权利要求1所述的一种基于CPU
‑
GPU协同的数值计算软件加速方法,其特征在于,所述通过代码分析模块预估基本块运行信息,根据运行信息将基本块划分为GPU模块和CPU模块:包括但不限于基本块是否为计算密...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。