一种异构架构并行编程模型优化系统技术方案

技术编号:39407898 阅读:20 留言:0更新日期:2023-11-19 15:59
本发明专利技术公开一种异构架构并行编程模型优化系统,涉及异构架构并行编程模型优化领域。该异构架构并行编程模型优化系统,采用显式异构编程模型方案,构建异构计算架构,多数异构编程模型针对特定架构,对应大量的编程接口,异构编程模型以显式编程形式实现异构系统优化,采用Host/Device的分工形式,Host运行CPU的控制代码,Device运行加速设备的代码,将复杂的编程接口简化,构建结构化的编程框架,提供编程接口和调度算法,通过硬件模型识别系统中的计算设备,软件模型为编程和任务划分调度提供支持,映射模型实现从任务到设备的映射,从而实现流水线混合并行的优化处理流程,加速GPU之间的流水线混合并行,实现异构架构并行编程模型优化。编程模型优化。编程模型优化。

【技术实现步骤摘要】
一种异构架构并行编程模型优化系统


[0001]本专利技术涉及异构架构并行编程模型优化
,具体为一种异构架构并行编程模型优化系统。

技术介绍

[0002]目前科研工程等领域的应用对计算能力(简称算力)的需求越来越大,计算体系结构创新的内涵有两个方面:其一是规模,即由单核转向多核并行计算,传统的高性能计算研究聚焦在单核性能上,当前则是依靠多核集群,集中分布式算力,通过规模化效应提升算力;其二是架构,如中央处理器(Center Process Unit,CPU)、图像处理器(Graph Process Unit,GPU)和可编程门阵列(Field Program Gate Array,FPGA)等计算器件均有各自擅长的处理领域,按照一定组织方式组成多核异构的系统;每种计算器件有各自计算存储模型,不同计算器件的组合使得系统具有异构性。
[0003]目前,混合两种及两种以上计算器件的多核异构芯片、系统、集群都已经出现,通过组合不同的计算器件,从性能、功耗等方面的需求出发,通过新型计算体系架构将硬件性能发挥到极致,异构计算器件组合可以满足多样本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种异构架构并行编程模型优化系统,其特征在于:该优化系统采用显式异构编程模型方案,构建异构计算架构,多数异构编程模型针对特定架构,例如CPU+GPU的架构,异构系统处理任务划分、调度、通信、同步等问题,对应大量的编程接口,异构编程模型以显式编程形式实现异构系统优化,采用Host/Device的分工形式,Host运行CPU的控制代码,Device运行加速设备的代码,将复杂的编程接口简化,构建结构化的编程框架,提供编程接口和调度算法,将编程框架分为三个部分:硬件模型、软件模型和映射模型,硬件模型识别系统中的计算设备,软件模型为编程和任务划分调度提供支持,映射模型实现从任务到设备的映射,从而实现流水线混合并行的优化处理流程,加速GPU之间的流水线混合并行,减少通信延迟和内存使用频率,同时从编程难度、计算性能、并行规模3个维度出发,对异构架构并行编程模型进行优化。2.根据权利要求1所述的一种异构架构并行编程模型优化系统,其特征在于:所述硬件模型异构计算系统所拥有不同种类的硬件设备,包括CPU、GPU、NPU、DSP或FPGA加速器等,通过识别系统中的计算设备,并对设备的特点、计算能力和互连关系进行建模,而每个硬件设备都依附在一个板卡上,多个板卡构成一个计算节点,每个计算系统可能包括不同层级的计算节点,因此从单个计算设备到系统形成了一个树状的层级结构,命名为设备树。3.根据权利要求2所述的一种异构架构并行编程模型优化系统,其特征在于:所述设备树分为系统、平台、设备三个层次,将同一厂商生产的支持相同编程框架的设备归为一个平台,设备树的最底层为设备,与异构计算系统中的硬件一一对应,对设备树上的每个设备或每组设备进行命名,用户可以通过名字指定设备或设备组来执行任务,从而实现硬件实体到软件对象的一一对应,为调度算法提供设备集合,在编程中体现为编程接口。4.根据权利要求1所述的一种异构架构并行编程模型优化系统,其特征在于:所述软件模型的任务是明确当前的计算任务,任务与任务之间的关系,任务的输入和输出,软件模型提供任务级的结构化并行编程接口,任务级并行编程模型的目的是简化并行编程并且提高多核利用率,任务并行编程模型的基本单位是并行的任务,它提供了任务的划分和同步的编程接口,用户可以通过编程接口把应用程序划分成大量的细粒度任务,任务创建、管理和调度由运行时系统负责,异构计算系统中不同的设备之间通常承担不同的计算任务。5.根据权利要求4所述的一种异构架构并行编程模型优化系统,其特征在于:所述任务级编程模型适用于异构计算系统的并行任务描述,使用结构化的并行编程方法来降低并行程序的复杂性以CoBegin和Future两种并行结构为例;CoBegin的语义为:多个任务并发执行,父任务需要等待所有的子任务执行结束后才能继续执行,并行的子任务之间可以共享读操作;CoBegin可以多层嵌套使用,CoBegin{

}CoEnd包含的部分代码段为一个CoBegin块;Future的语义为父任务创建子任务后继续执行,直到某个节点需要使用子任务的结果时,才对子任务进行查询;若子任务已执行结束,直接获取任务结果,否则将等待至子任务结束,Future{

}包含的部分为一个Future块,通过get()方法获取Future块的执行结果;所述任务级编程模型对PyOpenCL中一些复杂的方法进行封装,同时增加了并行结构,增加了与编程者的交互,更快更便捷地使用PyOpenCL中对OpenCL的调...

【专利技术属性】
技术研发人员:董贇陈昭利艾徐华银源刘凯杰张丽媛杨崇富
申请(专利权)人:广西电网有限责任公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1