Local EPUB Text
绘图处理器(GPUs)
我们已经对高速计算机、大数据、数字相机和多层人工神经网络等主题进行讨论。还有一项更为重要的技术即将映入眼帘:高速独立显卡。它之所以重要的原因在于神经网络对于计算能力的要求极高。
早先,优质的独立显卡资源掌握在游戏界手里。游戏行业有时会遭遇某些保守的成见——“游戏会使青年人沉溺其中,浪费时光,毫无创造性”,然而事实上游戏行业却是创新的主要来源,尤其在图片处理方面。
游戏能测试出计算能力的高低。在游戏中,计算机需要以高清像素和快速帧率再现3D图片场景。计算机必须实时响应用户的输入,抵消几个游戏玩家之间的网络延迟时间,同时通过四射的水花和椅子的摇晃形成精准的肢体刺激。而且游戏应用对于计算机环境的要求更高,比普通应用程序的要求(如复制电子表格里的数字或数据搜索)更复杂难度更高。
连摩尔定律的速度也无法满足游戏行业对于低成本、高性能的计算机要求。于是,游戏行业只能采用了另一种方式来突破瓶颈:平行启动多个处理器。这致使游戏的硬件制造商没有研发更快速的处理器,而是研发专门的独立显卡,包含上千个平行处理器。
独立显卡有大量被称为GPUs的平行处理器(为了与传统的中央处理器CPU区别开来)。GPUs被看作是连接图片设计与游戏的特别应用。CPU的性能提升曲线可谓增长迅猛。而相比之下,GPUs的性能提升过程发展更加神速,该趋势引起了极大的关注。2006年,全球最大的独立显卡生产商之一的英伟达(Nvidia)引入了GeForce 8系列,这款GPU经过特别的设计,用途不局限于图片处理。
为了打开新产品市场,Nvidia创造了新名词“通用计算图形处理器(general purpose GPU, GPGPU)”,宣传这是台式计算机平行发展的全新领域。在Nvidia引入GeForce 8系列之前,只有专业的图片艺术家和科研精英才会用到通用平行计算。现在GPU拓展到那些需要高强度平行计算能力的应用领域,比如股市交易、工程分析,当然少不了神经网络。
神经网络正朝着平行化的趋势发展。神经网络包含许多的神经元,每个神经元处理各自接收到的输入内容,决定是否放电进行输出。这种情况非常适用于多层卷积网络,因为其包含的阵列组织能够与图像应用结合起来,这也恰好是设计GPUs的最初目的。
在大多数的计算机应用中,速度是非常重要的,对于神经网络而言,速度更是重中之重。虽然神经网络进行图片分类时,其在GPU上计算出答案的速度仅比在CPU的速度要快上一两秒,但当神经网络在训练时,GPUs的优势就十分明显了,因为训练需要进行数百万次的反向传播迭代。使用GPUs运作卷积神经网络的研究人员,相比其他使用台式电脑的同事,都能够觉察到一个明显的改善。原则上来说,对于大多数应用程序来说,训练过程的速度并不是那么重要。毕竟,训练往往只需要进行一次就够了;然而在实践中,现实世界没有人愿意研发、编程一套训练时间长达一个月之久的算法。如果人们面对的是一个只需三天时间便能完成训练的网络,那么情形将大不一样。