性能怪兽!一个7倍于GoogleNet/AlexNet GPU的加速卡诞生了!

作者:清风流云

背景:
脉冲神经网络Spiking neuralnetworks (SNNs)是第三代神经网络模型,其模拟神经元更加接近实际,除此之外,把时间信息的影响也考虑其中。基本思路为:动态神经网络中的神经元不是在每一次迭代传播中都被激活(而在典型的多层感知机网络中却是),而是在它的膜电位达到某一个特定值才被激活。当一个神经元被激活,它会产生一个信号传递给其他神经元,提高或降低其膜电位。在脉冲神经网络中,神经元的当前激活水平(被建模成某种微分方程)通常被认为是当前状态,一个输入脉冲会使当前这个值升高,持续一段时间,然后逐渐衰退。出现了很多编码方式把这些输出脉冲序列解释为一个实际的数字,这些编码方式会同时考虑到脉冲频率和脉冲间隔时间。

BrainChip加速卡:
前段时间,BrainChip Holding的研发团队发布了一款BrainChip加速卡,准确点说应该是一个具有PCIe接口的服务加速卡,在此加速卡内部,研发人员采用脉冲神经网络SNN(而非卷积神经网络CNN)的方式达到可以同时处理16通道不同格式的视频流数据的性能效果。当然,之所以可以达到如此高的性能关键点在于这个BrainChip加速卡是通过6个类脑脉冲神经网络SNN处理器实现,而要想将6个同构处理器灵活无缝隙地组合在一起,不可避免的就需要FPGA的支援——一个Xilinx Kintex UltraScale FPGA板卡上。

下图正是这款BrainChip加速卡:

图1: BrainChip Accelerator Card(six SNNs)

图1: BrainChip Accelerator Card(six SNNs)

在整个加速器卡中,每个BrainChip处理器核都可以快速地对用户自定义的图像进行缩放和增激处理,此外,还可以通过内部SNN对图片内容进行对象识别。而且,SNN收敛函数完全可以通过低分辨率的图片(比如20X20像数的图片)进行训练产生。从这一点上可以推断研发人员之所以在BrainChip加速卡核中加入SNN主要是因为SNN比较擅长在微光、低分辨率及噪声环境下对对象进行识别。

此外,前面也提到这款BrainChip加速卡可以并行地同时处理16通道不同格式的视频数据流,并且其处理速率可以达到每秒600帧以上,而整个过程消耗的功率则控制在15W以内。根据BrainChip加速卡资料显示,不论是每秒处理帧数还是功耗方面,与基于CNN处理的GPU加速器(神经网络的深度学习实现,比如GoogleNet和AlexNet)相比较,它都有7倍的提高。下图是几款加速器与BrainChip之间的比较:

根据背景对SNN的简单介绍可以联想,从SNN依靠峰电位定时和强度模型的角度来看,SNN模仿人类大脑功能(突触连接,神经末梢)会比CNN更加深入和类似。以下是BrainChip加速卡的SNN与一个CNN模块之间的对照图:

总结:
从目前智能控制的发展实际来看,涉及到“人工智能”,“深度学习”这些研究或研发项目时,不可避免的底层全部都是神经网络,但是至于到底哪套算法比较好还真的是见仁见智,各有专攻。但是不管怎么说,在初期研究或试验阶段,无论采取哪套神经网络算法,都需要FPGA的鼎力支持。

声明:本文为原创文章,转载需注明作者、出处及原文链接