CN113392973B - 一种基于fpga的ai芯片神经网络加速方法 - Google Patents

一种基于fpga的ai芯片神经网络加速方法 Download PDF

Info

Publication number
CN113392973B
CN113392973B CN202110709462.0A CN202110709462A CN113392973B CN 113392973 B CN113392973 B CN 113392973B CN 202110709462 A CN202110709462 A CN 202110709462A CN 113392973 B CN113392973 B CN 113392973B
Authority
CN
China
Prior art keywords
layer
yolo
hls
neural network
data
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
Application number
CN202110709462.0A
Other languages
English (en)
Other versions
CN113392973A (zh
Inventor
李贺
李柔仪
朱璟
余荣
谭北海
蔡健苹
韩晓岚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangdong University of Technology
Original Assignee
Guangdong University of Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guangdong University of Technology filed Critical Guangdong University of Technology
Priority to CN202110709462.0A priority Critical patent/CN113392973B/zh
Publication of CN113392973A publication Critical patent/CN113392973A/zh
Application granted granted Critical
Publication of CN113392973B publication Critical patent/CN113392973B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Molecular Biology (AREA)
  • Artificial Intelligence (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

本发明公开了一种基于FPGA的AI芯片神经网络加速方法,在训练YOLO网络时进行量化训练,将神经网络的浮点算法转换为定点,大大减少内存的占用,提升计算速度及带宽,达到降低功耗的效;采用HLS开发方式基于Darknet框架快速生成YOLO卷积神经网络加速器IP核,同时对卷积计算进行了变换,大大减少了计算量级;卷积计算消耗的乘法器资源大大减少,同时在保证高精度的基础上,FPGA的硬件资源利用率大大提高,大幅度降低了计算产生的功耗。

Description

一种基于FPGA的AI芯片神经网络加速方法
技术领域
本发明涉及神经网络加速领域,具体涉及一种基于FPGA的AI芯片神经网络加速方法。
背景技术
随着人工智能的发展,卷积神经网络在语音识别、图像识别、图像分割、自然语言处理等方面得到了广泛的应用。作为一种计算密集型极大的算法,其包含了大量的卷积运算、加法运算、非线性化运算和池化运算,涉及大量的信号连接,使得神经网络参数过于庞大,运算过程需要大量的算力,导致运行速度慢。因此,优化神经网络模型以及选择合适的CNN计算硬件可以大大提高神经网络的计算速度,获得算法和硬件的最佳性能。
现有的适用于CNN高密度计算的主流硬件有GPU、ASIC和FPGA。在GPU方面,虽然GPU在并行计算方面有着天然的优势,但其芯片功耗较大,过大的体积难以适用于移动平台,无法满足一些低特定场景下的CNN计算要求。且GPU的加速设计是算法适应硬件结构,硬件结构固定,在加速设计时需要调整算法来适应GPU的硬件。在ASIC方面,使用ASIC平台设计具有可定制化的优点,但ASIC加速器的硬件设计与开发周期较长,成本高昂,产品的可迁移性低,硬件生成后通常无法改变,灵活性不高。与前两者相比,现场可编程门列FPGA作为并行化的计算密集型加速硬件,具有丰富的片上硬件逻辑资源、灵活的线路连接特性以及良好的内存带宽等优点,是CNN加速实现平台的理想选择。
现有的适用于CNN加速计算主要通过GPU、ASIC和FPGA实现,其缺点如下:
基于VGG网络加速的FPGA加速器,针对VGG网络特点进行了特定优化,在Arria10GX1150 FPGA上实现了高达1 790GOP/s的计算能力,但是VGG网络加速将耗费更多计算资源,并且使用了更多的参数,导致更多的内存占用,性能低,计算速度慢。且该加速器只能支持单种特定网络加速,无法满足通用化的需求。
基于GPU设计硬件加速器,虽然GPU在并行计算方面有着天然的优势,但是在成本和功耗方面有着很大的不足:芯片功耗较大,过大的体积难以适用于移动平台,无法满足一些特定场景下的CNN计算要求。且GPU的加速设计是算法适应硬件结构,硬件结构固定,在加速设计时需要调整算法来适应GPU的硬件,设计灵活性差。
基于FPGA的RTL开发方式可以为特定的CNN模型获得出色的吞吐量和能效,但这需要对算法和FPGA系统架构有深刻的了解。一个基于RTL现场可编程门阵列的特定CNN加速器的开发周期非常长;从研究深度学习算法、基于模拟的功能设计、优化可综合架构、编译集成的现场可编程门阵列系统到时序分析和功能验证,流程繁多且复杂,开发效率低。
基于ASIC设计芯片具有可定制化的优点,但ASIC加速器的硬件设计与开发周期较长,成本高昂,产品的可迁移性低,硬件生成后通常无法改变,灵活性不高。
发明内容
本发明的目的是提供一种基于FPGA的AI芯片神经网络加速方法,对神经网络进行高效压缩加速,大大提高了计算效率,降低研发成本。
为了实现上述任务,本发明采用以下技术方案:
一种基于FPGA的AI芯片神经网络加速方法,包括:
在服务器对YOLO神经网络进行训练,训练过程中对YOLO中每一层卷积层或全连接层参数进行处理,在每一个卷积层、全连接层的前后分别引入了量化层和反量化层,量化层为数据送入卷积层或全链接层时,它将32位浮点转换为16位,反量化层为从卷积层或全链接层取出数据时,它将16位定点转换为32位浮点;
其中,在量化层中对数据进行量化的公式为:
Dq=round(qDDf-zpD)
上式中,Dq为量化张量,
Figure BDA0003132888220000021
Df为浮点张量,qD为比例因子,zpD为基准,round为取整函数;
将卷积层或全连接层参数x、w、b代入到上述公式中,即将上式中的所有参数D分别替换为x、w、b,得到x、w、b的量化数据,基于这些量化数据,得到卷积层与全连接层量化公式:
Figure BDA0003132888220000031
上式中,b为偏置、x为输入量、w为权重、yq为输出量;
基于Darknet框架对YOLO进行量化训练完成后,借助HLS工具将YOLO生成YOLO加速器IP核;
搭建FPGA加速器整体架构,整个架构包括了输入缓冲器、输出缓冲器和权重缓冲器的缓存结构,用来对输入、输出、权重数据进行缓存;首先将YOLO训练好的权重存储到FPGA中的权重缓冲器;摄像头采集到输入数据以后,首先在预处理模块对输入数据进行预处理,处理之后将输入数据、权重数据通过总线取到YOLO加速器IP核中,进行加速运算;其中卷积计算将进行如下变换计算:
Y=AT[[GgGT]⊙[BTdB]]A
其中,⊙表示元素级的乘法,g表示权重参数,d表示输入数据,Y表示输出数据,即卷积计算后的结果;
其中各系数矩阵大小为:
Figure BDA0003132888220000032
Figure BDA0003132888220000033
Figure BDA0003132888220000034
g=[g0 g1 g2]T
d=[d0 d1 d2 d3]T
d0,d1,d2,d3表示输入数据,g0,g1,g2表示卷积层的权重参数。
进一步地,通过深度学习框架加载神经网络,重写网络以插入Quantize和Dequantize层,并将卷积层或全连接层参数转换为16位定点格式。
进一步地,所述借助HLS工具将YOLO生成YOLO加速器IP核,包括:
建立HLS工程;按照处理流程,确定功能模块,选择时钟周期和时序裕量;使用C/C++高级编程语言和HLS组件编写程序,设计功能模块与测试模块,创建合格的HLS工程;
运行C仿真;在确保设计正确的前提下,创建HLS工程之后,使用测试模块来对功能模块进行功能仿真;
调试代码;如果C仿真过程中出现问题,使用HLS中集成的调试器,对每个功能模块或测试模块进行调试;
综合设计;经仿真调试,保证测试模块与功能模块无误后,对设计进行综合,生成系列报告文件和RTL设计文件;
优化设计;按照设计要求,在统筹兼顾性能、面积及资源利用率多方面因素的情况下,调整设计并重新综合,得到最满意的设计结果;
运行C/RTL联合仿真;采用HLS工具,RTL级别的测试代码可通过C测试代码由HLS自动转化而来,在运行C和RTL联合仿真过程中,如果仿真测试失败,那么需要根据错误提示对设计进行修改,并重新执行综合及仿真过程;反之,就可以直接进行下一步操作;
导出RTL实现;当完成设计后,借助HLS的功能优势,可以通过IP核对“RTL实现”进行导出,导出的IP核包含了驱动、参考文档及使用示例相关的文件;
系统集成;在相关的开发环境中,对生成的IP核进行系统集成。
进一步地,所述预处理模块对输入数据进行预处理的过程为,将输入数据统一像素大小为416*416。
进一步地,所述YOLO本身和输入/输出采用32位浮点格式。
与现有技术相比,本发明具有以下技术特点:
相比RTL从底层硬件语言进行开发的方式,本发明采用HLS之后,代码量明显减少,编程人员的工作效率得到提升,大大加速了FPGA的开发时间,使得开发具有了更强的灵活性和高效性,同时本发明对于神经网络的HLS开发的优化使得FPGA的开发高效性更进一步。此外,与现有适用于CNN的加速硬件相比,本发明:
1.高能效性。由于FPGA可以直接对逻辑功能进行硬件编程和快速优化,给人工智能领域专用的体系结构设计带来了巨大的优势。本发明采用基于FPGA的HLS方式对各类算法进行加速,与同算力的GPU平台相比可以获得十倍以上的能效提升。
2.高并行化。由于FPGA集成了丰富的逻辑硬件单元,可以使用并行化算法实现硬件逻辑结构的快速优化,本发明基于AI芯片的CNN加速器使用流水线架构以及多个层面实现的并行计算可以有效提升大多数人工智能算法的并行性。
3.灵活性。FPGA的可重构特性是其区别于ASIC硬件的重要天然优势之一。由于FPGA的可重构性,它可以实现面向特定领域的快速定制。在硬件设计和应用程序设计完成后,如性能、功耗、面积等指标未达到理想状态,则可针对FPGA进行快速软硬件迭代优化,重新配置使基于FPGA的硬件加速器能够不断演进,满足变化的需求。
附图说明
图1为利用HLS工具将Darknet框架和YOLO生成卷积加速器IP核的示意图;
图2为加速器的整体架构示意图。
具体实施方式
本发明提供一种基于FPGA芯片的神经网络加速方法,该方法可对卷积神经网络进行量化后布置到边缘AI芯片中进行高效计算。同时本方法采取高层次综合方式设计卷积神经网络加速器IP核,实现了快速开发与设计。在卷积神经网络计算过程中采用算法设计减少计算复杂度,达到神经网络加速的目的。在保证精度的前提下对神经网络进行压缩加速,实现在嵌入式设备上部署人工智能算法,主要应用于边缘场景的AI算法实现。与此同时,本方法利用FPGA的可重构性实现软硬件联合设计,有效解决了其他CNN加速硬件设计不可变的缺点,满足变化的需求。
本发明提供了一种基于FPGA的AI芯片神经网络加速方法,使用高层次综合(HLS)开发方式基于进行硬件加速,实现神经网络在边缘设备的低功耗应用。在该实施例中,本方法建立在FPGA卷积加速器架构和YOLO目标检测算法的基础上,在本方法中训练阶段在云端服务器完成,其中结合FPGA处理数据的特性对YOLO网络中的参数进行量化训练,将原本32位的浮点数转换成16位的定点数进行计算,大大减少了参数存储量和计算的量级。另外本方法中基于YOLO底层框架Darknet借助HLS工具生成YOLO加速器IP核,大大加速了开发流程。最后在卷积计算阶段进行算法设计,实现了YOLO神经网络在FPGA的加速计算。具体技术方案如下:
步骤1,训练神经网络并对其进行量化训练
在服务器对YOLO神经网络进行训练,训练过程中对YOLO中每一层卷积层或全连接层参数进行处理,将神经网络的32位浮点数据转换为16位定点,在每一个卷积层、全连接层的前后分别引入了量化层Quantize和反量化层Dequantize,Quantize为数据送入卷积层或全链接层时,它将32位浮点转换为16位,Dequantize为从卷积层或全链接层取出数据时,它将16位定点转换为32位浮点;模型本身和输入/输出采用32位浮点格式。通过深度学习框架加载神经网络,重写网络以插入Quantize和Dequantize层,并将卷积层或全连接层参数转换为16位定点格式。量化后的参数张量是一个高度稀疏的有很多共享权值的矩阵,对非零参数还可以进行定点压缩,以获得更高的压缩率。
根据数据量化公式:
Figure BDA0003132888220000061
Dq为量化张量、Df为浮点张量、qD为比例因子、zpD为基准、round为取整函数,量化的位数为n,本方法中n取16。
将x、w、b代入到数据量化公式(1)中(即将公式(1)中的字母D更换为x、w、b,对应参数的含义不变)分别得到针对于x、w、b的量化数据,将他们的量化数据代入(2)中得到输出y的量化数据。得到卷积层与全连接层量化公式(3):
Figure BDA0003132888220000062
Figure BDA0003132888220000071
其中,b为偏置、x为输入量、w为权重、yf为输出量,qy是输出数据y的比例因子。
步骤2,基于Darknet框架生成YOLO加速器IP核
基于Darknet框架对YOLO进行量化训练完成后,借助HLS工具将YOLO生成YOLO加速器IP核。Darknet框架是YOLO采用的一个轻量级神经网络框架,用C++编写完成。HLS是将C++语言进行综合生成硬件描述语言和IP核的开发工具。HLS开发方式就是使用HLS工具把C++语言转换为硬件设计架构。
具体流程图如图1,实现过程如下:
①建立HLS工程。按照处理流程,确定功能模块,选择时钟周期和时序裕量。使用C/C++等高级编程语言和HLS组件编写程序,设计功能模块与测试模块,创建合格的HLS工程。
②运行C仿真。在确保设计正确的前提下,创建HLS工程之后,就可以使用测试模块来对功能模块进行功能仿真。
③调试代码。如果C仿真过程中出现问题,可以使用HLS中集成的调试器,对每个功能模块或测试模块进行调试。
④综合设计。经仿真调试,保证测试模块与功能模块无误后,可以对设计进行综合,生成系列报告文件和RTL设计文件。
⑤优化设计。按照设计要求,在统筹兼顾性能、面积及资源利用率等多方面因素的情况下,调整设计并重新综合,得到最满意的设计结果。
⑥运行C/RTL联合仿真。C仿真就是在高级语言层次上对测试模块及功能模块进行的仿真。采用HLS工具,RTL级别的测试代码可通过C测试代码由HLS自动转化而来,在运行C和RTL联合仿真过程中,如果仿真测试失败,那么需要根据错误提示对设计进行修改,并重新执行综合及仿真过程;反之,就可以直接进行下一步操作。
⑦观察仿真结果。通过HLS的帮助,能够对C和RTL联合仿真的过程进行跟踪记录,有利于掌握数字电路运行的时序细节。
⑧导出RTL实现。当完成设计后,借助HLS的功能优势,可以通过IP核对“RTL实现”进行导出,导出的IP核包含了驱动、参考文档及使用示例等相关的文件。
⑨系统集成。可以在相关的开发环境中,对生成的IP核进行系统集成。
(3)搭建FPGA加速器整体架构
本发明中的神经网络加速器使用流水线架构以及多个层面实现的并行计算,整个架构包括了输入缓冲器、输出缓冲器和权重缓冲器(buffer)的缓存结构,用来对输入、输出、权重数据进行缓存。首先将YOLO训练好的权重存储到FPGA中的权重缓冲器,在实际应用中,摄像头采集到输入数据以后,首先在预处理模块对输入数据进行预处理,统一像素大小:416*416。处理之后将输入数据、权重数据通过总线取到YOLO加速器IP核中,进行加速运算。其中卷积计算将进行如下变换计算。加速器的整体架构如图2所示。
(4)对卷积计算进行变换计算
在本设计中,卷积神经网络每个平面都是一个二维平面,因此通过以下算法进行二维卷积计算。对于一个卷积层,其输入是(m+r-1)×(n+s-1),在卷积层中进行卷积运算的卷积核大小为r×s,输出是m×n,具体卷积计算表示为:F(m×n,r×s),以上大小程度的卷积计算中乘法数量为:
u(F(m×n,r×s))=u(F(m,r))*u(F(n,s))=(m+r-1)(n+s-1)
其中,u()表示卷积计算需要进行的乘法运算的数量。
如果使用传统的滑动窗口进行卷积计算的话,则需要m×n×r×s次乘法。本算法将卷积乘法数量减少至(m+r-1)(n+s-1),具体操作如下:
卷积计算公式如下:
Figure BDA0003132888220000081
其中:
Figure BDA0003132888220000082
Figure BDA0003132888220000083
其中,d0,d1,d2,d3表示输入数据,g0,g1,g2表示卷积层的权重参数,通过步骤1训练得到;所以这个计算中只用了4次乘法,可以减少乘法操作次数。
对数据进行变换计算的公式为:
Y=AT[[GgGT]⊙[BTdB]]A
其中,⊙表示元素级的乘法,g表示权重参数,d表示输入数据,Y表示输出数据,即卷积计算后的结果。
其中各系数矩阵大小为:
Figure BDA0003132888220000091
Figure BDA0003132888220000092
Figure BDA0003132888220000093
g=[g0 g1 g2]T
d=[d0 d1 d2 d3]T
本发明通过卷积算法的设计,可通过减少乘法次数来实现提速。一般的乘法需要借助FPGA中的DSP来计算,如果两个浮点数较大,则需要更多的乘法。本算法在小块上计算最小复杂度的卷积,使得它们在小滤波器和小批量的情况下速度很快,降低计算复杂度,节省FPGA的资源。它将数据映射到另一个空间,用加法和减法代替部分乘法,并在“加减运算速度远高于乘法运算”的前提下达到了明显的加速效果。
本发明方法在训练YOLO网络时进行量化训练,将神经网络的浮点算法转换为定点,大大减少内存的占用,提升计算速度及带宽,达到降低功耗的效果。
本发明所采用的HLS开发方式基于Darknet框架快速生成YOLO卷积神经网络加速器IP核,同时对卷积计算进行了变换,大大减少了计算量级。卷积计算消耗的乘法器资源大大减少,同时在保证高精度的基础上,FPGA的硬件资源利用率大大提高,大幅度降低了计算产生的功耗。
以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。

Claims (2)

1.一种基于FPGA的AI芯片神经网络加速方法,其特征在于,包括:
在服务器对YOLO神经网络进行训练,训练过程中对YOLO中每一层卷积层或全连接层参数进行处理,在每一个卷积层、全连接层的前后分别引入了量化层和反量化层,量化层为数据送入卷积层或全连接层时,它将32位浮点转换为16位,反量化层为从卷积层或全连接层取出数据时,它将16位定点转换为32位浮点;
其中,在量化层中对数据进行量化的公式为:
Dq=round(qDDf-zpD)
上式中,Dq为量化张量,
Figure FDA0003949627160000011
Df为浮点张量,qD为比例因子,zpD为基准,round为取整函数,量化的位数为n;
将卷积层或全连接层参数x、w、b代入到上述公式中,即将上式中的所有参数D分别替换为x、w、b,得到x、w、b的量化数据,基于这些量化数据,得到卷积层与全连接层量化公式:
Figure FDA0003949627160000012
上式中,b为偏置、x为输入量、w为权重、yq为输出量;qy是输出数据y的比例因子;
基于Darknet框架对YOLO进行量化训练完成后,借助HLS工具将YOLO生成YOLO加速器IP核;
搭建FPGA加速器整体架构,整个架构包括了输入缓冲器、输出缓冲器和权重缓冲器的缓存结构,用来对输入、输出、权重数据进行缓存;首先将YOLO训练好的权重存储到FPGA中的权重缓冲器;摄像头采集到输入数据以后,首先在预处理模块对输入数据进行预处理,处理之后将输入数据、权重数据通过总线取到YOLO加速器IP核中,进行加速运算;其中卷积计算将进行如下变换计算:
Y=AT[[GgGT]⊙[BTdB]]A
其中,⊙表示元素级的乘法,g表示权重参数,d表示输入数据,Y表示输出数据,即卷积计算后的结果;
其中各系数矩阵大小为:
Figure FDA0003949627160000021
Figure FDA0003949627160000022
Figure FDA0003949627160000023
g=[g0 g1 g2]T
d=[d0 d1 d2 d3]T
d0,d1,d2,d3表示输入数据,g0,g1,g2表示卷积层的权重参数;
通过深度学习框架加载神经网络,重写网络以插入量化层和反量化层,并将卷积层或全连接层参数转换为16位定点格式;
所述预处理模块对输入数据进行预处理的过程为,将输入数据统一像素大小为416*416;
所述YOLO本身和输入/输出采用32位浮点格式。
2.根据权利要求1所述的基于FPGA的AI芯片神经网络加速方法,其特征在于,所述借助HLS工具将YOLO生成YOLO加速器IP核,包括:
建立HLS工程;按照处理流程,确定功能模块,选择时钟周期和时序裕量;使用C/C++高级编程语言和HLS组件编写程序,设计功能模块与测试模块,创建合格的HLS工程;
运行C仿真;在确保设计正确的前提下,创建HLS工程之后,使用测试模块来对功能模块进行功能仿真;
调试代码;如果C仿真过程中出现问题,使用HLS中集成的调试器,对每个功能模块或测试模块进行调试;
综合设计;经仿真调试,保证测试模块与功能模块无误后,对设计进行综合,生成系列报告文件和RTL设计文件;
优化设计;按照设计要求,在统筹兼顾性能、面积及资源利用率多方面因素的情况下,调整设计并重新综合,得到最满意的设计结果;
运行C/RTL联合仿真;采用HLS工具,RTL级别的测试代码可通过C测试代码由HLS自动转化而来,在运行C和RTL联合仿真过程中,如果仿真测试失败,那么需要根据错误提示对设计进行修改,并重新执行综合及仿真过程;反之,就可以直接进行下一步操作;
导出RTL实现;当完成设计后,借助HLS的功能优势,可以通过IP核对“RTL实现”进行导出,导出的IP核包含了驱动、参考文档及使用示例相关的文件;
系统集成;在相关的开发环境中,对生成的IP核进行系统集成。
CN202110709462.0A 2021-06-25 2021-06-25 一种基于fpga的ai芯片神经网络加速方法 Active CN113392973B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110709462.0A CN113392973B (zh) 2021-06-25 2021-06-25 一种基于fpga的ai芯片神经网络加速方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110709462.0A CN113392973B (zh) 2021-06-25 2021-06-25 一种基于fpga的ai芯片神经网络加速方法

Publications (2)

Publication Number Publication Date
CN113392973A CN113392973A (zh) 2021-09-14
CN113392973B true CN113392973B (zh) 2023-01-13

Family

ID=77623973

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110709462.0A Active CN113392973B (zh) 2021-06-25 2021-06-25 一种基于fpga的ai芯片神经网络加速方法

Country Status (1)

Country Link
CN (1) CN113392973B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114492769B (zh) * 2022-04-11 2022-08-12 飞腾信息技术有限公司 数据处理方法、相关设备及系统
CN114997386B (zh) * 2022-06-29 2024-03-22 桂林电子科技大学 一种基于多fpga异构架构的cnn神经网络加速设计方法
CN116737382B (zh) * 2023-06-20 2024-01-02 中国人民解放军国防科技大学 一种基于面积折叠的神经网络推理加速方法
CN117494759A (zh) * 2023-11-24 2024-02-02 深圳市蓝鲸智联科技股份有限公司 一种微型硬件机器学习方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109902745A (zh) * 2019-03-01 2019-06-18 成都康乔电子有限责任公司 一种基于cnn的低精度训练与8位整型量化推理方法
CN110334802A (zh) * 2019-05-23 2019-10-15 腾讯科技(深圳)有限公司 一种神经网络模型的构建方法、装置、设备及存储介质
CN111414994A (zh) * 2020-03-03 2020-07-14 哈尔滨工业大学 一种基于FPGA的Yolov3网络计算加速系统及其加速方法
CN111459877A (zh) * 2020-04-02 2020-07-28 北京工商大学 基于FPGA加速的Winograd YOLOv2目标检测模型方法
CN112686365A (zh) * 2019-10-18 2021-04-20 华为技术有限公司 运行神经网络模型的方法、装置和计算机设备

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109146067B (zh) * 2018-11-19 2021-11-05 东北大学 一种基于FPGA的Policy卷积神经网络加速器
CN110516334B (zh) * 2019-08-16 2021-12-03 浪潮电子信息产业股份有限公司 基于硬件环境的卷积计算仿真测试方法、装置及相关设备
CN111488983B (zh) * 2020-03-24 2023-04-28 哈尔滨工业大学 一种基于fpga的轻量级cnn模型计算加速器
CN111967468B (zh) * 2020-08-10 2024-06-14 东南大学 一种基于fpga的轻量级目标检测神经网络的实现方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109902745A (zh) * 2019-03-01 2019-06-18 成都康乔电子有限责任公司 一种基于cnn的低精度训练与8位整型量化推理方法
CN110334802A (zh) * 2019-05-23 2019-10-15 腾讯科技(深圳)有限公司 一种神经网络模型的构建方法、装置、设备及存储介质
CN112686365A (zh) * 2019-10-18 2021-04-20 华为技术有限公司 运行神经网络模型的方法、装置和计算机设备
CN111414994A (zh) * 2020-03-03 2020-07-14 哈尔滨工业大学 一种基于FPGA的Yolov3网络计算加速系统及其加速方法
CN111459877A (zh) * 2020-04-02 2020-07-28 北京工商大学 基于FPGA加速的Winograd YOLOv2目标检测模型方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于HSL的Tiny-yolo卷积神经网络加速研究;张丽丽;《中国优秀硕士学位论文电子期刊库》;20180615;第36-38页 *

Also Published As

Publication number Publication date
CN113392973A (zh) 2021-09-14

Similar Documents

Publication Publication Date Title
CN113392973B (zh) 一种基于fpga的ai芯片神经网络加速方法
CN111459877B (zh) 基于FPGA加速的Winograd YOLOv2目标检测模型方法
Mittal A survey of FPGA-based accelerators for convolutional neural networks
Guo et al. A survey of FPGA-based neural network accelerator
Gao et al. DeltaRNN: A power-efficient recurrent neural network accelerator
US20190286973A1 (en) Hardware accelerated neural network subgraphs
CN111178518A (zh) 一种基于fpga的软硬件协同的加速方法
Yang et al. A fully onchip binarized convolutional neural network fpga impelmentation with accurate inference
CN111414994B (zh) 一种基于FPGA的Yolov3网络计算加速系统及其加速方法
CN111967468A (zh) 一种基于fpga的轻量级目标检测神经网络的实现方法
Bao et al. A power-efficient optimizing framework fpga accelerator based on winograd for yolo
Siddegowda et al. Neural network quantization with ai model efficiency toolkit (aimet)
CN113792621B (zh) 一种基于fpga的目标检测加速器设计方法
Shahshahani et al. Memory optimization techniques for fpga based cnn implementations
CN110490308B (zh) 加速库的设计方法、终端设备及存储介质
Jiang et al. Optimized FPGA-based deep learning accelerator for sparse CNN using high bandwidth memory
Wu Review on FPGA-based accelerators in deep learning
Zhang et al. A-u3d: A unified 2d/3d cnn accelerator on the versal platform for disparity estimation
CN111914867A (zh) 一种基于fpga的卷积神经网络ip核设计
Lu et al. SparseNN: A performance-efficient accelerator for large-scale sparse neural networks
CN116227332A (zh) 一种transformer混合比特量化方法及系统
CN115170381A (zh) 一种基于深度学习的视觉slam加速系统及方法
CN114897133A (zh) 一种通用可配置的Transformer硬件加速器及其实现方法
Wang et al. Acceleration and implementation of convolutional neural network based on FPGA
Juracy A framework for fast architecture exploration of convolutional neural network accelerators

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