CN116976250A - 一种面向领域专用加速器的快速原型构建方法 - Google Patents
一种面向领域专用加速器的快速原型构建方法 Download PDFInfo
- Publication number
- CN116976250A CN116976250A CN202310972685.5A CN202310972685A CN116976250A CN 116976250 A CN116976250 A CN 116976250A CN 202310972685 A CN202310972685 A CN 202310972685A CN 116976250 A CN116976250 A CN 116976250A
- Authority
- CN
- China
- Prior art keywords
- hector
- hardware
- design
- chisel
- data stream
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000010276 construction Methods 0.000 title claims abstract description 11
- 238000013461 design Methods 0.000 claims abstract description 54
- 238000000034 method Methods 0.000 claims abstract description 30
- 238000005457 optimization Methods 0.000 claims abstract description 17
- 238000006243 chemical reaction Methods 0.000 claims abstract description 15
- 230000003044 adaptive effect Effects 0.000 claims abstract description 14
- 230000008447 perception Effects 0.000 claims abstract description 9
- 238000000354 decomposition reaction Methods 0.000 claims description 8
- 230000004927 fusion Effects 0.000 claims description 7
- 230000006870 function Effects 0.000 claims description 6
- 230000008569 process Effects 0.000 claims description 4
- 230000001133 acceleration Effects 0.000 claims description 3
- 238000011161 development Methods 0.000 abstract description 8
- 230000010354 integration Effects 0.000 abstract description 4
- 230000018109 developmental process Effects 0.000 description 7
- 230000015572 biosynthetic process Effects 0.000 description 5
- 238000003786 synthesis reaction Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 101000985296 Homo sapiens Neuron-specific calcium-binding protein hippocalcin Proteins 0.000 description 1
- 101000935117 Homo sapiens Voltage-dependent P/Q-type calcium channel subunit alpha-1A Proteins 0.000 description 1
- 102100025330 Voltage-dependent P/Q-type calcium channel subunit alpha-1A Human genes 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000011960 computer-aided design Methods 0.000 description 1
- 238000011217 control strategy Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000002592 echocardiography Methods 0.000 description 1
- 238000005206 flow analysis Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000010845 search algorithm Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 238000001308 synthesis method Methods 0.000 description 1
- 230000033772 system development Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/327—Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3308—Design verification, e.g. functional simulation or model checking using simulation
- G06F30/331—Design verification, e.g. functional simulation or model checking using simulation with hardware acceleration, e.g. by using field programmable gate array [FPGA] or emulation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本发明公开了一种面向领域专用加速器的快速原型构建框架,涉及硬件设计技术领域。输入的Python源码文件经过StableHLO/Torch‑MLIR前端转换为IR;基于数据流感知的设计空间探索方法,结合硬件平台提供的约束,进行IR编译优化;对IR进行适配转换,使其转换为满足Hector输入要求的IR;使用Hector提供的hector‑opt工具链,结合预定义的领域专用的基础算子模板,生成Chisel代码;将Chisel文件转换为RTL设计,对生成的硬件电路进行仿真和验证。本发明将Python的高生产力和Chisel的模块化硬件设计结合起来,实现算法的快速集成,缩短原型开发和迭代周期。同时,根据MLIR的可扩展性和灵活性,提出数据流感知的设计空间探索方法,充分利用数据流的特性,优化数据流执行的效率,提高硬件设计的性能、资源利用率。
Description
技术领域
本发明涉及硬件设计技术领域,具体是指一种面向领域专用加速器的快速原型构建方法。
背景技术
进入后摩尔时代,通用处理器的性能陷入瓶颈,越来越多的学者开始关注领域专用加速器的设计,在众多硬件平台中,FPGA(Filed Programmable Gate Array)由于其高效的并行计算能力和可编程性受到大多数研究者的青睐,然而,随着片上系统规模的不断扩大,传统寄存器传输级(RTL)的设计方法的弊端凸显,相较于CPU,FPGA编程具有更高的技术门槛。此外,FPGA编程需要结合硬件架构与特性做针对性优化,因此开发周期相对较长,为了提高加速器设计的效率,缩短开发迭代周期,近年来在高层设计抽象中出现了新的设计方法,主要分为三种,分别是基于HLS的设计、基于Matlab的设计以及基于Chisel的设计。
基于HLS(High-Level Synthesis)的硬件设计的初衷是让用户能直接用高层次语言来描述算法,通过高层次综合工具直接将软件代码转换成硬件描述语言(HDL)。HLS工具大大的降低了硬件设计的门槛,开发者只需要在软件代码中添加一些相应的优化指令,即可通过HLS工具将软件代码转换成相应的硬件代码。
基于MATLAB的设计能够通过HDL Coder工具将MATLAB算法和模型转换为HDL代码,以实现快速的FPGA和ASIC设计,因其具有语法简单易学习掌握、应用范围广、高可重用性等优势,广泛被算法开发工程师所应用。
基于Chisel的设计尝试解决传统硬件描述语言抽象层次低的问题,从而保证硬件电路设计的灵活性。基于面向对象的思想,Chisel提供了高层次的抽象,使得硬件设计人员可以更自然地描述他们的设计,而无需直接处理底层细节,同时支持模块化设计,使得硬件模块可以被设计成可重用的组件,可以在多个设计中进行复用,提高设计效率和资源利用率,本质上,基于Chisel的设计就是在用高级语言描述电路,最终也会生成相应的Verilog代码,这与基于高层次综合工具的设计完全不同。
面向专用领域的设计旨在总结某个特定领域的设计经验,更高效地设计出针对特定领域的硬件,避免重复劳动。HLS技术一定程度上缩短了开发周期,但采用这种方式设计的硬件电路的性能受原始C代码的影响较大,常需要花费大量时间对C代码进行重构,且优化后的电路性能与基于传统硬件语言的设计相比,仍有不小差距;Matlab语法简单易学习掌握,但其仅关注软件层次,没有融合硬件特性,此外,该设计方法受限于Matlab平台和Matlab语言,算子库不支持扩展,无法自定义领域专用的硬件算子,对系统开发不友好;基于Chisel的设计,虽为硬件描述语言提供高层次封装,具有参数化能力、大量基础组件和可复用的IP,但缺乏成熟的算子库,同样需要开发者熟练掌握硬件设计开发流程。
目前,许多工作开始探索利用高级编程框架来促进领域专用架构的生成。其中,MLIR(Multi-Level Intermediate Representation)凭借其全新的编译策略受到了开发者及研究人员的青睐。具体来讲,MLIR提供了一种可扩展的框架,可以方便的为新的编程语言和硬件架构定制新的IR,也支持将现有的IR与MLIR集成,广泛应用于编译器的构建和优化,特别是在硬件加速领域。ScaleHLS[1]基于MLIR实现了一种可定制的HLS框架,通过“端到端”的自动优化为Vivado HLS生成带注释的C/C++代码。Hector[2]提出了一种统一的、具有多层次范式的硬件综合方法,可以灵活地描述硬件设计,以最小的代价进行硬件综合。
虽然这些工作都将高级编程框架与硬件生成器连接起来,但它们都有各自的弊端。ScaleHLS虽有硬件相关的优化,但在更高的抽象级别上生成代码,优化严格依赖于后端HLS工具,在此过程中会丢失大量的语义信息,可扩展性差,无法满足更灵活的算子选择、优化。Hector后端生成Chisel代码使其具有很好的可扩展性,但目前前端输入仅支持具有特定范式表达的IR,不能与MIIR中内置IR集成,缺乏对高级编程语言的支持,同时,其关注硬件综合流程的实现,优化并不完善,生成的硬件电路性能仅与基于HLS的设计方法相当。
因此,本发明提出一种面向领域专用加速器的快速原型构建方法来解决以上问题。
[1]Ye H,Hao C,Cheng J,et al.Scalehls:A new scalable high-levelsynthesis framework on multi-level intermediate representation[C]//2022IEEEInternational Symposium on High-Performance Computer Architecture(HPCA).IEEE,2022:741-755.
[2]Xu R,Xiao Y,Luo J,et al.HECTOR:A Multi-Level IntermediateRepresentation for Hardware Synthesis Methodologies[C]//Proceedings of the41st IEEE/ACM International Conference on Computer-Aided Design.2022:1-9.
发明内容
本发明要解决的技术问题是提供一种面向领域专用加速器的快速原型构建方法,将Python的高生产力和Chisel的模块化硬件设计结合起来,实现算法的快速集成,缩短原型开发和迭代周期。同时,根据MLIR的灵活性和可扩展性,提出数据流感知的设计空间探索方法,结合硬件平台提供的约束,充分利用数据流的特性,优化数据流执行的效率,提高硬件设计的性能、资源利用和功耗效率。
为解决上述技术问题,本发明提供的技术方案为:一种面向领域专用加速器的快速原型构建方法,包括以下步骤:
步骤1:使用StableHLO/Torch-MLIR前端将输入的Python源码文件转换为IR;
步骤2:基于数据流感知的设计空间探索方法,结合硬件平台提供的约束,进行IR编译优化;
步骤3:对IR进行适配转换,使其转换为满足Hector输入要求的IR范式;
步骤4:使用Hector提供的hector-opt工具链,结合预定义的领域专用的基础算子模板,生成Chisel代码;
步骤5:将Chisel文件转换为RTL设计,对生成的硬件电路进行仿真和验证,以检查其功能正确性和性能指标。
进一步地,步骤2中,数据流感知的设计空间探索方法综合考虑了节点融合/分解、节点并行化和数据缓冲区划分策略。
节点融合/分解优化:本发明通过数据流分析,确定数据流图中具有相似数据依赖关系的计算节点。对这些节点进行节点融合,将它们合并为更大的计算节点,从而减少数据在节点之间的传输和通信开销。同时,对于某些节点可能存在计算资源过大或数据依赖关系复杂的情况,本发明还提出节点分解优化策略,将这些节点拆分成较小的节点,以增加并行性和流水线效率。在MLIR中,使用自定义属性来表示节点的融合和分解策略。定义节点属性"Fused"和"Decomposed"来标识哪些节点可以进行融合和分解操作。并使用图搜索算法找到可融合/可分解的节点组合。
节点并行化优化:本发明基于数据流图的特性,提出节点并行化优化策略。对于独立的计算节点,本发明采取并行执行的方式,以提高计算吞吐量。而对于具有数据依赖关系的节点,本发明采用合适的同步机制和并行控制策略,以实现数据依赖的正确执行,避免冲突和死锁。
数据缓冲区划分优化:本发明在设计空间探索中考虑数据缓冲区的划分策略。该策略根据节点之间的数据流量和硬件资源约束,决定如何对数据进行缓冲区划分。数据缓冲区划分可以优化数据在数据通路中的传输,减少数据的等待时间,提高数据流的延迟效率和带宽效率。包括:1.识别需要频繁访问的数据,将其缓存到临时缓冲区中;2.根据数据访问模式和数据依赖关系,优化缓冲区的大小和布局,以最大程度地减少内存访问延迟。3.利用MLIR中的数据复用技术,将临时缓冲区中的数据复用,以减少数据的存取次数。
进一步地,步骤3中,对IR进行适配转换的过程为:
S1:将优化后的IR通过mlir-opt工具链转化为SCF方言格式的IR;
S2:编写适配转换函数,遍历整个IR,使用正则表达式识别出各个操作,各个操作中包含的变量类型,变量的访存大小,以及load,store,memref等关键字,进行字符串的替换,使其满足Hector中输入IR的风格;
S3:将适配转换函数集成到hector-opt工具链中,实现SCF IR到Hector输入IR的自动转换。
与现有技术方法相比,本发明所具有的有益效果是:
1.在硬件设计技术领域,本发明创新性地提出快速原型构建设计方法,将Python的高生产力和Chisel的模块化硬件设计结合起来,可以实现算法的快速集成,缩短原型开发和迭代周期。同时,通过MLIR的灵活性和可扩展性优化硬件和软件的协同工作,提高系统的性能和稳定性,满足特定领域的高能效需求。
2.本发明提出的数据流感知的设计空间探索方法,结合硬件平台提供的硬件约束,综合考虑节点融合/分解、节点并行化和数据缓冲区划分策略,可以实现对硬件设计的全面优化。该方法能够充分利用数据流的特性,优化数据流执行的效率,提高硬件设计的性能、资源利用和功耗效率。同时,该方法还能加速设计空间探索过程,提高设计的质量和效率。
附图说明
图1是本发明快速原型构建方法基本结构示意图。
图2是本实施例中STAP算法实行快速原型构建的流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清晰,下面将结合图1-图2对本发明做进一步的解释说明,该实施例不构成对本发明实施例的限定。
利用机载雷达检测运动目标是现代战场中的一种常用方式。由于其平台位置升高,雷达直视距离扩大,地形遮蔽效应对雷达的影响大大减弱,雷达分辨成像能力大大提升。然而,机载雷达动态运作及位置升高的特点会带来杂波回波存在多普勒频移、杂波多普勒频谱展宽等负面效应。空时自适应处理(Space Time Adaptive Processing,STAP)技术对空域数据与时域数据进行联合自适应滤波处理,可以实现滤除杂波,得到目标信号的目的。以下是实现STAP算法快速原型构建的步骤:
步骤1:在这个实施例中,采用Chisel3,通过定义各种模块和电路组合,构建一个适用于雷达领域的基础算子模板库。
步骤2:将TensorFlow编写的STAP算法转换为TensorFlow图表达的形式,其中涉及两步转换:a)从TensorFlow到pb模型二进制文件;b)从pb模型二进制文件到可读pbtxt图表达文件;
步骤3:将TensorFlow图表达翻译为MLIR表达式,利用TensorFlow中的MLIR工具tf-mlir-translate实现;
步骤4:基于数据流感知的设计空间探索方法,结合硬件平台提供的约束,依次进行节点融合/分解,节点并行化,数据缓冲区划分的优化。
步骤5:对IR进行适配转换,使其转换为满足Hector输入要求的IR范式。包括:a)将优化后的IR通过mlir-opt转化为SCF方言格式的IR;b)编写适配转换函数,遍历整个IR,使用正则表达式识别出各个操作,各个操作中包含的变量类型,变量的访存大小,以及load,store,memref等关键字,进行字符串的替换,使其满足Hector中输入IR的风格;c)将适配转换函数集成到hector-opt工具链中,实现SCF IR到Hector输入IR的自动转换。
步骤6:使用Hector提供的hector-opt工具链,结合预定义的雷达领域基础算子模板,将改写后的IR转化为Chisel代码。
步骤7:将Chisel文件转换为RTL设计,对生成的硬件电路进行仿真和验证,以检查其功能正确性和性能指标。
以上通过实施例对本发明进行了详细说明,但所述内容仅为本发明的示例性实施例,不能被认为用于限定本发明的实施范围。本发明的保护范围由权利要求书限定。凡利用本发明所述的技术方案,或本领域的技术人员在本发明技术方案的启发下,在本发明的实质和保护范围内,设计出类似的技术方案而达到上述技术效果的,或者对申请范围所作的均等变化与改进等,均应仍归属于本发明的专利涵盖保护范围之内。
Claims (3)
1.一种面向领域专用加速器的快速原型构建方法,其特征在于,包括以下步骤:
步骤1:使用StableHLO/Torch-MLIR前端将输入的Python源码文件转换为IR;
步骤2:基于数据流感知的设计空间探索方法,结合硬件平台提供的约束,进行IR编译优化;
步骤3:对IR进行适配转换,使其转换为满足Hector输入要求的IR范式;
步骤4:使用Hector提供的hector-opt工具链,结合预定义的领域专用的基础算子模板,生成Chisel代码;
步骤5:将Chisel文件转换为RTL设计,对生成的硬件电路进行仿真和验证,以检查其功能正确性和性能指标。
2.如权利要求1所述的面向领域专用加速硬件的快速原型构建方法,其特征在于,步骤2中,数据流感知的设计空间探索方法综合考虑了节点融合/分解、节点并行化和数据缓冲区划分策略,充分利用数据流的特性,优化数据流执行的效率。
3.如权利要求1所述的面向领域专用加速硬件的快速原型构建方法,其特征在于,步骤3中,对IR进行适配转换的过程为:
S1:将优化后的IR通过mlir-opt工具链转化为SCF方言格式的IR;
S2:编写适配转换函数,遍历整个IR,使用正则表达式识别出各个操作,各个操作中包含的变量类型,变量的访存大小,以及load,store,memref等关键字,进行字符串的替换,使其满足Hector中输入IR的风格;
S3:将适配转换函数集成到hector-opt工具链中,实现SCF IR到Hector输入IR的自动转换。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310972685.5A CN116976250A (zh) | 2023-08-03 | 2023-08-03 | 一种面向领域专用加速器的快速原型构建方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310972685.5A CN116976250A (zh) | 2023-08-03 | 2023-08-03 | 一种面向领域专用加速器的快速原型构建方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116976250A true CN116976250A (zh) | 2023-10-31 |
Family
ID=88471166
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310972685.5A Pending CN116976250A (zh) | 2023-08-03 | 2023-08-03 | 一种面向领域专用加速器的快速原型构建方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116976250A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117768051A (zh) * | 2023-12-01 | 2024-03-26 | 山东诚泉信息科技有限责任公司 | 一种算法级无线电信号快速仿真生成方法 |
-
2023
- 2023-08-03 CN CN202310972685.5A patent/CN116976250A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117768051A (zh) * | 2023-12-01 | 2024-03-26 | 山东诚泉信息科技有限责任公司 | 一种算法级无线电信号快速仿真生成方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20190286972A1 (en) | Hardware accelerated neural network subgraphs | |
Takamaeda-Yamazaki | Pyverilog: A python-based hardware design processing toolkit for verilog hdl | |
Balasa et al. | Background memory area estimation for multidimensional signal processing systems | |
Wipliez et al. | Software code generation for the RVC-CAL language | |
US8930892B2 (en) | System and method for computational unification of heterogeneous implicit and explicit processing elements | |
CN112465108A (zh) | 一种面向存算一体平台的神经网络编译方法 | |
CN116976250A (zh) | 一种面向领域专用加速器的快速原型构建方法 | |
Kapre et al. | Survey of domain-specific languages for FPGA computing | |
Xiao et al. | Plasticity-on-chip design: Exploiting self-similarity for data communications | |
JP2021512387A (ja) | 量子コンピューティング・デバイス設計 | |
Boulet et al. | MDA for SoC Design, Intensive Signal Processing Experiment. | |
Yang et al. | S 2 Engine: A novel systolic architecture for sparse convolutional neural networks | |
Takano et al. | Design of a DSL for converting rust programming language into RTL | |
US20240135078A1 (en) | Circuit Synthesis Optimization for Implements on Integrated Circuit | |
CN105447285B (zh) | 一种提高OpenCL硬件执行效率的方法 | |
Corvino et al. | Design space exploration in application-specific hardware synthesis for multiple communicating nested loops | |
Rucker et al. | Revet: A language and compiler for dataflow threads | |
Esmaeilzadeh et al. | Physically accurate learning-based performance prediction of hardware-accelerated ml algorithms | |
Abid et al. | Efficient system-level hardware synthesis of dataflow programs using shared memory based FIFO: HEVC decoder case study | |
Rudi et al. | CodeFlow: A code generation system for Flash-X orchestration runtime | |
Hoang | Compiling real-time digital signal processing applications onto multiprocessor systems | |
Vanderbauwhede et al. | Type-driven automated program transformations and cost modelling for optimising streaming programs on fpgas | |
Wang et al. | AutoMap: Automatic Mapping of Neural Networks to Deep Learning Accelerators for Edge Devices | |
Corvino et al. | Abstract clocks for the dse of data-intensive applications on mpsocs | |
Corvino et al. | Design space exploration for efficient data intensive computing on socs |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |