System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 动态可重构流水线架构的全代码段无死锁编译方法及系统技术方案_技高网

动态可重构流水线架构的全代码段无死锁编译方法及系统技术方案

技术编号:41283837 阅读:4 留言:0更新日期:2024-05-11 09:33
本发明专利技术公开了一种动态可重构流水线架构的全代码段无死锁编译方法及系统,该方法包括:对目标代码进行前端编译,生成软件中间表达;将硬件阵列抽象为硬件中间表达;基于软件中间表达和硬件中间表达,采用三段式模型,对动态可重构流水线架构的编译流程进行第一阶段死锁分析,获得执行时间差,并生成算子路由与排布结果;再进行第二阶段死锁静态判断,生成每个处理单元的配置信息;进行配置信息翻译后运行每个处理单元,在运行时动态获得数据时间差;对动态可重构流水线架构的编译流程进行第二阶段死锁动态判断,若第二阶段死锁动态判断结果为存在死锁,为处理单元动态分配额外寄存器。本发明专利技术可以同时兼顾高数据吞吐率和高编译成功率。

【技术实现步骤摘要】

本专利技术涉及人工智能,尤其涉及一种动态可重构流水线架构的全代码段无死锁编译方法及系统


技术介绍

1、本部分旨在为权利要求书中陈述的本专利技术实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。

2、随着社会的不断发展,如人工智能、云计算、生物信息、大模型计算等新兴应用对于集成电路芯片的性能需求在不断提升,这些应用不仅数据量庞大,而且复杂程度高。但由于芯片制程逐渐靠近物理极限,制造技术的提升已跟不上摩尔定律的预测,登纳德定律预测的能量效率提升则已经彻底失效,芯片性能的提升越来越依赖于芯片架构设计与计算资源调度的优化。以现场可编程逻辑门阵列(fpga)、粗粒度可重构处理架构(cgra)为代表的可重构芯片提供了潜在的解决方案,相比于中央处理器(cpu)、图形处理器(gpu)等通用芯片,其资源可重构的特性赋予了其对于不同应用的高适应性,同时其阵列化的计算与路由资源也保证了良好的并行计算能力。但该领域缺乏系统性的高效编译流程,使得可重构芯片的潜在计算能力没有得到充分利用,尤其是在面对如今控制流较为复杂的应用。虽然可以利用对于规则循环体的加速设计,结合运行时重构的硬件特征来实现全代码段的编译,但根据阿姆达尔定律,随着控制流复杂程度的增大,性能的瓶颈将逐渐由计算时间变为加速阵列与协处理器沟通的时间。因此为设计能处理全代码段的可重构数据流架构编译器尤为重要。

3、实现全代码段编译的核心问题之一就是死锁的预防与处理,根据硬件设计的不同会有不同的处理方法。对于静态可重构数据流架构(rda),其特征为单个处理单元(pe)在运行时只储存单条指令,加速阵列不支持运行时重构,所以可以通过分块后部分激活的方式来处理全代码段编译带来的死锁问题,但该类架构的硬件资源利用率与面积效率较低;对于动态可重构数据流架构(dda),其pe支持动态切换指令执行顺序,从而使加速阵列获得了支持运行时重构的能力,该能力为其赋予了更广阔的设计空间与性能潜力,但对于死锁的处理则更为精细和复杂。

4、总的来说,动态可重构数据流架构研究对于主流应用有着广阔的应用前景,而针对性设计全代码段无死锁编译流程则是该领域的关键技术。

5、现有全代码段无死锁编译技术可以分为两大类:

6、(1)静态编译的死锁预防技术

7、静态编译的特征是在运行前一次性完成加速阵列的配置信息重构,该技术在处理规则的循环体代码的编译时应用较为广泛,在处理全代码段的编译时往往与静态可重构数据流架构相结合,将目标代码以基本块或类似形式进行分块并层次化分配到硬件单元上,通过部分激活的形式来实现分支、循环等控制流。由于不同基本块的算子没有资源上的争用,整个基本块都是以原子化的形式进行激活,该技术所面对的死锁问题较为简单,在运行前的编译阶段就能够完全处理。例如如今已经商用的sambanova架构、科研领域比较活跃的plasticine架构等rda都采用静态编译的方法,以分块加二级映射的方法来处理全代码段映射。但该类方法的缺点在于忽略了动态可重构的探索空间,从而资源利用率较低,面积效率较低。

8、(2)动态编译的死锁处理技术

9、动态编译的特征是支持加速阵列在运行时重构配置信息,因此常用于支持该特征的dda架构。由于要求在运行时完成编译流程,该技术相比静态编译对于编译时间的要求更高,也因此在规则循环体的编译上以编译结果的性能为代价换取快速编译的能力。而对于有控制流的全代码段编译,静态编译技术用到的分块后资源独占以预防死锁的方法依然适用,但dda对于资源交叉使用的允许也赋予了动态编译更广阔的设计空间,实际采用的死锁预防技术包括回滚和借道路由等。回滚是指发现死锁后整体回退至一定时间前的状态并重新做路由,借道路由是指利用周边路由资源解开死锁位置各数据的循环依赖。这两种技术在noc领域应用较为广泛,并且要求芯片具有感知死锁并针对性处理的能力,这对于芯片设计往往意味着额外负担。

10、综上,目前缺乏一种兼顾高数据吞吐率和高编译成功率的编译方案。


技术实现思路

1、本专利技术实施例提供一种动态可重构流水线架构的全代码段无死锁编译方法,可同时兼顾高数据吞吐率和高编译成功率,该方法包括:

2、对目标代码进行前端编译,生成软件中间表达,所述软件中间表达采用带有控制信息的数据流图;

3、将动态可重构流水线架构的硬件阵列抽象为硬件中间表达,所述硬件中间表达包括计算节点和路由网络;

4、基于软件中间表达和硬件中间表达,采用三段式模型,对动态可重构流水线架构的编译流程进行第一阶段死锁分析,获得执行时间差,并生成算子路由与排布结果,所述算子路由与排布结果呈现路由时间差,所述三段式模型是从执行时间差、路由时间差和数据时间差来分析带有控制信息的数据流图的两条边在共享资源时的同步数据的时间差,再帮助判断动态可重构流水线架构的编译流程是否存在死锁;

5、采用三段式模型,根据算子路由与排布结果进行第二阶段死锁静态判断,生成每个处理单元的配置信息;

6、进行配置信息翻译后运行每个处理单元,在运行时动态获得数据时间差;

7、基于运行时动态获得的数据时间差,采用三段式模型,对动态可重构流水线架构的编译流程进行第二阶段死锁动态判断,若第二阶段死锁动态判断结果为存在死锁,为处理单元动态分配额外寄存器以调整处理单元的配置信息。

8、本专利技术实施例还提供一种动态可重构流水线架构的全代码段无死锁编译系统,可同时兼顾高数据吞吐率和高编译成功率,该系统包括:

9、编译模块,用于对目标代码进行前端编译,生成软件中间表达,所述软件中间表达采用带有控制信息的数据流图;将动态可重构流水线架构的硬件阵列抽象为硬件中间表达,所述硬件中间表达包括计算节点和路由网络;

10、第一阶段死锁分析模块,用于基于软件中间表达和硬件中间表达,采用三段式模型,对动态可重构流水线架构的编译流程进行第一阶段死锁分析,获得执行时间差,并生成算子路由与排布结果,所述算子路由与排布结果呈现路由时间差,所述三段式模型是从执行时间差、路由时间差和数据时间差来分析带有控制信息的数据流图的两条边在共享资源时的同步数据的时间差,再帮助判断动态可重构流水线架构的编译流程是否存在死锁;

11、第二阶段死锁静态处理模块,用于采用三段式模型,根据算子路由与排布结果进行第二阶段死锁静态判断,生成每个处理单元的配置信息;

12、第二阶段死锁动态处理模块,用于进行配置信息翻译后运行每个处理单元,在运行时动态获得数据时间差;基于运行时动态获得的数据时间差,采用三段式模型,对动态可重构流水线架构的编译流程进行第二阶段死锁动态判断,若第二阶段死锁动态判断结果为存在死锁,为处理单元动态分配额外寄存器以调整处理单元的配置信息。

13、本专利技术实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述动态可重构流水本文档来自技高网...

【技术保护点】

1.一种动态可重构流水线架构的全代码段无死锁编译方法,其特征在于,包括:

2.如权利要求1所述的方法,其特征在于,基于软件中间表达和硬件中间表达,采用三段式模型,对动态可重构流水线架构的编译流程进行第一阶段死锁分析,获得执行时间差,并生成算子路由与排布,包括:

3.如权利要求2所述的方法,其特征在于,对执行时间差进行约束,获得算子路由与排布结果,包括:

4.如权利要求1所述的方法,其特征在于,采用三段式模型,根据算子路由与排布结果进行第二阶段死锁静态判断,生成每个处理单元的配置信息,包括:

5.如权利要求4所述的方法,其特征在于,在处理单元内寄存器数量不够时,采用缺量寄存器策略,生成每个处理单元的配置信息,包括:

6.如权利要求4所述的方法,其特征在于,若第二阶段死锁静态判断结果为不存在死锁,采用等量寄存器策略,生成每个处理单元的算配置信息,包括:

7.如权利要求4所述的方法,其特征在于,若第二阶段死锁静态判断结果为存在死锁,采用余量寄存器策略,生成每个处理单元的配置信息,包括:

8.一种动态可重构流水线架构的全代码段无死锁编译系统,其特征在于,包括:

9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7任一所述方法。

10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1至7任一所述方法。

11.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现权利要求1至7任一所述方法。

...

【技术特征摘要】

1.一种动态可重构流水线架构的全代码段无死锁编译方法,其特征在于,包括:

2.如权利要求1所述的方法,其特征在于,基于软件中间表达和硬件中间表达,采用三段式模型,对动态可重构流水线架构的编译流程进行第一阶段死锁分析,获得执行时间差,并生成算子路由与排布,包括:

3.如权利要求2所述的方法,其特征在于,对执行时间差进行约束,获得算子路由与排布结果,包括:

4.如权利要求1所述的方法,其特征在于,采用三段式模型,根据算子路由与排布结果进行第二阶段死锁静态判断,生成每个处理单元的配置信息,包括:

5.如权利要求4所述的方法,其特征在于,在处理单元内寄存器数量不够时,采用缺量寄存器策略,生成每个处理单元的配置信息,包括:

6.如权利要求4所述的方法,其特征在于,若第二阶段死锁静态判断结果为不存在死锁,采...

【专利技术属性】
技术研发人员:陈锦溢朱建峰魏少军
申请(专利权)人:北京超弦存储器研究院
类型:发明
国别省市:

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

1