使用专用硬件加速深度卷积神经网络

简介:

英文论文链接:http://research.microsoft.com/apps/pubs/default.aspx?id=240715

翻译:卜居

转载请注明出处:http://blog.csdn.net/kkk584520/article/details/47711755

【摘要】

最近在多层卷积神经网络的突破导致了识别任务(如大量图片分类和自动语音识别)准确率的大幅提升【1】。这些多层神经网络很大,很复杂,需要大量计算资源来训练和评估【2】。然而这些需求发生在目前这样一个尴尬的时刻,商业处理器性能增长十分缓慢。

专用硬件形式有GPGPU,FPGA和ASIC,提供了通往处理能力和高能效的坦途。微软通过使用FPGA增强型服务器(类似已经集成到微软数据中心的硬件【3】)加速深度卷积神经网络驾驭了专用硬件。

开始只是在中等规模FPGA上实现了单节点CNN加速器,展示了优于遗忘FPGA设计和高端GPGPU的性能,降低了功耗。未来会通过低延迟通信互联多个FPGA,进一步可能训练和评估模型。


【背景】

目前深度卷积神经网络一般组织为交替的卷积层、最大池化层后面加一系列稠密的全连接层,如图1中经典的拓扑图所示。


每个3D立方体表示一层的输入,送入下一层会变换为新3D立方体。在例子中有5个卷积层,3个最大池化层,以及3个全连接层。

本文中我们主要讨论3D卷积问题,尽管其他操作如pooling和全连接层也会涉及。图2展示了3D卷积的基本模型。一个N x N x D的3D输入立方体被H个k x k x D维的卷积核卷积,输出间隔为S,每个3D核用类似滑动窗口的形式移动(移动偏移量由参数S定义)。每次移动,3D卷积核的每个权值同映射到3D输入立方体的输入值进行乘加,卷积后,可选地进行pooling操作(由参数p和s定义)用来下采样卷积输出,选择窗口的最大值或平均值


【在数据中心加速深度卷积神经网络】

2014年微软宣布了Catapult项目,成功展示了用FPGA在数据中心使Bing Ranking加速了近2倍【3】。利用这个基础,我们团队在微软研究院开发了高吞吐CNN FPGA加速器,在很低的服务器功耗下获得了优异性能。图3给出了用于高效计算卷积层前向传播的CNN FPGA加速器高层次概览。


关键特征如下:

(1)软件可配置的引擎,支持多层运行时配置(无需硬件重编程);

(2)高效数据缓冲体制和片上分发网络,将片外访存降至最低;

(3)处理单元(PE)构成的空间分布阵列,可很容易扩展到上千个单元;

在正常操作下,CNN加速器可以获取输入图像,连续处理多个卷积层。在初始阶段,输入图像像素从本地DRAM流入片上,存储到多个bank输入缓冲区。之后,数据流入多个PE阵列,实现3D卷积步骤中的独立点乘操作。顶层控制器完成序列化、寻址、分发数据到每个PE阵列。最终,累加结果发送到特定片上网络,将计算输出循环送入输入缓冲区用于下一轮的计算(虽然图3中没有显示,但存在额外的逻辑处理pooling和ReLU操作)。


图3中高亮的加速器位于双插槽Xeon服务器,装备一个Catapult FPGA卡,包括中等规模Stratix D5 FPGA和8GB DDR3-1333[3]。每个FPGA卡通过PCIe 3x8支持高达8GB/s带宽,同时本地DRAM支持21.3GB/s带宽。更多硬件描述可参考Catapult论文【3】。


表1显示了使用著名模型(如基于cuda-convnet【4】的CIFAR-10,基于Alex的ImageNet-1K【1】等)进行图像分类(只有前向传播过程)的吞吐情况。我们进一步评估了最大的和最具挑战性的模型:ImageNet-22K,在微软ADAM项目中训练的DCNN【2】。


总体上看,我们目前在装备中等规模Stratix V D5 FPGA的Catapult服务器上获得了最高处理吞吐。相比最近发表的FPGA实现【5】和运行在高端GPGPU上的Caffe+cuDNN【6】。注意GPGPU解决方案需要高达235W功耗【7】,使得部署到功耗限制的数据中心不太现实。相反,FPGA解决方案功耗不超过25W,占整个服务器功耗的不到10%。我们的实现获得了近3倍加速,相对最近发表的利用Virtex 7 485T FPGA的CNN加速器【5】。

(卜居注:【5】只说了处理能力达到61.62GFLOPS,并没有说处理图片速度,这篇文章怎么算的?)

我们参数化的CNN加速器可灵活扩展到更新和更快的FPGA。我们团队正在将设计移植到Altera的最新Arria 10 FPGA上,提供了对浮点处理支持,可以在高能效情况下达到1TFLOPS处理能力【8】。表1列出了我们的预期性能。


总而言之,本文描述了使用FPGA加速深度卷积神经网络的研究。前期结果是很有希望的,显示出专用硬件具有低功耗、高性能的优势。未来我们希望在Arria 10和Stratix 10上设计更高性能的加速器,并考虑多片互联并行训练和评估。

相关实践学习
部署Stable Diffusion玩转AI绘画(GPU云服务器)
本实验通过在ECS上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。
目录
相关文章
|
18天前
|
机器学习/深度学习 人工智能 算法
猫狗宠物识别系统Python+TensorFlow+人工智能+深度学习+卷积网络算法
宠物识别系统使用Python和TensorFlow搭建卷积神经网络,基于37种常见猫狗数据集训练高精度模型,并保存为h5格式。通过Django框架搭建Web平台,用户上传宠物图片即可识别其名称,提供便捷的宠物识别服务。
206 55
|
28天前
|
机器学习/深度学习 人工智能 算法
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
宠物识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了37种常见的猫狗宠物种类数据集【'阿比西尼亚猫(Abyssinian)', '孟加拉猫(Bengal)', '暹罗猫(Birman)', '孟买猫(Bombay)', '英国短毛猫(British Shorthair)', '埃及猫(Egyptian Mau)', '缅因猫(Maine Coon)', '波斯猫(Persian)', '布偶猫(Ragdoll)', '俄罗斯蓝猫(Russian Blue)', '暹罗猫(Siamese)', '斯芬克斯猫(Sphynx)', '美国斗牛犬
153 29
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
|
1月前
|
机器学习/深度学习 资源调度 算法
图卷积网络入门:数学基础与架构设计
本文系统地阐述了图卷积网络的架构原理。通过简化数学表述并聚焦于矩阵运算的核心概念,详细解析了GCN的工作机制。
84 3
图卷积网络入门:数学基础与架构设计
|
27天前
|
机器学习/深度学习 人工智能 自然语言处理
深入理解深度学习中的卷积神经网络(CNN)##
在当今的人工智能领域,深度学习已成为推动技术革新的核心力量之一。其中,卷积神经网络(CNN)作为深度学习的一个重要分支,因其在图像和视频处理方面的卓越性能而备受关注。本文旨在深入探讨CNN的基本原理、结构及其在实际应用中的表现,为读者提供一个全面了解CNN的窗口。 ##
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习中的卷积神经网络(CNN): 从理论到实践
本文将深入浅出地介绍卷积神经网络(CNN)的工作原理,并带领读者通过一个简单的图像分类项目,实现从理论到代码的转变。我们将探索CNN如何识别和处理图像数据,并通过实例展示如何训练一个有效的CNN模型。无论你是深度学习领域的新手还是希望扩展你的技术栈,这篇文章都将为你提供宝贵的知识和技能。
283 7
|
2月前
|
机器学习/深度学习 自然语言处理 算法
深入理解深度学习中的卷积神经网络(CNN)
深入理解深度学习中的卷积神经网络(CNN)
54 1
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
探索深度学习中的卷积神经网络(CNN)及其在现代应用中的革新
探索深度学习中的卷积神经网络(CNN)及其在现代应用中的革新
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习中的卷积神经网络(CNN)及其在图像识别中的应用
本文旨在通过深入浅出的方式,为读者揭示卷积神经网络(CNN)的神秘面纱,并展示其在图像识别领域的实际应用。我们将从CNN的基本概念出发,逐步深入到网络结构、工作原理以及训练过程,最后通过一个实际的代码示例,带领读者体验CNN的强大功能。无论你是深度学习的初学者,还是希望进一步了解CNN的专业人士,这篇文章都将为你提供有价值的信息和启发。
|
2月前
|
机器学习/深度学习 人工智能 网络架构
深入理解深度学习中的卷积神经网络(CNN)
深入理解深度学习中的卷积神经网络(CNN)
55 1
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
深入理解深度学习中的卷积神经网络(CNN)
深入理解深度学习中的卷积神经网络(CNN)

热门文章

最新文章