新闻中心

EEPW首页>EDA/PCB>设计应用> 基于FPGA的人工神经网络实现方法的研究

基于FPGA的人工神经网络实现方法的研究

作者: 时间:2009-11-17 来源:网络 收藏

(4)面积节省及相关问题
为了最小化神经元实现的面积,组成每个神经元的各个HDL算法模块的面积也应该最小。乘法器以及基本的传递函数(例如,sigmoid激活函数tanh)是最占用面积的,这类问题非常依赖于所要求的精度,尽管神经网络常并不要求很精确的计算,但是不同的应用所要求的精度不同。一般来讲,浮点运算要比定点运算需要更大的面积,比如浮点运算中的并行加法器本质上是定点运算超前加法器加上必要的逻辑块,减法器、乘法器也类似如此,这在激活函数实现方面更加突出,文献[1]中面积优化对比显示,32位浮点运算要比16位定点运算大250倍。另外,对于小型网络,分布式存储器很适合权值存放,但是对于大型网络,权值存储器不应该被放置在中,因此当ANN得到有效实现的时候,就要认真考虑存储器的存取问题。其次,神经网络应用有一个显著的缺陷:在神经计算方面,不同运算的计算时间和实现面积并不平衡。在许多标准神经模式中,计算时间的大部分用在需要乘法器和加法器的矩阵向量运算中,而很多耗费面积的运算如激活函数,又必须被实现(它们占用很少的运算时间),而的面积是严格一定的,因此可将面积的相当一部分用来实现这些运算,以至于仅剩的一小部分却实现几乎所有的运算时间。
(5)资源和计算速度的平衡(Trade-off)
对于FPGA,科学的设计目标应该是在满足设计时序要求(包括对设计最高频率的要求)的前提下,占用最少的芯片资源,或者在所规定的占用资源下,使设计的时序余量更大,频率更高。这两种目标充分体现了资源和速度的平衡思想。作为矛盾的两个组成部分,资源和速度的地位是不一样的。相比之下,满足时序、工作频率的要求更重要一些,当两者冲突时,采用速度优先的准则。
例如,ANN的FPGA实现需要各种字长的乘法器,如果可以提出一种新的运算法则,从而用FPGA实现变字长的乘法器,则可以根据需要调整字长,从而提高运算速度的可能性,其中,基于Booth Encoded opti-mized wallence tree架构(见图2)就可以得到快速高效的乘法器,这种方式实现的乘法器比现在所用的基于FPGA的乘法器的处理速度快20%)。

(6)亟待解决的问题
FPGA凭借其如同软件实现一样的灵活性,集合了硬件实现高效和并行性的优点,好像非常适合神经实现的正常需要,但是,FPGA的二维拓扑结构不能处理标准神经网络规则但复杂的连线问题,而且FPGA仍然实现很有限的逻辑门数目,相反,神经计算则需要相当耗费资源的模块(激活函数,乘法器)。这样对于FP-GA,可用的CLBs中部分将被用来增加路径容量(连线),导致计算资源的丢失。一般的方法只能实现很小的低精度神经网络,连线问题不能依靠几个具有比特序列算法的可重构FPGA以及小面积模块(随机比特流或者频率)解决。

2 基于FPGA的ANN
经典有:
(1)可重构的RNN结构(Reconfigurable NeuraINetwork)
可重构计算是一种增加处理密度(每单元硅片面积的性能)的有效方法,且处理密度远大于用于通用计算方法,FPGA作为可重构计算的平台,可以提供如同软件一样的设计灵活性。该方法基于可扩展的脉动阵列结构、可重用的IP(Intellectual Properties)核及FPGA器件,即将要实现的神经网络算法分为几种基本运算,这些基本运算由可重构单元(Reconfigurable Cell,RC)完成,RC间以规则的方式相互连接,当神经网络变化时,只要增减Rc的数量或替换不同功能的RC就可重构成新的神经网络硬件;文献[8]中同时指出,考虑到硬件实现要以最少的硬件资源满足特定应用的性能需求,一般用神经元并行作为可重构部件的基本模式,即神经网络的各层计算可复用相同的阵列结构。
(2)RENCO结构
可重构网络计算机(Reconfigurable Network Computer,RENCO)是一种用于逻辑设计原型或可重构系统的平台,所设计的可重构系统对于工作在比特级的算法实现特别有效,比如模式匹配。RENCO的基本架构包括处理器、可重构部分(多为FPGA)以及存储器和总线部分,Altera公司提供的最新的RENCO在可重构部分包括近100万逻辑门,足够实现高复杂度的处理器。具体参见文献[9]。尽管如此,得到的可重构系统并非对所有的硬件实现都是优化的方法,比如不适合于浮点运算。



评论


相关推荐

技术专区

关闭