一种多阵列粗粒度可重构架构的多层级并行性开发方法技术

技术编号:37447072 阅读:17 留言:0更新日期:2023-05-06 09:19
本发明专利技术公开了一种多阵列粗粒度可重构架构的多层级并行性开发方法,涉及粗粒度可重构架构编译器领域。输入的C++文件经过Polygeist处理成由MLIR中Affine方言和SCF方言组成的中间表达式;任务进行循环级的优化,并使用并行性分析和阵列间映射算法来开发高层次的任务级并行性和数据级并行性,并行信息通过CGRA方言形式进行存储,MLIR的方言会被翻译回带有并行信息的编辑后的C++文件;编辑后的C++文件经过Clang生成低级别的中间表达式,通过阵列内的映射算法开发循环级并行性和指令级并行性;在整合阵列间信息后,最终生成配置文件,完成整个流程。本发明专利技术降低映射复杂度,开发多层次的并行性,有效提升映射性能;扩展性强,可以与不同的阵列内映射方法进行组合和协同工作。不同的阵列内映射方法进行组合和协同工作。不同的阵列内映射方法进行组合和协同工作。

【技术实现步骤摘要】
一种多阵列粗粒度可重构架构的多层级并行性开发方法


[0001]本专利技术涉及粗粒度可重构架构编译器领域,尤其涉及一种多阵列粗粒度可重构架构的多层级并行性开发方法。

技术介绍

[0002]粗粒度可重构架构(coarse

grained reconfigurable architecture,CGRA)是一类有较高能效比和较好灵活性的加速架构,因此,它被广泛应用于计算密集型应用程序,例如图像处理,信号处理、机器学习等。
[0003]随着大数据时代的到来,CGRA的规模也日益增长。而由于对配置速度的需求、互连代价和收益等问题,单阵列CGRA的规模受到限制。而多阵列CGRA将单阵列CGRA通过片上的互联结构进行相连,使得不同的阵列以独立的个体进行运行。图1展示了多阵列CGRA的典型架构,其包含了M
×
N个阵列(processing element array,PEA),每个阵列之间通过片上互联,如片上网络(network on chip)、环状互联等互联方式进行数据交互。
[0004]不同应用程序可本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种多阵列粗粒度可重构架构的多层级并行性开发方法,其特征在于,包括以下步骤:步骤1、编译器输入的C++文件经过Polygeist处理变成由MLIR中Affine方言和SCF方言组成的中间表达式;步骤2、对任务进行循环级的优化,并使用并行性分析和阵列间映射算法来开发高层次的任务级并行性和数据级并行性;步骤3、将并行信息通过CGRA方言形式进行存储,MLIR的方言会被翻译回带有并行信息的编辑后的C++文件;步骤4、编辑后的C++文件经过Clang生成低级别的中间表达式,并通过阵列内的映射算法开发循环级并行性和指令级并行性;在整合阵列间信息后,最终生成配置文件,完成整个流程。2.如权利要求1所述的多阵列粗粒度可重构架构的多层级并行性开发方法,其特征在于,所述步骤2,在循环级优化的过程中,遍历每个任务,并根据每个任务包含算子个数对任务的数据流图大小进行分析;如果数据流图大小小于单个阵列的节点个数,则采用循环展开的方式来增加最内层循环的算子个数以提升利用率。3.如权利要求1所述的多阵列粗粒度可重构架构的多层级并行性开发方法,其特征在于,所述步骤2,对于输入程序中的每一个任务,选择进行并行执行或流水线执行,以及选择不同的分割份数,对每个分割后的子任务进行映射。4.如权利要求1所述的多阵列粗粒度可重构架构的多层级并行性开发方法,其特征在于,所述步骤2,对于所有的任务,计算能够分割成的子任务的份数以及采用并行执行还是流水...

【专利技术属性】
技术研发人员:绳伟光俞嘉力杨伟东蒋剑飞景乃锋王琴毛志刚
申请(专利权)人:上海交通大学
类型:发明
国别省市:

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

1