深度学习硬件架构简述

深度学习具备极高的计算需求, 要对深度学习应用进行开发并商业化,就须要找到合适的硬件配置。目前,在开发用于深度学习应用的高效硬件平台这一领域,竞争十分激烈。这里将介绍具体的硬件要求,并讨论将来对深度学习硬件的展望。程序员

深度学习在这十年,甚至是将来几十年内都有多是最热门的话题。虽然深度学习已经是广为人知了,但它并不只仅包含数学、建模、学习和优化。算法必须在优化后的硬件上运行,由于学习成千上万的数据可能须要长达几周的时间。所以,深度学习网络亟需更快、更高效的硬件。面试

众所周知,并不是全部进程都能在CPU上高效运行。游戏和视频处理须要专门的硬件——图形处理器(GPU),信号处理则须要像数字信号处理器(DSP)等其它独立的架构。人们一直在设计用于学习(learning)的专用硬件,例如,2016年3月与李世石对阵的AlphaGo计算机使用了由1920个CPU和280个GPU组成的分布式计算模块。而随着英伟达发布新一代的Pascal GPU,人们也开始对深度学习的软件和硬件有了同等的关注。接下来,让咱们重点来看深度学习的硬件架构。算法

对深度学习硬件平台的要求编程

要想明白咱们须要怎样的硬件,必须了解深度学习的工做原理。首先在表层上,咱们有一个巨大的数据集,并选定了一种深度学习模型。每一个模型都有一些内部参数须要调整,以便学习数据。而这种参数调整实际上能够归结为优化问题,在调整这些参数时,就至关于在优化特定的约束条件。网络

深度学习硬件(图片:英伟达)多线程

百度的硅谷人工智能实验室(SVAIL)已经为深度学习硬件提出了DeepBench基准,这一基准着重衡量的是基本计算的硬件性能,而不是学习模型的表现。这种方法旨在找到使计算变慢或低效的瓶颈。 所以,重点在于设计一个对于深层神经网络训练的基本操做执行效果最佳的架构。那么基本操做有哪些呢?如今的深度学习算法主要包括卷积神经网络(CNN)和循环神经网络(RNN)。基于这些算法,DeepBench提出如下四种基本运算:架构

矩阵相乘(Matrix Multiplication)——几乎全部的深度学习模型都包含这一运算,它的计算十分密集。框架

卷积(Convolution)——这是另外一个经常使用的运算,占用了模型中大部分的每秒浮点运算(浮点/秒)。分布式

循环层(Recurrent Layers )——模型中的反馈层,而且基本上是前两个运算的组合。性能

All Reduce——这是一个在优化前对学习到的参数进行传递或解析的运算序列。在跨硬件分布的深度学习网络上执行同步优化时(如AlphaGo的例子),这一操做尤为有效。

除此以外,深度学习的硬件加速器须要具有数据级别和流程化的并行性、多线程和高内存带宽等特性。 另外,因为数据的训练时间很长,因此硬件架构必须低功耗。 所以,效能功耗比(Performance per Watt)是硬件架构的评估标准之一。

当前趋势与将来走向

英伟达的GPU在深度学习硬件市场上一直处于领先地位(图片:英伟达)

英伟达以其大规模的并行GPU和专用GPU编程框架CUDA主导着当前的深度学习市场。可是愈来愈多的公司开发出了用于深度学习的加速硬件,好比谷歌的张量处理单元(TPU/Tensor Processing Unit)、英特尔的Xeon Phi Knight's Landing,以及高通的神经网络处理器(NNU/Neural Network Processor)。像Teradeep这样的公司如今开始使用FPGA(现场可编程门阵列),由于它们的能效比GPU的高出10倍。 FPGA更灵活、可扩展、而且效能功耗比更高。 可是对FPGA编程须要特定的硬件知识,所以近来也有对软件层面的FPGA编程模型的开发。此外,一直以来广为人所接受的理念是,适合全部模型的统一架构是不存在的,由于不一样的模型须要不一样的硬件处理架构。 而研究人员正在努力,但愿FPGA的普遍使用可以推翻这一说法。

大多数深度学习软件框架(如TensorFlow、Torch、Theano、CNTK)是开源的,而Facebook最近也开放其 Big Sur 深度学习硬件平台,所以在不久的未来,咱们应该会看到更多深度学习的开源硬件架构 。

结语

感谢您的观看,若有不足之处,欢迎批评指正。

若是有对大数据感兴趣的小伙伴或者是从事大数据的老司机能够加群:

658558542    (☛点击便可加入群聊

里面整理了一大份学习资料,全都是些干货,包括大数据技术入门,海量数据高级分析语言,海量数据存储分布式存储,以及海量数据分析分布式计算等部分,送给每一位大数据小伙伴,这里不止是小白汇集地,还有大牛在线解答!欢迎初学和进阶中的小伙伴一块儿进群学习交流,共同进步!

最后祝福全部遇到瓶颈的大数据程序员们突破本身,祝福你们在日后的工做与面试中一切顺利。