CN116629353B - 面向fpga的粗粒度fifo硬件通道自动拟合方法 - Google Patents
面向fpga的粗粒度fifo硬件通道自动拟合方法 Download PDFInfo
- Publication number
- CN116629353B CN116629353B CN202310903805.6A CN202310903805A CN116629353B CN 116629353 B CN116629353 B CN 116629353B CN 202310903805 A CN202310903805 A CN 202310903805A CN 116629353 B CN116629353 B CN 116629353B
- Authority
- CN
- China
- Prior art keywords
- function
- subfunction
- adjacent
- instruction
- array
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 26
- 230000006870 function Effects 0.000 claims abstract description 61
- 230000014509 gene expression Effects 0.000 claims description 12
- 238000010195 expression analysis Methods 0.000 claims description 8
- 238000005457 optimization Methods 0.000 claims description 6
- 238000005516 engineering process Methods 0.000 claims description 4
- 230000005540 biological transmission Effects 0.000 abstract description 3
- 238000013528 artificial neural network Methods 0.000 description 8
- 230000001133 acceleration Effects 0.000 description 7
- 238000013527 convolutional neural network Methods 0.000 description 6
- 238000004088 simulation Methods 0.000 description 5
- 230000015572 biosynthetic process Effects 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 4
- 238000003786 synthesis reaction Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000013145 classification model Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000010410 layer Substances 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 239000002356 single layer Substances 0.000 description 1
- 238000007711 solidification Methods 0.000 description 1
- 230000008023 solidification Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/10—Interfaces, programming languages or software development kits, e.g. for simulating neural networks
-
- 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
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/443—Optimisation
- G06F8/4441—Reducing the execution time required by the program code
- G06F8/4443—Inlining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2117/00—Details relating to the type or aim of the circuit design
- G06F2117/08—HW-SW co-design, e.g. HW-SW partitioning
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Geometry (AREA)
- Life Sciences & Earth Sciences (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Mathematical Physics (AREA)
- Biomedical Technology (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本发明公开了一种面向FPGA的粗粒度FIFO硬件通道自动拟合方法,涉及FPGA技术领域,该方法包括:获取数据流目标区域内的子函数调用及对应的调用指令序列;判断任一相邻子函数调用指令是否具有相同的数组参数变量,若是将相邻子函数调用指令所对应的函数体内部的所有子函数调用实现函数内嵌,并扫描实现函数内嵌的相邻子函数内每条与数组参数变量相关的读/写指令,若相邻子函数中的前一个子函数内只有写指令发生在数组参数变量上且相邻子函数中的后一个子函数内只有读指令发生在数组参数变量上,则完成FIFO硬件通道的拟合。本发明能够帮助用户自动分析函数间的数据传输关系,自动判定并完成FIFO硬件通道的拟合。
Description
技术领域
本发明涉及FPGA技术领域,特别是涉及一种面向FPGA的粗粒度FIFO(first-in-first-out,先入先出)硬件通道自动拟合方法。
背景技术
目前,神经网络算法广泛应用于目标检测、轨迹预测等场景,具有响应快速、准确率高等特点。其中,视觉分析占据大部分场景。然而,实时环境瞬息万变,需要神经网络算法满足严苛的实时性与精确度,此时必须配置超高算力才能实现快速准确的响应,如自动驾驶领域。为了满足不同应用场景和超高算力的要求,需要定制固化不同神经网络算法的智能芯片。但是,芯片硬件的开发不同于软件算法的设计,其开发周期更长,迭代改进的速度慢,出错的概率高,且不同应用场景需要设计不同的智能芯片,进一步地放大了这些缺陷与局限性。如果仅靠传统硬件工程师借助经验与手工的设计方式,则很难满足上述需求。
电子设计自动化(electronic design automation,EDA)工具,尤其是高层次综合(High-level Synthesis,HLS)工具可以有效解决上述这一困境。高层次综合指的是将C/C++等常用软件描述语言自动转换为Verilog/VHDL等硬件描述语言。HLS工具,不但可以针对不同的应用场景定制不同的智能芯片,解放生产力,替代传统硬件工程师,还可以将合适的C/C++软件描述语言迅速生成合适的硬件描述语言并实现高算力加速。
神经网络算法,应用了大量的矩阵乘、卷积操作、数组操作等运算,适合采用FPGA固化加速。其中,粗粒度并行加速的效果最佳。在HLS自动固化加速流程中,数据流(dataflow)是常用的粗粒度并行加速技术。在C/C++等软件描述语言中,函数是粗粒度一级,子函数之间是顺序执行的关系。如果可以把前一函数的执行结果提前发放给下一个函数并驱动下一函数提前并行执行,则可以大大提高其运算性能,这也是数据流的基本思想。例如:A、B、C在C/C++软件描述语言中是顺序执行的粗粒度函数,A的输出通过数组temp1传递给B,B通过数组temp1得到数据后经计算再传递给数组temp2,然后再输出给C。这种串行执行效率极低。如果将数组temp1、数组temp2改为FIFO硬件通道,则B可以在A未结束前提前运行,C也可以在有通道数据输入情况下并行执行,以此大大提高运行效率。其中,能够拟合为FIFO硬件通道的条件有三点:第一,相邻函数具有相同数组,且该数组在前面函数内只写,在后面函数内只读;第二,对目标数组的读或写,必须严格按内存地址顺序读写,不能发生跳变;第三,对目标数组的读或写,必须发生在数组所有元素上,不能遗漏。
目前只能靠人工一点点分析C/C++软件描述语言,以确定能否拟合为FIFO硬件通道。显然,如何帮助用户自动分析函数间的数据传输关系,自动判定并完成FIFO硬件通道的拟合,是提高神经网络芯片自动化效率的关键。
发明内容
本发明的目的是提供一种面向FPGA的粗粒度FIFO硬件通道自动拟合方法,能够帮助用户自动分析函数间的数据传输关系,自动判定并完成FIFO硬件通道的拟合,进而提高神经网络芯片的自动化效率。
为实现上述目的,本发明提供了如下方案:
一种面向FPGA的粗粒度FIFO硬件通道自动拟合方法,包括:
利用LLVM编译框架,通过函数、基本块和指令组成的三级结构获取数据流目标区域内的子函数调用及对应的调用指令序列;所述调用指令序列包括n个子函数调用指令;
判断任一相邻子函数调用指令是否具有相同的数组参数变量,若是则将具有相同的数组参数变量的相邻子函数调用指令所对应的函数体内部的所有子函数调用实现函数内嵌;
扫描实现函数内嵌的相邻子函数内每条与数组参数变量相关的读/写指令,若实现函数内嵌的相邻子函数中的前一个子函数内只有写指令发生在数组参数变量上,且实现函数内嵌的相邻子函数中的后一个子函数内只有读指令发生在数组参数变量上,则完成FIFO硬件通道的拟合。
可选地,所述数据流目标区域为拟定要做数据流粗粒度优化的C/C++代码区域。
可选地,若是则将具有相同的数组参数变量的相邻子函数调用指令所对应的函数体内部的所有子函数调用实现函数内嵌,具体包括:
采用调用图技术,按从底到顶的遍历顺序,将有相同的数组参数变量的相邻子函数调用指令所对应的函数体内部的所有子函数调用替代为整个对应的函数体,实现函数内嵌。
可选地,扫描实现函数内嵌的相邻子函数内每条与数组参数变量相关的读/写指令,若实现函数内嵌的相邻子函数中的前一个子函数内只有写指令发生在数组参数变量上,且实现函数内嵌的相邻子函数中的后一个子函数内只有读指令发生在数组参数变量上,则完成FIFO硬件通道的拟合,具体包括:
扫描实现函数内嵌的相邻子函数内每条与数组参数变量相关的读/写指令,并采用数组下标表达式分析模型,判断实现函数内嵌的相邻子函数是否是按地址顺序进行读写,若是则完成FIFO硬件通道的拟合。
可选地,所述数组下标表达式分析模型为:
其中,代表循环体内数组下标读写地址偏移量中的循环迭代值,代表除循环迭代值外的其他变量;/>代表循环体内数组下标读写地址偏移量中的常数,Li与LB均为布尔值,Li代表数组下标表达式是否是一维线性表达式,LB代表读取指令是否在循环体内。
根据本发明提供的具体实施例,本发明公开了以下技术效果:
本发明提供的一种面向FPGA的粗粒度FIFO硬件通道自动拟合方法,其优点主要体现在:1.提出一种基于编译表达式分析的数组读写顺序判断方法,并应用于高层次综合数据流粗粒度并行优化。相比以往方法,本发明提高了自动化程度,减少了用户的参与成本能够大大加快神经网络芯片的定制效率。2.提出一套自动数据流粗粒度优化的运行机制,能够极大提升固化加速产生硬件模块的运行性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的高层次综合工具流程以及本发明所处部分流程图;
图2为本发明提供的面向FPGA的粗粒度FIFO硬件通道自动拟合方法的流程示意图;
图3为本发明提供的函数内嵌示例图;
图4为本发明提供的调用图示例图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
本发明提供了一种面向FPGA的粗粒度FIFO硬件通道自动拟合方法,属于FPGA领域的HLS编译技术,适用于神经网络的硬件自动加速。
本发明提供了一种面向FPGA的粗粒度FIFO硬件通道自动拟合方法,即基于高层次综合的软件描述语言自动转换为硬件描述语言的方法,主要分为前端和后端,如图1所示。首先,借助Clang/LLVM编译器,将C/C++软件描述语言转换为中间描述语言,并进行相应的分析、转换、数据存储。之后,通过调度获得可并行执行的程序模块,绑定映射到具体的硬件运算单元,并最终生成硬件描述语言Verilog。本发明主要着眼于LLVM编译优化阶段,对中间描述语言进行自动分析,判断是否适合FIFO硬件通道的拟合,并最终映射到具体的FIFORAM硬件元件。
如图2所示,本发明提供的一种面向FPGA的粗粒度FIFO硬件通道自动拟合方法,包括:
步骤1:利用LLVM编译框架,通过函数(Function)、基本块(BasicBlock)、指令(Instruction)组成的三级结构获取数据流目标区域内的子函数调用及对应的调用(call)指令序列;其中,所述调用(call)指令序列包括n个子函数调用指令,具体为。
所述数据流目标区域为拟定要做数据流粗粒度优化的C/C++代码区域,该区域内只有子函数调用,没有其他的分支、循环等跳转结构,其代码示例如下所示。
步骤2:判断任一相邻子函数调用指令是否具有相同的数组参数变量P,若是则将具有相同的数组参数变量P的相邻子函数调用指令ci与ci+1对应的函数体内部的所有子函数调用全部实现函数内嵌(function inline),消除掉里面的函数嵌套,便于逐个判断每条作用于数组参数变量P的读/写(load/store)指令,以确定数组参数变量P在“单层函数”内的读写情况。
此步骤是先找到对应的子函数内部的内容,如果内部依然有子函数则需要继续将内部的子函数情况进行分析,即需要去分析最外层的子函数内部的所有内容。
具体的,消除掉里面的函数嵌套的过程为:如图3和图4所示,函数内嵌采用传统的调用图(call graph)技术,按从底到顶的遍历顺序,将有相同的数组参数变量的相邻子函数调用指令所对应的函数体内部的所有子函数调用替代为整个对应的函数体。经该步骤后,子函数fi与fi+1内部再没有嵌套的子函数调用。
步骤3:扫描实现函数内嵌的相邻子函数fi与fi+1内每条与数组参数变量P相关的读/写指令,若相邻子函数中的前一个子函数fi内只有写指令(store)发生在数组参数变量P上,且相邻子函数中的后一个子函数fi+1内只有读指令(load)发生在数组参数变量P上,则完成FIFO硬件通道的拟合。
该步骤确保数组参数变量P的操作在相邻两个子函数内,且按照先写后读的顺序操作。
基于变量的不同分类(循环体内的index递增变量、普通变量、常量)提出并采用的是数组下标表达式分析模型,如公式(1)所示。
(1)。
这数组下标表达式分析模型定义的是目标数组的读写地址的属性。代表循环体内数组下标读写地址偏移量中的循环迭代值,代表除循环迭代值外的其他变量;/>循环体内数组下标读写地址偏移量中的常数,Li与LB均为布尔(bool)值,,Li指的是该数组下标表达式是否是一维线性表达式,LB代表该读写指令是否在循环体内,其代码示例如下所示。
该代码示例为目标数组A的偏移量表达式,即数组下标表达式,i是,var是/>,4是/>。
扫描实现函数内嵌的相邻子函数内每条与数组参数变量P相关的读/写指令,并采用数组下标表达式分析模型以及步骤3.1-步骤3.4判断是否是按地址顺序进行读写,若是则完成FIFO硬件通道的拟合。
步骤3.1:利用LLVM编译框架扫描当前实现函数内嵌的子函数范围内的每条指令,对于与数组参数变量P相关的读/写指令,记录其对应公式(1)中的四个参数,即、/>、Li和LB。其中Li可根据以下简单规则进行判断,具体为:
如果出现变量(含index)与变量的乘除,则视Li为false;如果出现sin/cos/exp/log等非基本运算,同样视Li为false。
步骤3.2:如果Li为false,停止运算;否则执行步骤3.3。
步骤3.3:如果LB为false,则直接将相邻子函数的偏移量表达式进行减运算,判断结果是否为1。如果LB为true,则通过LLVM编译框架的phi指令溯源并获取到循环迭代变量的迭代值inc(上述示例中的5),通过产生新表达式,并与原表达式进行减运算,判断结果是否为1。若结果不是1则停止;若结果是1则执行步骤3.4。
在公式(1)中,本发明将表达式间的减运算近似表示为不同参数域内部的减运算,即index与index相减,变量与变量相减,常数与常数相减。以下述代码示例为例,其循环体内的偏移量计算是。因此,该目标数组的读写是按照地址顺序读写的。
步骤3.4:将目标数组转化为hls::stream类型,并将目标数组的写运算转换为stream的push操作,读运算转换为stream的pop操作。这里的hls::stream是HLS工具中的FIFO类型,在后端资源映射时会匹配为FIFO RAM硬件。
上述方法已经在多个卷积神经网络上进行了实验,结果都表明能显著地提升所得硬件加速器的执行效率。
本发明选取图像分类的卷积神经网络进行测试,这些卷积神经网络均是学术界可公开下载的图像分类模型。使用本发明的方法,可以显著减少协同仿真(co-simulation)中的延迟。
cosim是一种常见的验证方法,可以在设计过程中对硬件系统进行模拟和调试,以确保系统可以正常运行。Co-simulation latency是指C模型和寄存器传输级别(RegisterTransfer Level,RTL)模型之间的延迟差异,该卷积神经网络使用本发明前后仿真的cosimlatency对比,如表1所示,这也意味着本发明是在其输入数据全部就绪时就可以进行计算,数据计算操作也会在数据准备好之后立刻进行,显著提升硬件资源的利用率,充分利用FPGA高并发执行的优势。
表1 使用本发明前后仿真的cosim latency对比
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。
Claims (2)
1.一种面向FPGA的粗粒度FIFO硬件通道自动拟合方法,其特征在于,包括:
利用LLVM编译框架,通过函数、基本块和指令组成的三级结构获取数据流目标区域内的子函数调用及对应的调用指令序列;所述调用指令序列包括n个子函数调用指令;所述数据流目标区域为拟定要做数据流粗粒度优化的C/C++代码区域;
判断任一相邻子函数调用指令是否具有相同的数组参数变量,若是则将具有相同的数组参数变量的相邻子函数调用指令所对应的函数体内部的所有子函数调用实现函数内嵌;
扫描实现函数内嵌的相邻子函数内每条与数组参数变量相关的读/写指令,若实现函数内嵌的相邻子函数中的前一个子函数内只有写指令发生在数组参数变量上,且实现函数内嵌的相邻子函数中的后一个子函数内只有读指令发生在数组参数变量上,则完成FIFO硬件通道的拟合;
其中,若是则将具有相同的数组参数变量的相邻子函数调用指令所对应的函数体内部的所有子函数调用实现函数内嵌,具体包括:
采用调用图技术,按从底到顶的遍历顺序,将有相同的数组参数变量的相邻子函数调用指令所对应的函数体内部的所有子函数调用替代为整个对应的函数体,实现函数内嵌;
扫描实现函数内嵌的相邻子函数内每条与数组参数变量相关的读/写指令,若实现函数内嵌的相邻子函数中的前一个子函数内只有写指令发生在数组参数变量上,且实现函数内嵌的相邻子函数中的后一个子函数内只有读指令发生在数组参数变量上,则完成FIFO硬件通道的拟合,具体包括:
扫描实现函数内嵌的相邻子函数内每条与数组参数变量相关的读/写指令,并采用数组下标表达式分析模型,判断实现函数内嵌的相邻子函数是否是按地址顺序进行读写,若是则完成FIFO硬件通道的拟合。
2.根据权利要求1所述的一种面向FPGA的粗粒度FIFO硬件通道自动拟合方法,其特征在于,所述数组下标表达式分析模型为:
<offsetindex,offsetvariable,offsetscalar,Li,LB>;
其中,offsetindex代表循环体内数组下标读写地址偏移量中的循环迭代值,offsetvariable代表除循环迭代值外的其他变量;offsetscalar代表循环体内数组下标读写地址偏移量中的常数,Li与LB均为布尔值,Li代表数组下标表达式是否是一维线性表达式,LB代表读取指令是否在循环体内。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310903805.6A CN116629353B (zh) | 2023-07-24 | 2023-07-24 | 面向fpga的粗粒度fifo硬件通道自动拟合方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310903805.6A CN116629353B (zh) | 2023-07-24 | 2023-07-24 | 面向fpga的粗粒度fifo硬件通道自动拟合方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116629353A CN116629353A (zh) | 2023-08-22 |
CN116629353B true CN116629353B (zh) | 2023-11-07 |
Family
ID=87602934
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310903805.6A Active CN116629353B (zh) | 2023-07-24 | 2023-07-24 | 面向fpga的粗粒度fifo硬件通道自动拟合方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116629353B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015087957A1 (ja) * | 2013-12-12 | 2015-06-18 | 国立大学法人 東京工業大学 | 論理回路生成装置及び方法 |
CN107179932A (zh) * | 2017-05-26 | 2017-09-19 | 福建师范大学 | 基于fpga高层次综合指令的优化方法及其系统 |
CN110187988A (zh) * | 2019-06-06 | 2019-08-30 | 中国科学技术大学 | 适用于虚函数和函数指针的静态函数调用图构建方法 |
CN113095422A (zh) * | 2021-04-21 | 2021-07-09 | 广东电网有限责任公司 | 一种实现自动程式化下令的方法及装置 |
WO2022101515A1 (en) * | 2020-11-16 | 2022-05-19 | UMNAI Limited | Method for an explainable autoencoder and an explainable generative adversarial network |
-
2023
- 2023-07-24 CN CN202310903805.6A patent/CN116629353B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015087957A1 (ja) * | 2013-12-12 | 2015-06-18 | 国立大学法人 東京工業大学 | 論理回路生成装置及び方法 |
CN107179932A (zh) * | 2017-05-26 | 2017-09-19 | 福建师范大学 | 基于fpga高层次综合指令的优化方法及其系统 |
CN110187988A (zh) * | 2019-06-06 | 2019-08-30 | 中国科学技术大学 | 适用于虚函数和函数指针的静态函数调用图构建方法 |
WO2022101515A1 (en) * | 2020-11-16 | 2022-05-19 | UMNAI Limited | Method for an explainable autoencoder and an explainable generative adversarial network |
CN113095422A (zh) * | 2021-04-21 | 2021-07-09 | 广东电网有限责任公司 | 一种实现自动程式化下令的方法及装置 |
Non-Patent Citations (1)
Title |
---|
基于FPGA的人工神经网络系统的实现方法;薛维琴;李莉华;戴明;;电子设计工程(第09期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN116629353A (zh) | 2023-08-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101763447B (zh) | 三维造型软件与有限元分析软件之间数据自动转换的方法 | |
CN107480789B (zh) | 一种深度学习模型的高效转换方法及装置 | |
Erbas et al. | A framework for system-level modeling and simulation of embedded systems architectures | |
CN111967468A (zh) | 一种基于fpga的轻量级目标检测神经网络的实现方法 | |
CN113392973B (zh) | 一种基于fpga的ai芯片神经网络加速方法 | |
JP5312151B2 (ja) | 半導体設計支援装置、高位合成方法及び半導体設計支援プログラム | |
CN110083880A (zh) | 基于matlab与abaqus的联合优化设计方法 | |
WO2024045436A1 (zh) | 图形化高层次综合电路性能分析方法、系统、装置及介质 | |
CN105302624B (zh) | 一种可重构编译器中循环流水迭代间启动间距自动分析方法 | |
WO2023193547A1 (zh) | 用于生成和存储电路仿真过程中的波形数据的方法、电子设备和存储介质 | |
CN107273569A (zh) | 基于网格变形技术的气动外形减阻优化方法 | |
CN105260222B (zh) | 一种可重构编译器中循环流水迭代间启动间距优化方法 | |
CN116629353B (zh) | 面向fpga的粗粒度fifo硬件通道自动拟合方法 | |
Sen et al. | Computer vision on FPGAs: Design methodology and its application to gesture recognition | |
Ebeid et al. | HDL code generation from UML/MARTE sequence diagrams for verification and synthesis | |
Coussy et al. | An introduction to the SystemC synthesis subset standard | |
CN103729180A (zh) | 一种快速开发cuda并行程序的方法 | |
CN112163270B (zh) | 基于ANSA和StarCCM+平台的CFD自动建模及分析系统与方法 | |
Butt et al. | Design space exploration and synthesis for digital signal processing algorithms from simulink models | |
CN114861871A (zh) | 一种卷积神经网络在加速器上的推理性能评估系统 | |
Erkkinen | Embedded control system implementation and modeling issues | |
CN116644580B (zh) | 一种电子产品模型设计自动化方法、装置、设备和介质 | |
Minnen | CNN Accelerator Throughput Improvement using High-Level Synthesis for FPGA | |
CN113408223B (zh) | 一种基于智能分析的芯片设计方法 | |
JP5262678B2 (ja) | 動作合成システム、動作合成方法、及び動作合成用プログラム |
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 |