CN106599370A - 一种高层次综合工具中的指引文件自动生成方法及系统 - Google Patents
一种高层次综合工具中的指引文件自动生成方法及系统 Download PDFInfo
- Publication number
- CN106599370A CN106599370A CN201611008596.5A CN201611008596A CN106599370A CN 106599370 A CN106599370 A CN 106599370A CN 201611008596 A CN201611008596 A CN 201611008596A CN 106599370 A CN106599370 A CN 106599370A
- Authority
- CN
- China
- Prior art keywords
- level synthesis
- high level
- loop
- loop unrolling
- guide file
- 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.)
- Granted
Links
- 230000015572 biosynthetic process Effects 0.000 title claims abstract description 48
- 238000003786 synthesis reaction Methods 0.000 title claims abstract description 48
- 238000000034 method Methods 0.000 title claims abstract description 26
- 230000004087 circulation Effects 0.000 claims description 17
- 230000000694 effects Effects 0.000 abstract description 4
- 238000005457 optimization Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- BTCSSZJGUNDROE-UHFFFAOYSA-N gamma-aminobutyric acid Chemical compound NCCCC(O)=O BTCSSZJGUNDROE-UHFFFAOYSA-N 0.000 description 1
- 230000032696 parturition Effects 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
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)
- Complex Calculations (AREA)
Abstract
本发明公开了一种高层次综合工具中的指引文件自动生成方法及系统,该方法包括有以下步骤:A、获取代码中的循环信息,若存在人工定义的循环展开因子,则直接执行步骤C,否则执行步骤B;B、根据循环信息对循环进行展开处理,通过设计空间探索计算得到循环展开因子;C、根据步骤A或步骤B中得到的循环展开因子生成高层次综合工具的指引文件。本发明利用循环展开因子自动生成高层次综合工具的循环指引文件,进而供高层次综合工具使用,无需人工编写循环的处理代码,大大减少设计人员的工作量和压力,显著提高了高层次综合工具生成硬件的效果。本发明作为一种高层次综合工具中的指引文件自动生成方法及系统可广泛应用于计算机与电路设计领域。
Description
技术领域
本发明涉及计算机与电路设计领域,尤其涉及一种高层次综合工具中的指引文件自动生成方法及系统。
背景技术
在现代的数字集成电路设计中,存在着许多数据密集型应用,例如数字媒体处理、加密算法处理等。这些数据密集型应用在高层次设计中会存在许多循环语句。关于循环的优化在编译器等计算机科学领域都存在着大量的研究。
对于高层次综合来说,循环能在高层次综合中得到更加灵活的配置以及优化。随着集成电路单位面积上的门电路的集成度越来越高,我们可以牺牲一些面积来获取更快的上市周期和更优的硬件性能。在高层次综合过程中将程序中的循环部分进行展开从而可以暴露更多硬件优化的机会,例如全局调度优化。这样能使得综合出来的硬件使用更少的运行周期,使得高层次综合生成的硬件性能得以极大的提升。
在现今的高层次综合工具中常用人工定义的方式对循环展开进行指引从而提升高层次综合的效果,但要求设计人员有相当丰富的循环处理经验,而且给设计人员带来额外的工作量,大大降低了设计的效率。
发明内容
为了解决上述技术问题,本发明的目的是:提供一种简单、易于实现和操作的高层次综合工具中针对循环展开的指引文件自动生成方法。
为了解决上述技术问题,本发明的另一目的是:提供一种简单、易于实现和操作的高层次综合工具中针对循环展开的指引文件自动生成系统。
本发明所采用的技术方案是:一种高层次综合工具中的指引文件自动生成方法,包括有以下步骤:
A、获取代码中的循环信息,若存在人工定义的循环展开因子,则直接执行步骤C,否则执行步骤B;
B、根据循环信息对循环进行展开处理,通过设计空间探索计算得到循环展开因子;
C、根据步骤A或步骤B中得到的循环展开因子生成高层次综合工具的指引文件。
进一步,所述步骤A中的循环信息包括有循环名称、循环迭代距离和人工定义的循环展开因子。
进一步,所述步骤B具体包括以下子步骤:
B1、根据循环信息建立循环依赖关系图;
B2、计算最大迭代并行距离;
B3、计算内存总线最大访问量;
B4、通过设计空间探索计算得到循环展开因子。
进一步,所述步骤B2中的最大迭代并行距离为指令间没有数据依赖的距离。
进一步,所述步骤B3中的内存总线最大访问量根据最大迭代并行距离与访存指令能占满内存总线数的最大值计算得到。
本发明所采用的另一技术方案是:一种高层次综合工具中的指引文件自动生成系统,该系统包括:
收集判断单元,用于获取代码中的循环信息,并判断是否存在人工定义的循环展开因子,如存在,则直接运行文件生成单元;否则运行循环处理单元;
循环处理单元,用于根据循环信息对循环进行展开处理,通过设计空间探索计算得到循环展开因子;
文件生成单元,用于根据收集判断单元或循环处理单元中得到的循环展开因子生成高层次综合工具的指引文件。
进一步,所述循环信息包括有循环名称、循环迭代距离和人工定义的循环展开因子。
进一步,所述循环处理单元包括有:
循环依赖图建立子单元,用于根据循环信息建立循环依赖图。
迭代并行距离计算子单元,用于计算最大迭代并行距离。
内存总线访问量计算子单元,用于计算内存总线的最大访问量。
设计空间探索子单元,用于通过设计空间探索计算得到所需的循环展开因子。
进一步,所述迭代并行距离计算子单元中的最大迭代并行距离为指令间没有数据依赖的距离
进一步,所述内存总线访问量计算子单元中的内存总线最大访问量根据最大迭代并行距离与访存指令能占满内存总线数的最大值计算得到。
本发明的有益效果是:通过本发明方法,利用循环展开因子自动生成高层次综合工具的循环指引文件,进而供高层次综合工具使用,无需人工编写循环的处理代码,大大减少设计人员的工作量和压力,而且也显著提高了高层次综合工具生成硬件的效果。
本发明的另一有益效果是:通过本发明的系统,利用循环展开因子自动生成高层次综合工具的循环指引文件,进而供高层次综合工具使用,这样则无需人工编写循环的处理代码,大大减少设计人员的工作量和压力,而且也显著提高了高层次综合工具生成硬件的效果。
附图说明
下面结合附图对本发明的具体实施方式作进一步说明:
图1是本发明高层次综合工具中针对循环展开的指引文件自动生成方法的步骤图;
图2是本发明高层次综合工具中针对循环展开的指引文件自动生成方法的具体实施例的步骤图;
图3是循环依赖图的生成示意图;
图4是本发明具体实施例中进行高层次综合的代码;
图5为图4代码循环展开前的中间表达式代码;
图6为图4代码循环展开75次后的中间表达式代码简图;
图7是本发明高层次综合工具中针对循环展开的指引文件自动生成系统的结构框图;
图8是本发明高层次综合工具中针对循环展开的指引文件自动生成系统的具体实施例的结构框图。
具体实施方式
下面结合附图对本发明的具体实施方式作进一步说明:
参照图1,一种高层次综合工具中的指引文件自动生成方法,包括有以下步骤:
A、获取代码中的循环信息,若存在人工定义的循环展开因子,则直接执行步骤C,否则执行步骤B;
B、根据循环信息对循环进行展开处理,通过设计空间探索计算得到循环展开因子;
C、根据步骤A或步骤B中得到的循环展开因子生成高层次综合工具的指引文件。
进一步作为优选的实施方式,所述步骤A中的循环信息包括有循环名称、循环迭代距离和人工定义的循环展开因子。其中循环的迭代距离是指循环的迭代因子的取值范围,以附图3为例,该for循环的迭代距离即为迭代因子i的取值范围,即5。
参照图2,进一步作为优选的实施方式,所述步骤B具体包括以下子步骤:
B1、根据循环信息建立循环依赖关系图;
参照图3,根据图左的代码创建图右的循环依赖关系图,具体步骤为:遍历程序中的所有指令,根据数据依赖关系,即读操作、写操作以及带有回边的PHI指令,创建循环依赖关系图。当程序中包含调用函数时,由于包含了循环体外的数据依赖关系,将中止循环展开的操作。
B2、计算最大迭代并行距离;
进一步作为优选的实施方式,所述步骤B2中的最大迭代并行距离为指令间没有数据依赖的距离,其计算公式为:
InstParallelNum=Σn∈recurrence pathDepDistn
其中DepDistn是迭代路径中无依赖关系的第n对指令间的距离,recurrence path是迭代路径,InstParallelNum是最大迭代并行距离,即在建立循环依赖关系图时得到的无数据依赖的指令的最大距离。如图3所示,其最大并行迭代距离为1,即I3与I4间无依赖关系的指令距离为1。以图4所述代码为例,及计算得到的InstParallelNum为4294967295。
B3、计算内存总线最大访问量;
进一步作为优选的实施方式,所述步骤B3中的内存总线最大访问量根据最大迭代并行距离与访存指令能占满内存总线数的最大值计算得到,其计算公式为:
IncreaseCost=ΔMux.AddressFanInCost+ΔMux.DataFanInCost+ΔDataPathCost
计算出循环展开消耗的资源,其中AddressFanInCost为多路器的对内存访问的资源开销,DataFanInCost为数据扇入的多路器资源的消耗量。
ΔMux.AddressFanInCost=getMuxCost(NumAddrFanIn,AddrWidth)
ΔMux.DataFanInCost=getMuxCost(NumDataFanIn,DataWidth)
其中的Unrollfactor即循环的展开因子。
其中的saturedCount计算公式为:
其中bandwidth是指数据总线带宽,InstWitdth是访存字节大小。
如图4所述代码利用上述公式计算后可得,当Unrollfactor为75时,其NumAddrFanIn为0,AddrWidth为32,NumDataFanIn为0,DataWidth为32。从而可以得到Mux.AddressFanInCost为0,Mux.DataFanInCost为0。而此时的DataPathCost为253524,此时的总代价小于且最为接近预设的阈值256000。由此可得可接受的最大的Unrollfactor为75。
B4、通过设计空间探索计算得到循环展开因子;
本发明具体实施例中,设计空间探索(Design Space Exploration)采用二分搜索的方式进行,其搜索范围是从0到步骤A中得到的循环迭代距离即全展开,其约束条件为步骤B3中求得的资源消耗量,当资源消耗量小于预设的阈值时,则进行循环展开的操作。如图4所示例子,可得搜索范围为0到1000。而当Unrollfactor为75时,可以得到IncreasedCost为253524,满足预设阈值且不需要增加多路器的内存访问消耗。所以调用75来作为我们生成循环展开指引文件的展开因子,循环展开前的中间表达式代码如图5所示,循环展开75次后的中间表达式代码简图如图6所示。
参照图7,一种高层次综合工具中的指引文件自动生成系统,该系统包括:
收集判断单元,用于获取代码中的循环信息,并判断是否存在人工定义的循环展开因子,如存在,则直接运行文件生成单元;否则运行循环处理单元;
循环处理单元,用于根据循环信息对循环进行展开处理,通过设计空间探索计算得到循环展开因子;
文件生成单元,用于根据收集判断单元或循环处理单元中得到的循环展开因子生成高层次综合工具的指引文件。
进一步作为优选的实施方式,所述循环信息包括有循环名称、循环迭代距离和人工定义的循环展开因子。
参照图8,进一步作为优选的实施方式,所述循环处理单元包括有:
循环依赖图建立子单元,用于根据循环信息建立循环依赖图。
迭代并行距离计算子单元,用于计算最大迭代并行距离。
内存总线访问量计算子单元,用于计算内存总线的最大访问量。
设计空间探索子单元,用于通过设计空间探索计算得到所需的循环展开因子。
进一步作为优选的实施方式,所述迭代并行距离计算子单元中的最大迭代并行距离为指令间没有数据依赖的距离
进一步作为优选的实施方式,所述内存总线访问量计算子单元中的内存总线最大访问量根据最大迭代并行距离与访存指令能占满内存总线数的最大值计算得到。
以上对本发明的较佳实施进行了具体说明,但本发明创造并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做作出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。
Claims (10)
1.一种高层次综合工具中的指引文件自动生成方法,其特征在于:包括有以下步骤:
A、获取代码中的循环信息,若存在人工定义的循环展开因子,则直接执行步骤C,否则执行步骤B;
B、根据循环信息对循环进行展开处理,通过设计空间探索计算得到循环展开因子;
C、根据步骤A或步骤B中得到的循环展开因子生成高层次综合工具的指引文件。
2.根据权利要求1所述的一种高层次综合工具中的指引文件自动生成方法,其特征在于:所述步骤A中的循环信息包括有循环名称、循环迭代距离和人工定义的循环展开因子。
3.根据权利要求1所述的一种高层次综合工具中的指引文件自动生成方法,其特征在于:所述步骤B具体包括以下子步骤:
B1、根据循环信息建立循环依赖关系图;
B2、计算最大迭代并行距离;
B3、计算内存总线最大访问量;
B4、通过设计空间探索计算得到循环展开因子。
4.根据权利要求3所述的一种高层次综合工具中的指引文件自动生成方法,其特征在于:所述步骤B2中的最大迭代并行距离为指令间没有数据依赖的距离。
5.根据权利要求3所述的一种高层次综合工具中的指引文件自动生成方法,其特征在于:所述步骤B3中的内存总线最大访问量根据最大迭代并行距离与访存指令能占满内存总线数的最大值计算得到。
6.一种高层次综合工具中的指引文件自动生成系统,其特征在于:该系统包括:
收集判断单元,用于获取代码中的循环信息,并判断是否存在人工定义的循环展开因子,如存在,则直接运行文件生成单元;否则运行循环处理单元;
循环处理单元,用于根据循环信息对循环进行展开处理,通过设计空间探索计算得到循环展开因子;
文件生成单元,用于根据收集判断单元或循环处理单元中得到的循环展开因子生成高层次综合工具的指引文件。
7.根据权利要求6所述的一种高层次综合工具中的指引文件自动生成系统,其特征在于:所述循环信息包括有循环名称、循环迭代距离和人工定义的循环展开因子。
8.根据权利要求6所述的一种高层次综合工具中的指引文件自动生成系统,其特征在于,所述循环处理单元包括有:
循环依赖图建立子单元,用于根据循环信息建立循环依赖图;
迭代并行距离计算子单元,用于计算最大迭代并行距离;
内存总线访问量计算子单元,用于计算内存总线的最大访问量;
设计空间探索子单元,用于通过设计空间探索计算得到所需的循环展开因子。
9.根据权利要求8所述的一种高层次综合工具中的指引文件自动生成系统,其特征在于:所述迭代并行距离计算子单元中的最大迭代并行距离为指令间没有数据依赖的距离。
10.根据权利要求8所述的一种高层次综合工具中的指引文件自动生成系统,其特征在于:所述内存总线访问量计算子单元中的内存总线最大访问量根据最大迭代并行距离与访存指令能占满内存总线数的最大值计算得到。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611008596.5A CN106599370B (zh) | 2016-11-16 | 2016-11-16 | 一种高层次综合工具中的指引文件自动生成方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611008596.5A CN106599370B (zh) | 2016-11-16 | 2016-11-16 | 一种高层次综合工具中的指引文件自动生成方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106599370A true CN106599370A (zh) | 2017-04-26 |
CN106599370B CN106599370B (zh) | 2019-12-13 |
Family
ID=58590138
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611008596.5A Active CN106599370B (zh) | 2016-11-16 | 2016-11-16 | 一种高层次综合工具中的指引文件自动生成方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106599370B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109240699A (zh) * | 2018-04-13 | 2019-01-18 | 广州中国科学院软件应用技术研究所 | 一种减少细粒度随机化安全优化带来的寄存器溢出方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103077284A (zh) * | 2013-01-16 | 2013-05-01 | 中山大学 | 利用通用文本模板自动生成辅助代码文件的方法及系统 |
CN104408232A (zh) * | 2014-10-30 | 2015-03-11 | 中山大学 | 一种高层次综合中的组合逻辑优化方法及系统 |
-
2016
- 2016-11-16 CN CN201611008596.5A patent/CN106599370B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103077284A (zh) * | 2013-01-16 | 2013-05-01 | 中山大学 | 利用通用文本模板自动生成辅助代码文件的方法及系统 |
CN104408232A (zh) * | 2014-10-30 | 2015-03-11 | 中山大学 | 一种高层次综合中的组合逻辑优化方法及系统 |
Non-Patent Citations (2)
Title |
---|
李文龙等: "一种计算循环展开因子的算法", 《2003中国计算机大会论文集》 * |
樊宗智等: "基于高层次综合的JPEG编码器设计", 《微电子学与计算机》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109240699A (zh) * | 2018-04-13 | 2019-01-18 | 广州中国科学院软件应用技术研究所 | 一种减少细粒度随机化安全优化带来的寄存器溢出方法 |
CN109240699B (zh) * | 2018-04-13 | 2022-01-04 | 广州中国科学院软件应用技术研究所 | 一种减少细粒度随机化安全优化带来的寄存器溢出方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106599370B (zh) | 2019-12-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Liu et al. | Processing-in-memory for energy-efficient neural network training: A heterogeneous approach | |
Latifi Oskouei et al. | Cnndroid: Gpu-accelerated execution of trained deep convolutional neural networks on android | |
Rossi et al. | Vega: A ten-core SoC for IoT endnodes with DNN acceleration and cognitive wake-up from MRAM-based state-retentive sleep mode | |
Kogge et al. | Exascale computing trends: Adjusting to the" new normal"'for computer architecture | |
CN111078290B (zh) | 一种用于可扩展指令集的编译器及编译方法 | |
KR20200069346A (ko) | 대규모 병렬 소프트웨어로 정의된 하드웨어 시스템에서의 정적 블록 스케줄링 | |
Giles et al. | Trends in high-performance computing for engineering calculations | |
US8954775B2 (en) | Power gating functional units of a processor | |
US9292359B2 (en) | System and method for memory management | |
JP2018518775A (ja) | 分離されるプロセッサ命令ウィンドウとオペランドバッファ | |
TW202029064A (zh) | 多路徑神經網路、資源配置的方法及多路徑神經網路分析器 | |
Zhang et al. | M2M: A simple Matlab-to-MapReduce translator for cloud computing | |
Pienaar et al. | Automatic generation of software pipelines for heterogeneous parallel systems | |
WO2016105840A1 (en) | Technologies for low-level composable high performance computing libraries | |
Vocke et al. | Extending halide to improve software development for imaging dsps | |
Owaida et al. | Massively parallel programming models used as hardware description languages: The OpenCL case | |
CN106599370A (zh) | 一种高层次综合工具中的指引文件自动生成方法及系统 | |
CN107729118A (zh) | 面向众核处理器的修改Java虚拟机的方法 | |
Voitsechov et al. | Software-directed techniques for improved gpu register file utilization | |
Iosifidis et al. | A framework for automatic parallelization, static and dynamic memory optimization in MPSoC platforms | |
Han et al. | Polyhedral-based compilation framework for in-memory neural network accelerators | |
Wu et al. | Model-based dynamic scheduling for multicore implementation of image processing systems | |
Boyer | Improving Resource Utilization in Heterogeneous CPU-GPU Systems | |
CN112783503B (zh) | 一种基于Arm架构的NumPy运算加速优化方法 | |
Bai et al. | Gtco: Graph and tensor co-design for transformer-based image recognition on tensor cores |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |