基于GPU加速的深度学习算法,百度、微软和Google的计算机视觉系统在ImageNet图像分类和识别测试中分别达到了5.98% (2015年1月数据)4.94%(2015年2月数据)、4.8%(2015年2月数据)、的错误率,接近或超过了人类识别水平——跑分竞赛虽然有针对已知数据集进行特定优化之嫌,但优化结果对工业界的实践仍然具有参考价值。
人工智能从过去基于模型的方法,变成现在基于数据、基于统计的方法,主要得益于GPU高度并行的结构、高效快速的连接能力。事实证明GPU很适合深度学习。
几乎所有深度学习的研究者都在使用GPU
熟悉深度学习的人都知道,深度学习是需要训练的,所谓的训练就是在成千上万个变量中寻找最佳值的计算。这需要通过不断的尝试实现收敛,而最终获得的数值并非是人工确定的数字,而是一种常态的公式。通过这种像素级的学习,不断总结规律,计算机就可以实现像像人一样思考。如今,几乎所有的深度学习(机器学习)研究者都在使用GPU进行相关的研究。当然,我说的是“几乎”。除了GPU之外,包括MIC和FPGA也提供了不同的解决方案。NVIDIA如何看待不同的硬件架构对深度学习的影响,又是如何评价这些技术的呢?
NVIDIA中国区解决方案架构工程总监罗华平认为:“技术发展和科技的发展,是需要不同的技术一起来参与。无论是GPU也好、FPGA也好或者是专用的神经网芯片也好,它的主要目的都是推动深度学习(机器学习)这个方向的技术发展。那么我们在初期,确实可以尝试不同的技术,来探讨哪种技术可以更好的适合这项应用。从目前来看,深度学习大量的使用,主要集中在训练方面。那么在这个领域,GPU确实是非常适合的,这也体现在所有的这些工业界的大佬如BAT、谷歌,Facebook等等,都在使用GPU在做训练。”而除了训练之外,在实际的应用方面,NVIDIA也正在结合中国地区IDC机房普遍具备的功耗、网络等特点,“考虑是否设计低功耗的GPU,来满足用户的需求”。
除了硬件方面的因素之外,英伟达中国区技术经理赖俊杰也从软件方面解答了GPU对于深度学习应用的价值。首先从深度学习应用的开发工具角度,具备CUDA支持的GPU为用户学习Caffe、Theano等研究工具提供了很好的入门平台。其实GPU不仅仅是指专注于HPC领域的Tesla,包括Geforce在内的GPU都可以支持CUDA计算,这也为初学者提供了相对更低的应用门槛。除此之外,CUDA在算法和程序设计上相比其他应用更加容易,通过NVIDIA多年的推广也积累了广泛的用户群,开发难度更小。最后则是部署环节,GPU通过PCI-e接口可以直接部署在服务器中,方便而快速。得益于硬件支持与软件编程、设计方面的优势,GPU才成为了目前应用最广泛的平台。
深度学习发展遇到瓶颈了吗?
我们之所以使用GPU加速深度学习,是因为深度学习所要计算的数据量异常庞大,用传统的计算方式需要漫长的时间。但是,如果未来深度学习的数据量有所下降,或者说我们不能提供给深度学习研究所需要的足够数据量,是否就意味着深度学习也将进入“寒冬”呢?对此,赖俊杰也提出了另外一种看法。“做深度神经网络训练需要大量模型,然后才能实现数学上的收敛。深度学习要真正接近成人的智力,它所需要的神经网络规模非常庞大,它所需要的数据量,会比我们做语言识别、图像处理要多得多。假设说,我们发现我们没有办法提供这样的数据,很有可能出现寒冬”。
不过他也补充认为——从今天看到的结果来说,其实深度学习目前还在蓬勃发展往上的阶段。比如说我们现阶段主要做得比较成熟的语音、图像方面,整个的数据量还是在不断的增多的,网络规模也在不断的变复杂。现在我没有办法预测,将来是不是会有一天数据真不够用了。
对于NVIDIA来说,深度学习是GPU计算发展的大好时机,也是继HPC之后一个全新的业务增长点。正如Pandey所提到的那样,NVIDIA将世界各地的成功经验带到中国,包括国外的成功案例、与合作伙伴的良好关系等等,帮助中国客户的快速成长。“因为现在是互联网的时代,是没有跨界的时代,大家都是同等一起的。”
GPU、FPGA 还是专用芯片?
尽管深度学习和人工智能在宣传上炙手可热,但无论从仿生的视角抑或统计学的角度,深度学习的工业应用都还是初阶,深度学习的理论基础也尚未建立和完善,在一些从业人员看来,依靠堆积计算力和数据集获得结果的方式显得过于暴力——要让机器更好地理解人的意图,就需要更多的数据和更强的计算平台,而且往往还是有监督学习——当然,现阶段我们还没有数据不足的忧虑。未来是否在理论完善之后不再依赖数据、不再依赖于给数据打标签(无监督学习)、不再需要向计算力要性能和精度?
退一步说,即便计算力仍是必需的引擎,那么是否一定就是基于GPU?我们知道,CPU和FPGA已经显示出深度学习负载上的能力,而IBM主导的SyNAPSE巨型神经网络芯片(类人脑芯片),在70毫瓦的功率上提供100万个“神经元”内核、2.56亿个“突触”内核以及4096个“神经突触”内核,甚至允许神经网络和机器学习负载超越了冯·诺依曼架构,二者的能耗和性能,都足以成为GPU潜在的挑战者。例如,科大讯飞为打造“讯飞超脑”,除了GPU,还考虑借助深度定制的人工神经网络专属芯片来打造更大规模的超算平台集群。
不过,在二者尚未产品化的今天,NVIDIA并不担忧GPU会在深度学习领域失宠。首先,NVIDIA认为,GPU作为底层平台,起到的是加速的作用,帮助深度学习的研发人员更快地训练出更大的模型,不会受到深度学习模型实现方式的影响。其次,NVIDIA表示,用户可以根据需求选择不同的平台,但深度学习研发人员需要在算法、统计方面精益求精,都需要一个生态环境的支持,GPU已经构建了CUDA、cuDNN及DIGITS等工具,支持各种主流开源框架,提供友好的界面和可视化的方式,并得到了合作伙伴的支持,例如浪潮开发了一个支持多GPU的Caffe,曙光也研发了基于PCI总线的多GPU的技术,对熟悉串行程序设计的开发者更加友好。相比之下,FPGA可编程芯片或者是人工神经网络专属芯片对于植入服务器以及编程环境、编程能力要求更高,还缺乏通用的潜力,不适合普及。
(来源:十万个为什么)
查看“关于华为:大公司是怎样进行元器件选型的?”输入0107
查看“华为是怎样开发硬件的?华为的硬件开发有何不同?”输入0105
查看“可靠性设计还不懂?看完这张攻略图就明白了”输入1215
查看“芯片里面几千万的晶体管是怎么实现的?”输入1214
查看“中科院有多牛?看看光电领域这些各领风骚的研究所!”输入1211
查看“元器件储存器到底是如何计算的?”输入1112
CISSCOOL
点击下方阅读原文,体验最好用的元器件搜索引擎!