当前位置: 首页 > 专利查询>魏俊专利>正文

一种面向领域专用加速器的快速原型构建方法技术

技术编号:39293923 阅读:12 留言:0更新日期:2023-11-07 11:01
本发明专利技术公开了一种面向领域专用加速器的快速原型构建框架,涉及硬件设计技术领域。输入的Python源码文件经过StableHLO/Torch

【技术实现步骤摘要】
一种面向领域专用加速器的快速原型构建方法


[0001]本专利技术涉及硬件设计
,具体是指一种面向领域专用加速器的快速原型构建方法。

技术介绍

[0002]进入后摩尔时代,通用处理器的性能陷入瓶颈,越来越多的学者开始关注领域专用加速器的设计,在众多硬件平台中,FPGA(Filed Programmable Gate Array)由于其高效的并行计算能力和可编程性受到大多数研究者的青睐,然而,随着片上系统规模的不断扩大,传统寄存器传输级(RTL)的设计方法的弊端凸显,相较于CPU,FPGA编程具有更高的技术门槛。此外,FPGA编程需要结合硬件架构与特性做针对性优化,因此开发周期相对较长,为了提高加速器设计的效率,缩短开发迭代周期,近年来在高层设计抽象中出现了新的设计方法,主要分为三种,分别是基于HLS的设计、基于Matlab的设计以及基于Chisel的设计。
[0003]基于HLS(High

Level Synthesis)的硬件设计的初衷是让用户能直接用高层次语言来描述算法,通过高层次综合工具直接将软件代码转换成硬件描述语言(HDL)。HLS工具大大的降低了硬件设计的门槛,开发者只需要在软件代码中添加一些相应的优化指令,即可通过HLS工具将软件代码转换成相应的硬件代码。
[0004]基于MATLAB的设计能够通过HDL Coder工具将MATLAB算法和模型转换为HDL代码,以实现快速的FPGA和ASIC设计,因其具有语法简单易学习掌握、应用范围广、高可重用性等优势,广泛被算法开发工程师所应用。
[0005]基于Chisel的设计尝试解决传统硬件描述语言抽象层次低的问题,从而保证硬件电路设计的灵活性。基于面向对象的思想,Chisel提供了高层次的抽象,使得硬件设计人员可以更自然地描述他们的设计,而无需直接处理底层细节,同时支持模块化设计,使得硬件模块可以被设计成可重用的组件,可以在多个设计中进行复用,提高设计效率和资源利用率,本质上,基于Chisel的设计就是在用高级语言描述电路,最终也会生成相应的Verilog代码,这与基于高层次综合工具的设计完全不同。
[0006]面向专用领域的设计旨在总结某个特定领域的设计经验,更高效地设计出针对特定领域的硬件,避免重复劳动。HLS技术一定程度上缩短了开发周期,但采用这种方式设计的硬件电路的性能受原始C代码的影响较大,常需要花费大量时间对C代码进行重构,且优化后的电路性能与基于传统硬件语言的设计相比,仍有不小差距;Matlab语法简单易学习掌握,但其仅关注软件层次,没有融合硬件特性,此外,该设计方法受限于Matlab平台和Matlab语言,算子库不支持扩展,无法自定义领域专用的硬件算子,对系统开发不友好;基于Chisel的设计,虽为硬件描述语言提供高层次封装,具有参数化能力、大量基础组件和可复用的IP,但缺乏成熟的算子库,同样需要开发者熟练掌握硬件设计开发流程。
[0007]目前,许多工作开始探索利用高级编程框架来促进领域专用架构的生成。其中,MLIR(Multi

Level Intermediate Representation)凭借其全新的编译策略受到了开发者及研究人员的青睐。具体来讲,MLIR提供了一种可扩展的框架,可以方便的为新的编程语言
和硬件架构定制新的IR,也支持将现有的IR与MLIR集成,广泛应用于编译器的构建和优化,特别是在硬件加速领域。ScaleHLS[1]基于MLIR实现了一种可定制的HLS框架,通过“端到端”的自动优化为Vivado HLS生成带注释的C/C++代码。Hector[2]提出了一种统一的、具有多层次范式的硬件综合方法,可以灵活地描述硬件设计,以最小的代价进行硬件综合。
[0008]虽然这些工作都将高级编程框架与硬件生成器连接起来,但它们都有各自的弊端。ScaleHLS虽有硬件相关的优化,但在更高的抽象级别上生成代码,优化严格依赖于后端HLS工具,在此过程中会丢失大量的语义信息,可扩展性差,无法满足更灵活的算子选择、优化。Hector后端生成Chisel代码使其具有很好的可扩展性,但目前前端输入仅支持具有特定范式表达的IR,不能与MIIR中内置IR集成,缺乏对高级编程语言的支持,同时,其关注硬件综合流程的实现,优化并不完善,生成的硬件电路性能仅与基于HLS的设计方法相当。
[0009]因此,本专利技术提出一种面向领域专用加速器的快速原型构建方法来解决以上问题。
[0010][1]Ye H,Hao C,Cheng J,et al.Scalehls:A new scalable high

level synthesis framework on multi

level intermediate representation[C]//2022IEEE International Symposium on High

Performance Computer Architecture(HPCA).IEEE,2022:741

755.
[0011][2]Xu R,Xiao Y,Luo J,et al.HECTOR:A Multi

Level Intermediate Representation for Hardware Synthesis Methodologies[C]//Proceedings of the 41st IEEE/ACM International Conference on Computer

Aided Design.2022:1

9.

技术实现思路

[0012]本专利技术要解决的技术问题是提供一种面向领域专用加速器的快速原型构建方法,将Python的高生产力和Chisel的模块化硬件设计结合起来,实现算法的快速集成,缩短原型开发和迭代周期。同时,根据MLIR的灵活性和可扩展性,提出数据流感知的设计空间探索方法,结合硬件平台提供的约束,充分利用数据流的特性,优化数据流执行的效率,提高硬件设计的性能、资源利用和功耗效率。
[0013]为解决上述技术问题,本专利技术提供的技术方案为:一种面向领域专用加速器的快速原型构建方法,包括以下步骤:
[0014]步骤1:使用StableHLO/Torch

MLIR前端将输入的Python源码文件转换为IR;
[0015]步骤2:基于数据流感知的设计空间探索方法,结合硬件平台提供的约束,进行IR编译优化;
[0016]步骤3:对IR进行适配转换,使其转换为满足Hector输入要求的IR范式;
[0017]步骤4:使用Hector提供的hector

opt工具链,结合预定义的领域专用的基础算子模板,生成Chisel代码;
[0018]步骤5:将Chisel文件转换为RTL设计,对生成的硬本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种面向领域专用加速器的快速原型构建方法,其特征在于,包括以下步骤:步骤1:使用StableHLO/Torch

MLIR前端将输入的Python源码文件转换为IR;步骤2:基于数据流感知的设计空间探索方法,结合硬件平台提供的约束,进行IR编译优化;步骤3:对IR进行适配转换,使其转换为满足Hector输入要求的IR范式;步骤4:使用Hector提供的hector

opt工具链,结合预定义的领域专用的基础算子模板,生成Chisel代码;步骤5:将Chisel文件转换为RTL设计,对生成的硬件电路进行仿真和验证,以检查其功能正确性和性能指标。2.如权利要求1所述的面向领域专用加速硬件的快速原型构建方法,其特征在于,步骤2中,数据流感...

【专利技术属性】
技术研发人员:魏俊肖春华时辰龙家璇
申请(专利权)人:魏俊
类型:发明
国别省市:

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

1