CN107392308B - 一种基于可编程器件的卷积神经网络加速方法与系统 - Google Patents

一种基于可编程器件的卷积神经网络加速方法与系统 Download PDF

Info

Publication number
CN107392308B
CN107392308B CN201710469354.4A CN201710469354A CN107392308B CN 107392308 B CN107392308 B CN 107392308B CN 201710469354 A CN201710469354 A CN 201710469354A CN 107392308 B CN107392308 B CN 107392308B
Authority
CN
China
Prior art keywords
neural network
parallelization
convolutional neural
programmable device
module
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
CN201710469354.4A
Other languages
English (en)
Other versions
CN107392308A (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.)
Institute of Computing Technology of CAS
Original Assignee
Institute of Computing Technology of CAS
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 Institute of Computing Technology of CAS filed Critical Institute of Computing Technology of CAS
Priority to CN201710469354.4A priority Critical patent/CN107392308B/zh
Publication of CN107392308A publication Critical patent/CN107392308A/zh
Application granted granted Critical
Publication of CN107392308B publication Critical patent/CN107392308B/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/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Neurology (AREA)
  • Feedback Control In General (AREA)
  • Particle Accelerators (AREA)

Abstract

本发明涉及一种基于可编程器件的卷积神经网络加速方法与系统。包括:对卷积神经网络在可编程器件上的基本结构进行设计,分别建立计算资源、频率关于并行化参数的量化模型;在不同并行化参数下,对实际电压、温度、工艺偏差可达的最高时钟频率进行探索,建立实际可达最高频率与并行化参数的分析模型;以计算吞吐量为优化目标,根据所建立的量化模型与分析模型,对卷积神经网络的设计空间探索进行问题抽象,并采用一定的搜索算法求解出性能最优的并行化参数。本发明在保证加速器稳定性及可靠性的同时,能够利用商用设计工具针对电压、温度、工艺偏差所预留的时延裕度,从而进一步提升卷积神经网络加速器的性能。

Description

一种基于可编程器件的卷积神经网络加速方法与系统
技术领域
本发明涉及集成电路领域及深度学习领域,特别是涉及一种基于可编程器件的卷积神经网络加速方法与系统。
背景技术
卷积神经网络是一个多层感知器,具有良好的容错能力、并行处理能力和自学习能力。在处理图形问题上,特别是在识别位移、缩放及其他形式扭曲不变性的问题上具有良好的鲁棒性和运算效率,因此被广泛应用在深度学习中作为基准神经网络架构。
现场可编程门阵列(Field Programmable GateArray,FPGA)是一种可编程器件,它具有计算源丰富、灵活可重配置、开发周期短以及功耗低等优点。相比于CPU(CentralProcessing Unit)以及GPU(Graphics Processing Unit),现场可编程门阵列因可达到较高的性能功耗比而被广泛应用于神经网络的实现。然而,受到现有资源及通信带宽的限制,大规模卷积神经网络在现场可编程门阵列上的实现仍然是一项具有挑战的工作。卷积神经网络应用时的性能主要以计算吞吐量进行评估。如公式(1)所示,吞吐量主要由时钟频率和单位时间内的操作数计算得到,其中卷积神经网络加速器单位时间内执行的操作数主要由网络实现的并行度决定。
吞吐量=单位时间内操作数×时钟频率 (1)
卷积神经网络主要由卷积层、池化层、全连接层等组成。卷积层对图片进行特征提取,卷积的计算核可以实现为一维或者二维基本处理单元。池化层(Pooling Layer)是对特征图进行子采样,用于来减少图片的分辨率,进而减少整个网络的计算量和参数数量。池化层一般出现在卷积层后,因此在实现上通常和卷积层一起实现。全连接层是对前面得到的特征对图片进行分类,它一般以矩阵乘法运算实现。
在现场可编程门阵列上,卷积神经网络加速器的设计空间探索(性能空间探索)方法主要分为两类:寄存器传输(Register Transfer Level,RTL)级设计和实现级设计。它们的特征分别如下。
RTL级设计是指在RTL阶段针对并行度或者计算吞吐量进行提升。其中,针对并行度而进行设计的RTL级设计方法主要通过提升卷积层,或者整个卷积神经网络的并行度而实现。在FPGA的实现上,加速器的并行度主要受到FPGA计算资源及带宽两方面的限制,通过屋顶模型(Roofline Model)对卷积层的计算及带宽需求进行建模,可以寻求得到卷积层的最优设计参数;此外,采用奇异值分解(Singular Value Decomposition,SVD)、动态精度调整(Dynamic-Precision Data Quantization)的方法可以减少整个网络的参数数量,进而减小带宽负担;采用快速傅里叶变换(Fast Fourier Transformation,FFT)或流水线(Pipeline)架构可以提升加速器的计算效率,从而增强加速器的并行度。另一方面,针对吞吐量而进行的设计的RTL级设计方法以整个计算吞吐量为优化目标进行设计空间探索,由于卷积神经网络的最高频率与并行策略、各类计算资源与并行策略间的关系均可以通过实验来经验性的给出,网络的吞吐量可以经验性的表达为关于并行参数的函数来进行设计空间的探索,由此实现较为综合的性能优化。
实现级设计是指完成RTL级的并行度提升之后,在布局布线阶段进一步提升加速器频率的设计方法。在布局阶段,将神经网络的计算核预先放置在离控制单元很近的位置可以减短数据的传输延时,进而增大频率。此外,根据商业工具在布局布线后报出的时序信息,在数据通路扇出较大的地方插入缓冲器(buffer),往复执行可使得关键路径的时延有效降低,从而显著提升加速器计算核的频率。
在卷积神经网络RTL级的设计方法中,针对并行度的RTL级设计方法虽然能够有效地优化加速器的计算资源及带宽,得到较优的并行策略,然而由于这类方法很少考虑频率对性能的影响,因此所采用的频率通常不超过150MHz,这使得加速器整体的性能并没有达到综合最优。另一方面,针对吞吐量的RTL级设计方法考虑了频率的影响,然而目前这类方法中的绝大部分模型,例如资源使用或计算时间都是依托于实验而经验性地给出的,因此应用的准确性和灵活性不高。此外,使用商用工具报出的频率过于保守,损失了根据实际情况进一步提升频率的优化空间。
卷积神经网络实现级的设计方法能够有效地提升加速器的频率以及并行度,然而这类方法的并行策略和频率提升策略是分开进行的,并没有考虑彼此间的互相影响。由于神经网络加速器的并行度和频率都与计算资源的使用及带宽需求有关,因此将二者分开优化虽然能够提升加速器的性能,但未必达到了综合考虑下的最优点。
本发明对神经网络加速器的并行度、频率及其二者之间的关系进行了深入分析,发现加速器的频率主要受到三个方面的影响:
(1)在计算资源方面,加速器实际可达的最高频率受到并行度的间接影响。较高的并行度需要较多的计算资源,然而计算资源的增多会造成可编程器件的布线拥塞,从而降低了加速器实际可达的最高频率。
(2)在带宽方面,加速器的频率同样受到并行度的间接影响。加速器的带宽需求与硬件资源所能提供的带宽相匹配时才能实现带宽资源的最大化利用,进而实现较高的性能。由于加速器的带宽需求是由时钟频率与单个周期内的访存次数计算得到的,较高的并行度会导致较频繁的外存访问,在给定的带宽上限之下,频率的提升空间就会变小。
(3)在特定的器件下,加速器实际可达的最高频率受到实际电压、温度、工艺偏差的影响。电路的频率与电压呈正相关、与温度呈负相关。出于可靠性的考虑,商业工具在时序分析中往往根据最恶劣的电压、温度及工艺偏差情况分析得到电路的最高时钟频率。然而这一假定的情况往往与实际情况存在较大偏差,因此加速器的实际频率存在进一步的提升空间。
本发明通过对上述三个方面的深入研究,提出了一种同时考虑以上三个因素的卷积神经网络加速器设计空间探索方法。针对前两个方面,本发明根据采用的卷积计算核结构和神经网络实现结构,建立了计算资源与并行化参数、带宽上限频率与并行化参数的量化模型。针对第三个方面,在不同的并行化参数下,本发明通过实验探索得到加速器在实际电压、温度、工艺偏差下可达的最高频率与并行化参数间的分析模型。在设计空间探索中,根据所述的模型建立,以卷积神经网络计算吞吐量为优化目标进行问题抽象,采用一定搜索算法进行求解,即可得到性能最优的并行化参数。
发明内容
为了解决上述技术问题,本发明的目的是在卷积神经网络的设计空间探索中考虑实际电压、温度、工艺偏差下可达的最高时钟频率,提出一种综合考虑并行度及频率的设计空间探索方法。
具体地说,本发明提供了一种基于可编程器件的卷积神经网络加速方法,其中包括:
步骤S1、设计卷积神经网络在可编程器件上的基本结构,并根据该可编程器件所拥有的计算资源、可用带宽以及该基本结构,建立卷积神经网络加速器计算资源与并行化参数、带宽上限频率与并行化参数的量化模型,其中该基本结构包括该卷积神经网络加速器;
步骤S2、输入多个并行化参数,根据该可编程器件的实际供电电压、片内温度、元件工艺,分别探索该可编程器件在各个该并行化参数下所能达到的最高时钟频率,集合该最高时钟频率作为实验结果,并根据该实验结果建立该最高时钟频率关于并行化参数的分析模型;
步骤S3、根据该分析模型和该量化模型,求解出使该卷积神经网络性能最优的并行化参数,作为最优并行化参数,并根据该最优并行化参数推导出该卷积神经网络各层具体的最优并行策略,使得该卷积神经网络加速器运行该最优并行策略。
该基于可编程器件的卷积神经网络加速方法,其中该并行化参数为该卷积神经网络进行一次前馈运算的时钟周期数。
该基于可编程器件的卷积神经网络加速方法,其中该步骤2包括:
步骤S301、遍历该多个并行化参数从中选取一个并行化参数,推导其相应的并行策略;
步骤S302、基于该并行策略,并使用通用工具完成该卷积神经网络加速器的设计,获取通用工具报出的保守最高时钟频率;
步骤S303、在该可编程器件上采用该并行策略运行该卷积神经网络加速器,该卷积神经网络加速器根据已知的测试集进行循环读入输出运算;
步骤S304、初始化该可编程器件的运行频率为该保守最高时钟频率;
步骤S305、实时监测该可编程器件的片内温度,判断该片内温度是否稳定,若是,则执行步骤S306,否则,重复该步骤S305继续监测该可编程器件的片内温度;
步骤S306、检验该可编程器件的运算结果是否正确,若正确,则执行步骤S307;否则,执行步骤S308;
步骤S307、提升该可编程器件的运行频率,并判断是否超出该可编程器件时钟源所能提供的上限频率,若是,则执行步骤S308,否则,执行步骤S305;
步骤S308、停止该运行频率的提升,报出该并行化参数下运算结果正确的该最高时钟频率;
步骤S309、判断是否对该多个并行化参数遍历完全,若是,则结束;否则,继续执行步骤S301。
该基于可编程器件的卷积神经网络加速方法,其中该分析模型具体为反比例指数衰减拟合模型。
本发明还提供了一种基于可编程器件的卷积神经网络加速系统,其中包括:
量化模型建立模块、用于设计卷积神经网络在可编程器件上的基本结构,并根据该可编程器件所拥有的计算资源、可用带宽以及该基本结构,建立卷积神经网络加速器计算资源与并行化参数、带宽上限频率与并行化参数的量化模型,其中该基本结构包括该卷积神经网络加速器;
分析模型建立模块、输入多个并行化参数,根据该可编程器件的供电电压、片内温度、元件工艺,分别探索该可编程器件在各个该并行化参数下所能达到的最高时钟频率,集合该最高时钟频率作为实验结果,并根据该实验结果建立该最高时钟频率关于并行化参数的分析模型;
最优并行策略运行模块、用于根据该分析模型和该量化模型,求解出使该卷积神经网络性能最优的并行化参数,作为最优并行化参数,并根据该最优并行化参数推导出该卷积神经网络各层具体的最优并行策略,使得该卷积神经网络加速器运行该最优并行策略。
该基于可编程器件的卷积神经网络加速系统,其中该并行化参数为该卷积神经网络进行一次前馈运算的时钟周期数。
该基于可编程器件的卷积神经网络加速方法,其中该分析模型建立模块包括:
遍历模块、用于遍历该多个并行化参数从中选取一个并行化参数,推导其相应的并行策略;
通用设计模块、基于该并行策略,并使用通用工具完成该卷积神经网络加速器的设计,获取通用工具报出的保守最高时钟频率;
循环计算模块、用于在该可编程器件上采用该并行策略运行该卷积神经网络加速器,该卷积神经网络加速器根据已知的测试集进行循环读入输出运算;
初始化模块、用于初始化该可编程器件的运行频率为该保守最高时钟频率;
温度检测模块、用于实时监测该可编程器件的片内温度,判断该片内温度是否稳定,若是,则调用结果检验模块,否则,继续监测该片内温度直到其稳定;
结果检验模块、用于检验该可编程器件的运算结果是否正确,若正确,则调用升频模块;否则调用停止模块;
升频模块、用于提升该可编程器件的运行频率,并判断是否超出该可编程器件时钟源所能提供的上限频率,若是,则调用停止模块,否则调用该温度检测模块;
停止模块、用于停止该运行频率的提升,报出该并行化参数下运算结果正确的该最高时钟频率;
判断模块、用于判断是否对该多个并行化参数遍历完全,若是,则结束;否则调用遍历模块。
该基于可编程器件的卷积神经网络加速系统,其中该分析模型具体为反比例指数衰减拟合模型。
本发明还提供了一种包括该卷积神经网络加速系统的可编程器件。
本发明所具有的的技术效果包括:
1、通过采用卷积神经网络完成一次前馈运算的时钟周期数为并行化参数进行设计空间探索,精简了设计参数,有效降低了设计空间探索的复杂度。
2、在实际电压、温度、工艺偏差下进行的最高频率探索所需的模块在可编程器件上几乎不占用额外的逻辑资源,其结构简单灵活,易于实现。
3、使用实际电压、温度、工艺偏差下可达的最高频率进行设计空间探索,可进一步提升加速器的频率,从而有效提升其性能。
附图说明
图1为本发明的关键步骤流程图;
图2为本发明的结构设计框架图;
图3为本发明中的实际可达最高频率探索流程图;
图4为本发明实施例中基本运算单元子模块的结构框图;
图5为本发明实施例的设计空间探索结果图。
具体实施方式
为让本发明的上述特征和效果能阐述的更明确易懂,下文特举实施例,并配合说明书附图作详细说明如下。
本发明属于一种深度学习的硬件实现设计方法。如图1所示,本发明提供了一种基于可编程器件的卷积神经网络加速器设计方法,该方法可实验得到该可编程器件在实际供电电压、温度、元件工艺水平下可达的最高频率,并根据该最高频率来有效提升卷积神经网络加速器的性能,具体包括以下步骤:
步骤S1,设计卷积神经网络在可编程器件上的基本结构,并根据该可编程器件所拥有的计算资源、带宽以及该基本结构,分别建立计算资源、带宽上限频率关于并行化参数的量化模型,其中该并行化参数为该卷积神经网络进行一次前馈运算的时钟周期数;需要注意的是,本发明针对的器件是可编程器件,方法是对可编程器件的电路设计实现的优化,因此电路结构是通过RTL的设计进行修改的,并不是通常意义上的纯软件或硬件设计。
步骤S2,输入多个供实验所用的并行化参数,根据该可编程器件的供电电压、片内温度、元件工艺,分别探索该可编程器件在各个该并行化参数下所能达到的最高时钟频率,集合该最高时钟频率作为实验结果,并根据该实验结果建立该最高时钟频率关于并行化参数的分析模型;
步骤S3,以计算吞吐量为优化目标,根据该分析模型和该量化模型,即以该分析模型和该量化模型为约束条件,进行设计空间探索的问题抽象,采用搜索算法求解出性能最优的并行化参数,以推导出该卷积神经网络各层具体的并行策略,从而使得该卷积神经网络加速器运行该最优并行策略,以加速该卷积神经网络在可编程器件的计算效率。
本发明使用实际电压、温度、工艺偏差下可达的最高时钟频率进行设计空间探索,可进一步提升加速器的频率,从而有效提升其性能。
图2是图1步骤S1的卷积神经网络加速器基本结构设计框架图100。本发明的一个实施例所实现的是AlexNet的加速器设计,包括加速器模块10,加速器控制模块20,时钟管理模块30,以及温度测量模块40。其中加速器模块10与加速器控制模块20相连,时钟管理模块30分别与加速器模块10、加速器控制模块20、温度管理模块40相连。本发明实施例的目标器件为Intel Altera Arria 10芯片。
加速器模块10,采用流水线的结构实现卷积神经网络的各层,流水线的级数与卷积神经网络的层数相同。由于AlexNet共有5个卷积层和3个全连接层,因此加速器模块10共包含8级流水。每级流水包含多个基本运算单元子模块11,用于实现卷积计算核、池化操作、非线性激活函数等运算。各级流水间通过数据存储子模块12相连接,在AlexNet的加速器设计中共有7个数据存储子模块12,用于存储所述基本运算单元子模块计算输出的中间数据结果。
图4是基本运算单元子模块11的一个实施例。其中卷积计算核的实现可以多种,例如一维处理单元或二维处理单元。根据所实现网络的结构,在卷积计算核后可加入所需的计算函数,例如非线性激活函数,池化,局部响应归一化函数等。在本发明的一个实施例中,卷积计算核采用二维基本处理单元实现,后面连接非线性激活函数(ReLU)、池化(Pooling)、局部响应归一化函数(LRN)。
加速器控制模块20,用于加速器模块10的数据传输及运算控制,包括数据控制子模块21,计算控制子模块22。数据控制子模块21与外部存储器和计算控制子模块22相连,用于为加速器模块10提供输入特征图数据、卷积核参数数据、偏置参数数据。计算控制子模块22与加速器模块10和数据控制子模块21相连,用于控制各个单级流水的计算。
数据控制子模块21的数据控制方式可以多种,例如直接存储器控制(DirectMemory Access,DMA);与外部存储器的通信方式可以多种,例如采用总线接口标准(Peripheral Component Interface Express,PCIE)或万兆以太网(Gigabit Ethernet)。在本发明的一个实施例中,加速器控制模块20采用直接存储器控制(DMA)进行数据控制,采用总线接口标准(PCIE)与外部存储器相连。
时钟管理模块30,在设计空间探索阶段用于探索加速器在实际电压、温度、工艺偏差下可达的最高时钟频率,在应用阶段用于提供可编程器件实际所采用的频率,包括时钟源子模块31和频率控制子模块32。时钟源子模块31分别与加速器模块10、加速器控制模块20、频率控制子模块32相连,用于提供所要求的时钟。频率控制子模块32与温度测量模块40和时钟源子模块31相连,用于控制时钟源子模块31的频率,在实际最高频率探索中,还用于检验加速器计算结果的正确性。在本发明的一个实施例中,频率控制子模块32在外部主机(Host)上实现。
温度测量模块40,与频率控制子模块32相连,用于向其传回片上的温度。
所述卷积神经网络的设计能够分别建立计算资源、带宽上限频率关于并行化参数的量化模型,采用卷积神经网络完成一次前馈运算的时钟周期数为并行化参数进行设计空间探索,有效地精简了参数设置,从而降低了设计空间探索的复杂度。所述时钟管理模块及温度测量模块在可编程器件上以硬核的方式实现,几乎不占用额外的逻辑资源,其结构简单灵活,易于实现。
根据以上结构设计,本发明可以分别建立计算资源、带宽上限频率关于并行化参数的量化模型。以Ncycle表示完成一次前馈计算的时钟周期数,由于该参数限定了卷积神经网络各层并行策略的设计,因此以此表征卷积神经网络的并行化参数。
在计算资源方面,根据所述实施例所采用计算核结构,一个卷积计算核所需的专用数字信号处理器(Digital Signal Processor,DSP)的个数为
Figure BDA0001326659710000091
其中W为神经网络中某层的卷积核尺寸,S为步长。因此神经网络中某一层所需的DSP个数为
Figure BDA0001326659710000092
其中Rin、Cin为输入特征图的长、宽尺寸,Nin、Nout为该层输入、输出特征图的个数。神经网络中某一卷积层所需的片上存储资源(Block Random AccessMemory,BRAM)为
Figure BDA0001326659710000093
其中Rout、Cout为输出特征图的长、宽尺寸,CBRAM为一个BRAM的容量。本发明的一个实施例采用批处理的方式来缓解全连接层带宽需求过高的问题。批处理的方式需要额外的片上存储资源(BRAM)来存储多幅图片的中间结果,因此全连接层所需的BRAM个数为
Figure BDA0001326659710000101
其中N为批处理参数。
在带宽方面,所述实施例结构下,神经网络的卷积层、全连接层所需的带宽资源分别为
Figure BDA0001326659710000102
其中BWbit为卷积神经网络所采用的数据宽度,fBW为带宽上限频率。
图3是图1步骤S2的实际最高时钟频率探索流程图;该流程包括:
步骤S301,遍历该多个并行化参数从中选取一个并行化参数,推导其相应的并行策略,即选取一个不同的并行化参数,及对应的一组并行策略。
步骤S302,在指定的并行策略下,使用商业(通用)工具完成加速器的实现,获取商业工具报出的保守最高时钟频率,即使卷积神经网络加速器在商业工具的限制条件下运行该并行策略,限制条件包括多种安全阈值,例如温度安全阈值、电压阈值等。
步骤S303,在可编程器件上运行该并行策略下的加速器设计,加速器模块10循环读入输出已知的测试集进行运算。
步骤S304,在实际电压、温度、工艺偏差下,通过时钟管理模块30初始化可编程器件的运行频率为商业工具报出的保守最高时钟频率。
步骤S305,在一段时间内,实时监测该可编程器件的片内温度,读取温度测量模块40报出的器件温度,并实时判断该可编程器件温度是否稳定,若不稳定,则执行步骤S305继续监测该可编程器件的片内温度;否则,执行步骤S306。需要注意的是,这里的稳定指的是温度的变化范围在1摄氏度以内,也就是检测时发现温度不再上升。温度只要不影响器件安全运行,升到很高也可以接受;在商业工具中,温度高于安全阈值就会自动停掉,因此不用去考虑温度太高要执行308的环节,在这里,如果温度不稳定就依然执行305的目的是,要保证读取的计算结果是在器件热稳定的状态下读取的,以保证输出结果的稳定性及可靠性,判断器件是否达到热稳定的依据就是温度是否稳定。
步骤S306,检验该频率下卷积神经网络加速器的运算结果,即检验该可编程器件在当前频率下的运算结果是否正确。若正确,则执行步骤S307;否则,执行步骤S308。
步骤S307,通过时钟管理模块30提升可编程器件的运行频率。判断提升后的频率是否超出时钟源子模块31所能提供的频率上限值,若是,则执行步骤S308,否则,执行步骤S305。
步骤S308,停止频率提升,报出该并行化参数下,运算结果正确的最高时钟频率。
步骤S309,判断是否完成所有选取的并行化参数的探索实验,即判断是否对该多个并行化参数遍历完全,若是,则结束探索;否则,执行步骤S301。上述有关最高时钟频率的探索方法,可以根据实际的电压、温度、工艺偏差,利用商用设计工具针对最坏情况而预留的时延裕度,来获得更高的运行频率。
根据以上最高时钟频率探索结果,本发明通过拟合的方式建立加速器实际可达最高时钟频率关于并行化参数的分析模型,在本实施例中采用反比例指数衰减拟合模型,即
Figure BDA0001326659710000111
其中a、b、c为拟合参数,fPVT为加速器实际可达最高频率。根据所述结构设计及模型建立,本发明可以对卷积神经网络的设计空间探索进行问题抽象。卷积神经网络单个时钟周期内执行的操作数为
Figure BDA0001326659710000112
因此加速器的吞吐量为
Figure BDA0001326659710000113
其中,仅f和Ncycle为变量,其他参数均可以从卷积神经网络的结构中获取。
由于卷积神经网络加速器的计算资源及带宽使用不能超过目标器件所提供的最大值,假设目标器件的DSP、BRAM及带宽上限分别为
Figure BDA0001326659710000114
BWtotal,则卷积神经网络的设计空间探索问题可以形式化描述如下:
优化目标:Maximize(f/Ncycle)
约束条件:
Figure BDA0001326659710000121
Figure BDA0001326659710000122
Figure BDA0001326659710000123
f=min{fBW,fPVT}
根据所述问题描述,图1步骤S3的设计空间探索采用穷举搜索算法完成。针对目标器件IntelAlteraArria10芯片,图5给出了该实施例下的优化目标在不同的频率和并行化参数下的分布结果。图中的最高点对应的并行化参数及频率即为所求性能最优的设计参数。
以下为与上述方法实施例对应的系统实施例,本实施系统可与上述实施方式互相配合实施。上述施方式中提到的相关技术细节在本实施系统中依然有效,为了减少重复,这里不再赘述。相应地,本实施系统中提到的相关技术细节也可应用在上述实施方式中。
本发明还提供了一种基于可编程器件的卷积神经网络加速系统,其中包括:
量化模型建立模块、用于设计卷积神经网络在可编程器件上的基本结构,并根据该可编程器件所拥有的计算资源、可用带宽以及该基本结构,建立卷积神经网络加速器计算资源与并行化参数、带宽上限频率与并行化参数的量化模型,其中该基本结构包括该卷积神经网络加速器;
分析模型建立模块、输入多个并行化参数,根据该可编程器件的供电电压、片内温度、元件工艺,分别探索该可编程器件在各个该并行化参数下所能达到的最高时钟频率,集合该最高时钟频率作为实验结果,并根据该实验结果建立该最高时钟频率关于并行化参数的分析模型;
最优并行策略运行模块、用于根据该分析模型和该量化模型,求解出使该卷积神经网络性能最优的并行化参数,作为最优并行化参数,并根据该最优并行化参数推导出该卷积神经网络各层具体的最优并行策略,使得该卷积神经网络加速器运行该最优并行策略。
该基于可编程器件的卷积神经网络加速系统,其中该并行化参数为该卷积神经网络进行一次前馈运算的时钟周期数。
该基于可编程器件的卷积神经网络加速方法,其中该分析模型建立模块包括:
遍历模块、用于遍历该多个并行化参数从中选取一个并行化参数,推导其相应的并行策略;
通用设计模块、基于该并行策略,并使用通用工具完成该卷积神经网络加速器的设计,获取通用工具报出的保守最高时钟频率;
循环计算模块、用于在该可编程器件上采用该并行策略运行该卷积神经网络加速器,该卷积神经网络加速器根据已知的测试集进行循环读入输出运算;
初始化模块、用于初始化该可编程器件的运行频率为该保守最高时钟频率;
温度检测模块、用于实时监测该可编程器件的片内温度,判断该片内温度是否稳定,若是,则调用结果检验模块,否则,继续监测该片内温度直到其稳定;
结果检验模块、用于检验该可编程器件的运算结果是否正确,若正确,则调用升频模块;否则调用停止模块;
升频模块、用于提升该可编程器件的运行频率,并判断是否超出该可编程器件时钟源所能提供的上限频率,若是,则调用停止模块,否则调用该温度检测模块;
停止模块、用于停止该运行频率的提升,报出该并行化参数下运算结果正确的该最高时钟频率;
判断模块、用于判断是否对该多个并行化参数遍历完全,若是,则结束;否则调用遍历模块。
该基于可编程器件的卷积神经网络加速系统,其中该分析模型具体为反比例指数衰减拟合模型。
本发明还提供了一种包括该基于可编程器件的卷积神经网络加速系统的可编程器件设计方案。
综上所述,本发明通过探索实际电压、温度、工艺偏差下,卷积神经网络可达的最高频率,并以此建模进行设计空间的探索,使得卷积神经网络加速器的性能得到有效提升。
虽然本发明以上述实施例公开,但具体实施例仅用以解释本发明,并不用于限定本发明,任何本技术领域技术人员,在不脱离本发明的构思和范围内,可作一些的变更和完善,故本发明的权利保护范围以权利要求书为准。

Claims (5)

1.一种基于可编程器件的卷积神经网络加速方法,其特征在于,包括:
步骤S1、设计卷积神经网络在可编程器件上的基本结构,并根据该可编程器件所拥有的计算资源、可用带宽以及该基本结构,建立卷积神经网络加速器计算资源与并行化参数、带宽上限频率与并行化参数的量化模型,其中该基本结构包括该卷积神经网络加速器;
步骤S2、输入多个并行化参数,根据该可编程器件的供电电压、片内温度、元件工艺,分别探索该可编程器件在各个该并行化参数下所能达到的最高时钟频率,集合该最高时钟频率作为实验结果,并根据该实验结果建立该最高时钟频率关于并行化参数的分析模型;
步骤S3、根据该分析模型和该量化模型,求解出使该卷积神经网络性能最优的并行化参数,作为最优并行化参数,并根据该最优并行化参数推导出该卷积神经网络各层具体的最优并行策略,使得该卷积神经网络加速器运行该最优并行策略;
其中该步骤S2包括:
步骤S201、遍历该多个并行化参数,从中选取一个并行化参数推导其相应的并行策略;
步骤S202、基于该并行策略,并使用通用工具完成该卷积神经网络加速器的设计,获取通用工具报出的保守最高时钟频率;
步骤S203、在该可编程器件上采用该并行策略运行该卷积神经网络加速器,该卷积神经网络加速器循环读入已知输出的测试集进行运算;
步骤S204、初始化该可编程器件的运行频率为该保守最高时钟频率;
步骤S205、实时监测该可编程器件的片内温度,判断该片内温度是否稳定,若是,则执行步骤S206,否则,重复该步骤S205继续监测该可编程器件的片内温度;
步骤S206、检验该可编程器件的运算结果是否正确,若正确,则执行步骤S207;否则,执行步骤S208;
步骤S207、提升该可编程器件的运行频率,并判断提升后的该运行频率是否超出该可编程器件时钟源所能提供的上限频率,若是,则执行步骤S208,否则,执行步骤S205;
步骤S208、停止该运行频率的提升,报出该并行化参数下运算结果正确的该最高时钟频率;
步骤S209、判断是否对该多个并行化参数遍历完全,若是,则结束;否则,继续执行步骤S201;
该量化模型具体为计算资源和带宽上限频率关于并行化参数的卷积神经网络,该分析模型具体为最高时钟频率关于并行化参数的反比例指数衰减拟合模型。
2.如权利要求1所述的基于可编程器件的卷积神经网络加速方法,其特征在于,该并行化参数为该卷积神经网络进行一次前馈运算的时钟周期数。
3.一种基于可编程器件的卷积神经网络加速系统,其特征在于,包括:
量化模型建立模块、用于设计卷积神经网络在可编程器件上的基本结构,并根据该可编程器件所拥有的计算资源、可用带宽以及该基本结构,建立卷积神经网络加速器计算资源与并行化参数、带宽上限频率与并行化参数的量化模型,其中该基本结构包括该卷积神经网络加速器;
分析模型建立模块、输入多个并行化参数,根据该可编程器件实际的供电电压、片内温度、元件工艺,分别探索该可编程器件在各个该并行化参数下所能达到的最高时钟频率,集合该最高时钟频率作为实验结果,并根据该实验结果建立该最高时钟频率关于并行化参数的分析模型;
最优并行策略运行模块、用于根据该分析模型和该量化模型,求解出使该卷积神经网络性能最优的并行化参数,作为最优并行化参数,并根据该最优并行化参数推导出该卷积神经网络各层具体的最优并行策略,使得该卷积神经网络加速器运行该最优并行策略;
其中该分析模型建立模块包括:
遍历模块、用于遍历该多个并行化参数,从中选取一个并行化参数推导其相应的并行策略;
通用设计模块、基于该并行策略,并使用通用工具完成该卷积神经网络加速器的设计,获取通用工具报出的保守最高时钟频率;
循环计算模块、用于在该可编程器件上采用该并行策略运行该卷积神经网络加速器,该卷积神经网络加速器循环读入已知输出的测试集进行运算;
初始化模块、用于初始化该可编程器件的运行频率为该保守最高时钟频率;
温度检测模块、用于实时监测该可编程器件的片内温度,判断该片内温度是否稳定,若是,则调用结果检验模块,否则,继续监测该片内温度直到其稳定;
结果检验模块、用于检验该可编程器件的运算结果是否正确,若正确,则调用升频模块;否则调用停止模块;
升频模块、用于提升该可编程器件的运行频率,并判断是否超出该可编程器件时钟源所能提供的上限频率,若是,则调用停止模块,否则调用该温度检测模块;
停止模块、用于停止该运行频率的提升,报出该并行化参数下运算结果正确的该最高时钟频率;
判断模块、用于判断是否对该多个并行化参数遍历完全,若是,则结束;否则调用遍历模块;
该量化模型具体为计算资源和带宽上限频率关于并行化参数的卷积神经网络,该分析模型具体为最高时钟频率关于并行化参数的反比例指数衰减拟合模型。
4.如权利要求3所述的基于可编程器件的卷积神经网络加速系统,其特征在于,该并行化参数为该卷积神经网络进行一次前馈运算的时钟周期数。
5.一种包括权利要求3或4所述的卷积神经网络加速系统的可编程器件。
CN201710469354.4A 2017-06-20 2017-06-20 一种基于可编程器件的卷积神经网络加速方法与系统 Active CN107392308B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710469354.4A CN107392308B (zh) 2017-06-20 2017-06-20 一种基于可编程器件的卷积神经网络加速方法与系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710469354.4A CN107392308B (zh) 2017-06-20 2017-06-20 一种基于可编程器件的卷积神经网络加速方法与系统

Publications (2)

Publication Number Publication Date
CN107392308A CN107392308A (zh) 2017-11-24
CN107392308B true CN107392308B (zh) 2020-04-03

Family

ID=60332531

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710469354.4A Active CN107392308B (zh) 2017-06-20 2017-06-20 一种基于可编程器件的卷积神经网络加速方法与系统

Country Status (1)

Country Link
CN (1) CN107392308B (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019136758A1 (zh) * 2018-01-15 2019-07-18 深圳鲲云信息科技有限公司 人工智能处理装置硬件优化方法、系统、存储介质、终端
CN108564168B (zh) * 2018-04-03 2021-03-09 中国科学院计算技术研究所 一种对支持多精度卷积神经网络处理器的设计方法
CN108830378A (zh) * 2018-06-11 2018-11-16 东北师范大学 基于fpga的som神经网络可配置模块化硬件实现方法
CN110618963A (zh) * 2018-06-19 2019-12-27 上海威固信息技术股份有限公司 一种计算与存储融合的异构计算硬件加速系统及方法
CN109102065B (zh) * 2018-06-28 2022-03-11 广东工业大学 一种基于PSoC的卷积神经网络加速器
CN109002883B (zh) * 2018-07-04 2020-12-29 中国科学院计算技术研究所 卷积神经网络模型计算装置及计算方法
CN109543830B (zh) * 2018-09-20 2023-02-03 中国科学院计算技术研究所 一种用于卷积神经网络加速器的拆分累加器
CN110267338B (zh) * 2019-07-08 2020-05-22 西安电子科技大学 一种d2d通信中联合资源分配和功率控制方法
US11900240B2 (en) * 2019-09-18 2024-02-13 Stmicroelectronics S.R.L. Variable clock adaptation in neural network processors
CN111340206A (zh) * 2020-02-20 2020-06-26 云南大学 一种基于FPGA的Alexnet前向网络加速器
CN112508184B (zh) * 2020-12-16 2022-04-29 重庆邮电大学 一种基于卷积神经网络的快速图像识别加速器设计方法
CN113392957B (zh) * 2021-05-20 2023-01-17 中国科学院深圳先进技术研究院 卷积运算的处理方法、电子设备、移动终端及存储介质
CN113313243B (zh) * 2021-06-11 2023-06-06 海宁奕斯伟集成电路设计有限公司 神经网络加速器的确定方法、装置、设备以及存储介质
CN113592088B (zh) * 2021-07-30 2024-05-28 中科亿海微电子科技(苏州)有限公司 基于细粒度卷积计算结构的并行度确定方法及系统
CN115130672B (zh) * 2022-06-08 2024-03-08 武汉大学 一种软硬件协同优化卷积神经网络计算的方法及装置
CN116247824B (zh) * 2023-03-30 2023-11-17 国网河南省电力公司安阳供电公司 电力设备的控制方法及其系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4912649A (en) * 1988-12-14 1990-03-27 Gte Government Systems Corporation Accelerating learning in neural networks
CN101493862A (zh) * 2009-01-15 2009-07-29 北京航空航天大学 一种算法加速的软硬件协同设计方法
CN105488565A (zh) * 2015-11-17 2016-04-13 中国科学院计算技术研究所 加速深度神经网络算法的加速芯片的运算装置及方法
CN105512018A (zh) * 2014-09-23 2016-04-20 上海精密计量测试研究所 一种并行系统性能的形式化分析方法
CN105892989A (zh) * 2016-03-28 2016-08-24 中国科学院计算技术研究所 一种神经网络加速器及其运算方法
CN106228238A (zh) * 2016-07-27 2016-12-14 中国科学技术大学苏州研究院 现场可编程门阵列平台上加速深度学习算法的方法和系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4912649A (en) * 1988-12-14 1990-03-27 Gte Government Systems Corporation Accelerating learning in neural networks
CN101493862A (zh) * 2009-01-15 2009-07-29 北京航空航天大学 一种算法加速的软硬件协同设计方法
CN105512018A (zh) * 2014-09-23 2016-04-20 上海精密计量测试研究所 一种并行系统性能的形式化分析方法
CN105488565A (zh) * 2015-11-17 2016-04-13 中国科学院计算技术研究所 加速深度神经网络算法的加速芯片的运算装置及方法
CN105892989A (zh) * 2016-03-28 2016-08-24 中国科学院计算技术研究所 一种神经网络加速器及其运算方法
CN106228238A (zh) * 2016-07-27 2016-12-14 中国科学技术大学苏州研究院 现场可编程门阵列平台上加速深度学习算法的方法和系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
卷积神经网络的FPGA并行加速方案设计;方睿等;《计算机工程与应用》;20150415;第51卷(第8期);第32-36页 *
基于FPGA的卷积神经网络加速器;余子健等;《计算机工程》;20170115;第43卷(第1期);第109-119页 *

Also Published As

Publication number Publication date
CN107392308A (zh) 2017-11-24

Similar Documents

Publication Publication Date Title
CN107392308B (zh) 一种基于可编程器件的卷积神经网络加速方法与系统
Zeng et al. GraphACT: Accelerating GCN training on CPU-FPGA heterogeneous platforms
CN107480789B (zh) 一种深度学习模型的高效转换方法及装置
AU2014203218B2 (en) Memory configuration for inter-processor communication in an MPSoC
GB2568086A (en) Hardware implementation of convolution layer of deep neutral network
Piscitelli et al. Design space pruning through hybrid analysis in system-level design space exploration
WO2015187635A1 (en) Extracting system architecture in high level synthesis
CN116974868A (zh) 芯片功耗估计装置、方法、电子设备及存储介质
CN112465133A (zh) 运算方法、装置、计算机设备和存储介质
CN114443559A (zh) 可重构算子单元、处理器、计算方法、装置、设备及介质
Vo et al. A deep learning accelerator based on a streaming architecture for binary neural networks
Voss et al. Convolutional neural networks on dataflow engines
Baklouti et al. Multi‐Softcore Architecture on FPGA
Antunes et al. Partitioning and dynamic mapping evaluation for energy consumption minimization on NoC-based MPSoC
CN115469931B (zh) 一种循环程序的指令优化方法、装置、系统、设备及介质
Rafiev et al. Studying the interplay of concurrency, performance, energy and reliability with ArchOn--an architecture-open resource-driven cross-layer modelling framework
CN114548028B (zh) 进行低功耗设计的方法、电子设备及存储介质
Shahshahani et al. An automated tool for implementing deep neural networks on fpga
CN111353124A (zh) 运算方法、装置、计算机设备和存储介质
CN109710562A (zh) 一种基于selectmap的可配置且高速的fpga配置电路及实现方法
US9892227B1 (en) Systems, methods and storage media for clock tree power estimation at register transfer level
Nita et al. Multiprocessor real time edge detection using FPGA IP cores
Erdem et al. Runtime design space exploration and mapping of dcnns for the ultra-low-power orlando soc
US11714992B1 (en) Neural network processing based on subgraph recognition
Weng et al. Smart sensor architecture customized for image processing applications

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