【技术实现步骤摘要】
一种基于Linux的片上CPU/GPU流水化计算方法及计算机系统
本专利技术涉及计算机
,具体涉及一种基于Linux的片上CPU/GPU流水化计算方法及计算机系统。
技术介绍
随着大规模集成电路的发展以及移动互联网、人工智能的大量应用,单纯的中央处理器(CentralProcessingUnit,CPU)计算已经很难满足计算需求,异构计算系统应运而生。异构多核架构,即在同一芯片上集成多个CPU和图形处理器(GraphicsProcessingUnit,GPU)作为一种先进体系结构逐渐成为主流。现代的内存系统,主要是依据访存请求的局部性原理降低功耗和提高性能,异构多核架构下的CPU和GPU共享片上主存,所以来自不同内核的内存请求会争夺共享内存资源,相互干扰,单个应用程序的访存请求的局部性逐渐消失,从而严重影响到整体系统性能。现有技术中在CPU/GPU异构混合并行系统进行任务调度的研究一般是采取对各种类型硬件的计算能力或者是任务在各类处理器上的运行时间进行预测,然后进行一次性任务分配。这种方法缺项明显,因此预测可能不够准确,会造成各个计算节点的结束时间不一致,造成有些节点有长尾现象,其他节点可能在最后阶段空闲,没有充分发挥集群的计算能力,任务完成时间没有达到最短。当前在操作系统(OS)中,还没有专门为GPU提供任务调度机制。由于GPU任务需要由CPU任务发起,因此,OS将所有任务统一视为CPU任务调度执行。这种调度方式,无法充分利用CPU-GPU计算中流水的各个组件,由于以共享内存为桥梁的传 ...
【技术保护点】
1.一种基于Linux的片上CPU/GPU流水化计算方法,其特征在于,包括步骤:/nS1,根据预设的任务依赖算法以及任务的执行类型对所述任务进行排序,对排序后的所述任务按照流水线最大利用率进行重排序,其中所述执行类型包括并行计算型任务,以及串行、IO或者逻辑型任务;/nS2,对缓存进行缓存状态查询,在对所述缓存发起写请求任务完成后进行缓存刷新;/nS31,根据GPU计算核心的计算状态以及所述任务的重排序结果,在所述GPU计算核心空闲时,将所述任务中的所述并行计算型任务派发给所述GPU计算核心;/nS32,根据CPU计算核心的计算状态以及所述任务的重排序结果,在所述CPU计算核心空闲时,将所述任务中的所述串行、IO或者逻辑型任务派发给所述CPU计算核心;/nS4,将所述GPU计算核心处理的任务数据和所述CPU计算核心处理的任务数据规约到对应的发起CPU中,由CPU进行后续数据处理。/n
【技术特征摘要】
1.一种基于Linux的片上CPU/GPU流水化计算方法,其特征在于,包括步骤:
S1,根据预设的任务依赖算法以及任务的执行类型对所述任务进行排序,对排序后的所述任务按照流水线最大利用率进行重排序,其中所述执行类型包括并行计算型任务,以及串行、IO或者逻辑型任务;
S2,对缓存进行缓存状态查询,在对所述缓存发起写请求任务完成后进行缓存刷新;
S31,根据GPU计算核心的计算状态以及所述任务的重排序结果,在所述GPU计算核心空闲时,将所述任务中的所述并行计算型任务派发给所述GPU计算核心;
S32,根据CPU计算核心的计算状态以及所述任务的重排序结果,在所述CPU计算核心空闲时,将所述任务中的所述串行、IO或者逻辑型任务派发给所述CPU计算核心;
S4,将所述GPU计算核心处理的任务数据和所述CPU计算核心处理的任务数据规约到对应的发起CPU中,由CPU进行后续数据处理。
2.如权利要求1所述的基于Linux的片上CPU/GPU流水化计算方法,其特征在于,所述步骤S1具体包括:
根据所述预设的任务依赖算法对所述任务绘制任务图,对所述任务图进行拓扑排序;
根据所述任务的所述执行类型,将所述拓扑排序后的所述任务中的所述串行、IO或者逻辑型任务存入CPU任务队列,以及将所述拓扑排序后的所述任务中的所述并行计算型任务存入GPU任务队列;
对排序后的所述CPU任务队列以及所述GPU任务队列按照流水线最大利用率进行重排序。
3.如权利要求2所述的基于Linux的片上CPU/GPU流水化计算方法,其特征在于,所述GPU任务队列中的任务的任务优先级高于所述CPU任务队列中任务的任务优先级;所述GPU任务队列中的任务的发射优先级高于所述CPU任务队列中任务的发射优先级。
4.如权利要求2所述的基于Linux的片上CPU/GPU流水化计算方法,其特征在于,所述步骤S31中包括:
判断所述CPU计算核心中的发射CPU核心是否空闲、判断系统共享内存是否足够且存在空余内存带宽、以及判断所述GPU计算核心中的流处理器是否空闲;
在所述发射CPU核心空闲、所系统共享内存足够且存在空余内存带宽、或者所述GPU计算核心中的流处理器空闲三个条件中至少一个满足时,将所述GPU任务中的所述并行计算型任务通过所述发射CPU核心派发给所述GPU计算核心。
5.如权利要求4所述的基于Linux的片上CPU/GPU流水化计算方法,其特征在于,所述判断所述CPU计算核心中的发射CPU核心是否空闲以及判断所述GPU计算核心中的流处理器是否空闲的步骤,具体包括:
依次查询所述CPU计算核心以及所述GPU计算核心的五级流水信息;
根据所述CPU计算核心的五级流水信息,所述...
【专利技术属性】
技术研发人员:黄一智,刘彦,张在美,谢国琪,李仁发,
申请(专利权)人:湖南大学,
类型:发明
国别省市:湖南;43
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。