CN109583006A - 一种基于循环切割和重排的现场可编程门阵列卷积层的动态优化方法 - Google Patents

一种基于循环切割和重排的现场可编程门阵列卷积层的动态优化方法 Download PDF

Info

Publication number
CN109583006A
CN109583006A CN201811201717.7A CN201811201717A CN109583006A CN 109583006 A CN109583006 A CN 109583006A CN 201811201717 A CN201811201717 A CN 201811201717A CN 109583006 A CN109583006 A CN 109583006A
Authority
CN
China
Prior art keywords
convolutional layer
independent
programmable gate
circulation
unrelated
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
Application number
CN201811201717.7A
Other languages
English (en)
Other versions
CN109583006B (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.)
Zhejiang University of Technology ZJUT
Original Assignee
Zhejiang University of Technology ZJUT
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 Zhejiang University of Technology ZJUT filed Critical Zhejiang University of Technology ZJUT
Priority to CN201811201717.7A priority Critical patent/CN109583006B/zh
Publication of CN109583006A publication Critical patent/CN109583006A/zh
Application granted granted Critical
Publication of CN109583006B publication Critical patent/CN109583006B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • 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)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)
  • Image Analysis (AREA)

Abstract

一种基于循环切割和重排的现场可编程门阵列卷积层的动态优化方法,使用高层次综合工具在现场可编程门阵列平台上进行开发,基于卷积循环切割和重排对卷积层的进行优化,调整其资源占用及处理性能,充分发挥现场可编程门阵列的并行处理能力,提升卷积神经网络网络性能。本发明提供一种基于循环切割和重排的现场可编程门阵列卷积层的动态优化方法,其可极大地提升内部计算速率和效率,从而缩短计算时间,提升效能。

Description

一种基于循环切割和重排的现场可编程门阵列卷积层的动态 优化方法
技术领域
本发明属于数字图像处理、模式识别技术领域,特别是针对卷积神经网络算法中核心部分卷积层的设计,涉及一种基于循环切割和重排的现场可编程门阵列卷积层的动态优化方法。
背景技术
卷积神经网络在人工神经网络的基础上发展起来的一种多层感知器,能够很好地适应图像的平移、比例缩放以及旋转等形式的变形,是提取图像特征的灵敏传感器,可以通过模拟生物中的视神经行为来达到很高的准确率,被广泛应用于在机器视觉、模式识别、视频监控、图像搜索等领域。卷积神经网络属于计算密集型的结构,但随着模型的复杂度增加,模型参数越来越多,模型规模和需要的计算浮点数也越来越大,这对硬件资源产生了更高的要求,不利于模型在存储空间、续航受限的设备上部署使用。
目前大部分卷积神经网络***基本上都是在GPU环境下实现的,虽然GPU具有高度并行计算能力,能较好的解决计算速度问题,然而基于GPU的卷积神经网络加速器往往存在功耗较高、体积较大和成本高问题。
相比GPU,具有大量阵列形式逻辑、运算单元的现场可编程门阵列芯片在尺寸上、功耗和并行运算方面有突出的优势。借助现场可编程门阵列中丰富的逻辑资源和专用乘法器、数字信号处理等资源实现的卷积神经网络,能高度并行地执行算法中大量重复、独立的乘法和加法运算,在保证计算能力的同时尽可能降低功耗。
传统面向现场可编程门阵列的卷积神经网络构造方式是基于寄存器传输级描述语言设计的,具有流程复杂、周期较长和优化空间较小等问题。尤其针对现场可编程门阵列,缺乏卷积神经网络实现方法的有效的特征分析,而且卷积计算对硬件资源要求较高。因此,在边缘计算环境下,构建卷积神经网络的方法设计变得尤为重要。在基于现场可编程门阵列的卷积神经网络加速器中,使用基于高层次综合工具的现场可编程门阵列开发实现具有良好的可扩展性,并且只需要很短的设计时间。它采用高级编程语言对算法进行设计,通过编译、语义转化、映射与布局布线等过程,将其转化为可用于现场可编程门阵列设计的寄存器传输级语言的跨层次设计方法。运用高层次综合设计的电路,在逻辑资源充足的情况下能够取得良好性能,但在设备种类复杂,对资源集约的情况下,设计方法与理论还有待深入探索。
发明内容
为了克服现有技术的卷积层耗时过长的不足,本发明提供一种基于循环切割和重排的现场可编程门阵列卷积层的动态优化方法,其可极大地提升内部计算速率和效率,从而缩短计算时间,提升效能。
本发明解决其技术问题所采用的技术方案是:
一种基于循环切割和重排的现场可编程门阵列卷积层的动态优化方法,包括以下步骤:
1)根据卷积运算的计算过程,获取卷积层的计算公式;
2)设定对应的分割参数,对由步骤1)获取到的卷积层计算公式进行循环分割,形成两个子循环;
3)对由步骤1)获取到的卷积层计算公式,和步骤2)切割所得的子循环,分析循环参数的数据共享关系;
4)根据由步骤3)分析所得的数据共享关系,在高层次综合工具中通过在转化过程中***编译指示指令的方法,对步骤2)分割后所获得的子循环进行重排与展开优化;
5)使用高层次综合工具的仿真工具,生成对应的综合报告,其中包括了计算过程所使用的资源占比,将所获得的资源占比报告与资源约束条件对比,判断是否满足当前资源约束条件下的最优结果,如果不是,则修改分割参数或重排顺序,并重复步骤2)3)4);
6)使用高层次综合工具对步骤5)生成的卷积运算进行实例化,将C语言转化为Verilog语言,生成寄存器传输级电路,生成对应的卷积层功能模块。
进一步,所述步骤1)中,卷积层接收N个大小为W*H特征图作为输入,每个输入特征图是通过M个窗口为K×K的卷积内核映射来生成输出特性,窗口的平移步长为S,通常小于K,总共N个输入特征图将形成M个大小为R×C的输出特征图集,公式表达如下:
其中OUT表示输出特征图集,表示IN输入特征图集,W表示权重集。
所述步骤2)中,将卷积层的计算过程分割成两个子循环,子循环一如下式所示:
组合<Tm,Tn,Tr,Tr>就是所以设定的分割参数,其中Tm,Tn,Tr和Tr分别是对输出特征图深度,输入特征图深度,输出特征图宽和长的分块,另一个子循环如下式所示:
所述步骤3)中,根据步骤1)所得的卷积计算公式,将不同循环迭代之间的数据共享关系可以分为三类:无关、独立、依赖;
I)无关:如果循环迭代器ik没有出现在数组A的任何访问函数中,则对应的循环维数与数组A无关;
II)独立:如果数组A所访问的数据空间并集和循环维数ik是完全可分离的,或者对于任意两个不同的参数p1和p2,对于ik=p1和ik=p2在不同图像的数据空间中是不相交的,那么循环维数ik与数组A是相互独立的;
III)依赖:如果数组A上访问的数据空间并集不能沿着某个循环维数ik进行分离,则认为循环维数ik依赖于数组A;
数据共享关系下表所示:
从硬件实现的角度来看,独立的数据共享关系在缓冲区和计算模块之间生成直接连接,无关的数据共享关系生成广播连接,依赖的数据共享关系产生具有复杂拓扑的互连。
所述步骤4)中,对所生成的硬件结构进行优化,其中一项优化技术就是循环展开,还有一项关键优化技术是流水线循环,重复执行不同循环迭代的操作;
对步骤2)分割后所获得的子循环进行优化,先根据分析得到的数据共享关系将内部循环进行重排,再将排列到最内部的循环进行展开,同时加上流水线循环来提高***吞吐量,优化后的计算过程如下式所示:
其中F(x)表示循环展开,L(x)表示流水线循环。
本发明的有益效果是:使用高层次综合工具,基于循环切割和重排的动态优化方法对卷积层的进行优化,提高了现场可编程门阵列上卷积神经网络上的计算效能。并且优化方法具有良好的适配性,可以扩展应用到池化层、全连接层等不同的结构,也可以用应用到不同的卷积神经网络模型。
附图说明
图1为基于循环切割和重排的现场可编程门阵列卷积层的动态优化方法的流程图;
图2为卷积层的计算过程图;
具体实施方式
下面结合附图对本发明做进一步描述:
参照图1和图2,一种基于循环切割和重排的现场可编程门阵列卷积层的动态优化方法,包括以下步骤:
1)卷积层的计算过程如图2所示,卷积层接收N个大小为W*H特征图作为输入,每个输入特征图是通过M个窗口为K×K的卷积内核映射来生成输出特性,窗口的平移步长为S,通常小于K,总共N个输入特征图将形成M个大小为R×C的输出特征图集,公式表达如下:
其中OUT表示输出特征图集,表示IN输入特征图集,W表示权重集;
2)由于现场可编程门阵列的资源是有限的,无法将循环完全展开进行计算,所以将卷积层的计算过程分割成两个子循环,子循环一如下式所示:
组合<Tm,Tn,Tr,Tr>就是所以设定的分割参数,其中Tm,Tn,Tr和Tr分别是对输出特征图深度,输入特征图深度,输出特征图宽和长的分块。另一个子循环如下式所示:
3)根据步骤1)所得的卷积计算公式,可以将不同循环迭代之间的数据共享关系可以分为三类:无关、独立、依赖。
I)无关。如果循环迭代器ik没有出现在数组A的任何访问函数中,则对应的循环维数与数组A无关。
II)独立。如果数组A所访问的数据空间并集和循环维数ik是完全可分离的,或者对于任意两个不同的参数p1和p2,对于ik=p1和ik=p2在不同图像的数据空间中是不相交的,那么循环维数ik与数组A是相互独立的。
III)依赖。如果数组A上访问的数据空间并集不能沿着某个循环维数ik进行分离,则认为循环维数ik依赖于数组A。
数据共享关系下表所示。
输入IN 权重W 输出OUT
trr 依赖 无关 独立
tcc 依赖 无关 独立
too 无关 独立 独立
tii 独立 独立 无关
i 依赖 独立 无关
j 依赖 独立 无关
从硬件实现的角度来看,独立的数据共享关系在缓冲区和计算模块之间生成直接连接,无关的数据共享关系生成广播连接,依赖的数据共享关系产生具有复杂拓扑的互连;
4)高层次综合工具可通过在转化过程中***编译指示指令的方法,对所生成的硬件结构进行优化。其中一项优化技术就是循环展开,可以将顺序执行的循环运算转换成并行运算,从而提高运算速度。还有一项关键优化技术,就是流水线循环,它通过重复执行不同循环迭代的操作来提高***吞吐量。
对步骤2)分割后所获得的子循环进行优化,先根据分析得到的数据共享关系将内部循环进行重排,再将排列到最内部的循环进行展开,同时加上流水线循环来提高***吞吐量。优化后的计算过程如下式所示:
其中F(x)表示循环展开,L(x)表示流水线循环;
5)由于现场可编程门阵列的资源是有限的,需要在步骤2)4)分割和重排后,对优化后的计算过程进行资源评估,使用高层次综合工具的仿真工具,生成对应的综合报告,其中包括了计算过程所使用的资源占比;
将所获得的资源占比报告与资源约束条件对比,判断是否满足当前资源约束条件下的最优结果,如果不是,则修改分割参数或重排顺序,并重复步骤2)3)4);
6)使用高层次综合工具对步骤5)生成的卷积运算进行实例化,将C语言转化为Verilog语言,生成寄存器传输级电路,生成对应的功能模块。
上述实施方式为本发明较佳的实施方式,但本发明的实施方式并不受所述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的修改、替代、组合、裁剪,均应为等效的置换方式,都包含在本发明的保护范围之内。

Claims (5)

1.一种基于循环切割和重排的现场可编程门阵列卷积层的动态优化方法,其特征在于,所述方法包括以下步骤:
1)根据卷积运算的计算过程,获取卷积层的计算公式;
2)设定对应的分割参数,对由步骤1)获取到的卷积层计算公式进行循环分割,形成两个子循环;
3)对由步骤1)获取到的卷积层计算公式,和步骤2)切割所得的子循环,分析循环参数的数据共享关系;
4)根据由步骤3)分析所得的数据共享关系,在高层次综合工具中通过在转化过程中***编译指示指令的方法,对步骤2)分割后所获得的子循环进行重排与展开优化;
5)使用高层次综合工具的仿真工具,生成对应的综合报告,其中包括了计算过程所使用的资源占比。将所获得的资源占比报告与资源约束条件对比,判断是否满足当前资源约束条件下的最优结果,如果不是,则修改分割参数或重排顺序,并重复步骤2)3)4);
6)使用高层次综合工具对步骤5)生成的卷积运算进行实例化,将C语言转化为Verilog语言,生成寄存器传输级电路,生成对应的卷积层功能模块。
2.如权利要求1所述的一种基于循环切割和重排的现场可编程门阵列卷积层的动态优化方法,其特征在于,所述步骤1)中,卷积层接收N个大小为W*H特征图作为输入,每个输入特征图是通过M个窗口为K×K的卷积内核映射来生成输出特性,窗口的平移步长为S,通常小于K,总共N个输入特征图将形成M个大小为R×C的输出特征图集,公式表达如下:
其中OUT表示输出特征图集,表示IN输入特征图集,W表示权重集。
3.如权利要求1或2所述的一种基于循环切割和重排的现场可编程门阵列卷积层的动态优化方法,其特征在于,所述步骤2)中,将卷积层的计算过程分割成两个子循环,子循环一如下式所示:
组合<Tm,Tn,Tr,Tr>就是所以设定的分割参数,其中Tm,Tn,Tr和Tr分别是对输出特征图深度,输入特征图深度,输出特征图宽和长的分块,另一个子循环如下式所示:
4.如权利要求1或2所述的一种基于循环切割和重排的现场可编程门阵列卷积层的动态优化方法,其特征在于,所述步骤3)中,根据步骤1)所得的卷积计算公式,将不同循环迭代之间的数据共享关系可以分为三类:无关、独立、依赖;
I)无关:如果循环迭代器ik没有出现在数组A的任何访问函数中,则对应的循环维数与数组A无关;
II)独立:如果数组A所访问的数据空间并集和循环维数ik是完全可分离的,或者对于任意两个不同的参数p1和p2,对于ik=p1和ik=p2在不同图像的数据空间中是不相交的,那么循环维数ik与数组A是相互独立的;
III)依赖:如果数组A上访问的数据空间并集不能沿着某个循环维数ik进行分离,则认为循环维数ik依赖于数组A;
数据共享关系下表所示:
输入IN 权重W 输出OUT trr 依赖 无关 独立 tcc 依赖 无关 独立 too 无关 独立 独立 tii 独立 独立 无关 i 依赖 独立 无关 j 依赖 独立 无关
从硬件实现的角度来看,独立的数据共享关系在缓冲区和计算模块之间生成直接连接,无关的数据共享关系生成广播连接,依赖的数据共享关系产生具有复杂拓扑的互连。
5.如权利要求1或2所述的一种基于循环切割和重排的现场可编程门阵列卷积层的动态优化方法,其特征在于,所述步骤4)中,对所生成的硬件结构进行优化,其中一项优化技术就是循环展开,还有一项关键优化技术是流水线循环,重复执行不同循环迭代的操作;
对步骤2)分割后所获得的子循环进行优化,先根据分析得到的数据共享关系将内部循环进行重排,再将排列到最内部的循环进行展开,同时加上流水线循环来提高***吞吐量,优化后的计算过程如下式所示:
其中F(x)表示循环展开,L(x)表示流水线循环。
CN201811201717.7A 2018-10-16 2018-10-16 一种基于循环切割和重排的现场可编程门阵列卷积层的动态优化方法 Active CN109583006B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811201717.7A CN109583006B (zh) 2018-10-16 2018-10-16 一种基于循环切割和重排的现场可编程门阵列卷积层的动态优化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811201717.7A CN109583006B (zh) 2018-10-16 2018-10-16 一种基于循环切割和重排的现场可编程门阵列卷积层的动态优化方法

Publications (2)

Publication Number Publication Date
CN109583006A true CN109583006A (zh) 2019-04-05
CN109583006B CN109583006B (zh) 2023-07-21

Family

ID=65920178

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811201717.7A Active CN109583006B (zh) 2018-10-16 2018-10-16 一种基于循环切割和重排的现场可编程门阵列卷积层的动态优化方法

Country Status (1)

Country Link
CN (1) CN109583006B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110084363A (zh) * 2019-05-15 2019-08-02 电科瑞达(成都)科技有限公司 一种基于fpga平台的深度学习模型加速方法
CN111176962A (zh) * 2019-12-02 2020-05-19 深圳先进技术研究院 Fpga平台及其性能评估与设计优化的方法、存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101118622A (zh) * 2007-05-25 2008-02-06 清华大学 在城市环境下微型飞行器三维轨迹仿真方法
CN107170024A (zh) * 2017-04-01 2017-09-15 武汉市真意境文化科技有限公司 一种基于vr环境二维视图生成方法及***
CN107368621A (zh) * 2017-06-06 2017-11-21 中国核电工程有限公司 将pdms中三维支架模型生成cad格式二维标准三视图的方法
CN109598785A (zh) * 2018-11-28 2019-04-09 佛山科学技术学院 一种三维网格模型视图转换方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101118622A (zh) * 2007-05-25 2008-02-06 清华大学 在城市环境下微型飞行器三维轨迹仿真方法
CN107170024A (zh) * 2017-04-01 2017-09-15 武汉市真意境文化科技有限公司 一种基于vr环境二维视图生成方法及***
CN107368621A (zh) * 2017-06-06 2017-11-21 中国核电工程有限公司 将pdms中三维支架模型生成cad格式二维标准三视图的方法
CN109598785A (zh) * 2018-11-28 2019-04-09 佛山科学技术学院 一种三维网格模型视图转换方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
卢治等: "《面向边缘计算的嵌入式FPGA卷积神经网络构建方法》", 《计算机研究与发展》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110084363A (zh) * 2019-05-15 2019-08-02 电科瑞达(成都)科技有限公司 一种基于fpga平台的深度学习模型加速方法
CN110084363B (zh) * 2019-05-15 2023-04-25 电科瑞达(成都)科技有限公司 一种基于fpga平台的深度学习模型加速方法
CN111176962A (zh) * 2019-12-02 2020-05-19 深圳先进技术研究院 Fpga平台及其性能评估与设计优化的方法、存储介质
CN111176962B (zh) * 2019-12-02 2021-09-10 深圳先进技术研究院 Fpga平台及其性能评估与设计优化的方法、存储介质

Also Published As

Publication number Publication date
CN109583006B (zh) 2023-07-21

Similar Documents

Publication Publication Date Title
US11514324B2 (en) Methods of optimization of computational graphs of neural networks
CN109086867B (zh) 一种基于fpga的卷积神经网络加速***
CN110428428B (zh) 一种图像语义分割方法、电子设备和可读存储介质
JP6549332B2 (ja) 機械学習に基づくネットワークモデル構築方法及び装置
CN109784489A (zh) 基于fpga的卷积神经网络ip核
WO2021233342A1 (zh) 一种神经网络构建方法以及***
CN108537331A (zh) 一种基于异步逻辑的可重构卷积神经网络加速电路
CN112163601B (zh) 图像分类方法、***、计算机设备及存储介质
Cheng et al. The policy-gradient placement and generative routing neural networks for chip design
CN109583006A (zh) 一种基于循环切割和重排的现场可编程门阵列卷积层的动态优化方法
CN112529165A (zh) 深度神经网络剪枝方法、装置、终端及存储介质
CN114548265A (zh) 一种作物叶片病害图像生成模型训练方法、作物叶片病害识别方法、电子设备及存储介质
CN110349170A (zh) 一种全连接crf级联fcn和k均值脑肿瘤分割算法
CN113705798A (zh) 处理单元、计算装置及深度学习模型的计算图优化方法
Mohaidat et al. A survey on neural network hardware accelerators
CN115358182A (zh) 基于生成式深度学习的芯片布线***及方法
CN113505560B (zh) 一种fpga布线拥塞预测方法及***
CN113836319B (zh) 融合实体邻居的知识补全方法及***
CN114330173B (zh) 边界节点连接关系获取方法、装置、设备和存储介质
Lu et al. DREAM-GAN: Advancing dreamplace towards commercial-quality using generative adversarial learning
Wang et al. Balancing memory-accessing and computing over sparse DNN accelerator via efficient data packaging
Schurmann et al. Three-phase chip planning-an improved top-down chip planning strategy
Yan et al. Ultra-fast fpga implementation of graph cut algorithm with ripple push and early termination
CN117421609B (zh) 应用于社交媒体的图像与文本语义相似度计算方法及***
CN117787171B (zh) 基于多判别器的cgan图像转换的fpga拥塞预测方法及装置

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