接触过NVIDIA加速计算产品的用户,应该都对CUDA这个词不陌生,CUDA从最初发布到今天已经有10年的历史了。 CUDA是ComputeUnifiedDeviceArchitecture的缩写,从这个词组本身设计上,可以看出,CUDA的最初开发人员是希望CUDA成为不同平台上的统一计算接口。
NVIDIA的芯片产品主要包括:面向游戏业务的GeForce、面向专业图形图像领域的Quadro、面向企业级计算的Tesla、面向嵌入式计算的Tegra,以及面向虚拟化应用的Grid。
今天CUDA在高性能计算,加速计算领域占据着非常重要的地位,也实现了在NVIDIA各个产品线上统一接口的目标。换句话说,在NIVIDA的GeForce,Quadro,Tesla,Tegra等产品上都可以运行CUDA程序。
GPU当然并不是适合所有的任务,并且在很多情况下,需要跟CPU做很好的配合,由CPU来负责程序中的串行部分。
GPU从设计之初是为了加速大量类似操作(比如几百万甚至更多像素的渲染),所以architecture做tradeoff的时候考虑的是获得多个任务总体的高throughput,而不是单个任务的低延迟高相应。
GPU拿来做其它任务也必然是类似的,会比较适合大量类似的并发处理,或者说应用的并行度要足够高。
从传统上看,一直到2013年、2014年左后,NVIDIA的GPU,特别是企业产品Tesla,主要还是应用在传统的高性能计算领域,用户主要是用GPU来加速一些理论物理、分子动力学等等科学计算类的任务。工业界的应用的话,主要集中在石油行业。其他的一些应用,也包括一些金融类应用,比如期权定价等等。那么,2012年Hinton在ImageNet比赛中取得突破性的进展的时候,采用的就是NVIDIA的GeForce游戏显卡。那么到现在,也就是2017年,机器学习特别是深度学习,已然成为NVIDIA企业级产品应用最大的领域。
从这里我们可以看到,NVIDIA的GPU产品在最近几年,在深度学习领域取得的成功,是有一定的偶然因素的,也存在一定的必然。说偶然,是因为技术的突破,数据的积累还有计算能力的演进,大概到了这样的一个时间点。必然呢,是因为NVIDIA其实对于DeepLearning的促进,跟在其他领域,特别是科学计算领域对那些应用的促进,并没有本质的区别,都是来源于NVIDIA在高性能计算领域,对于整个生态环境的持续投入。正是因为有了比较好的软硬件的工具,还有比较完善的生态系统,研究人员才可以很容易的基于GPU去开发所需要的应用。回到DeepLearning,像2012年Hinton他们做的工作,最终引导了这一次比较深刻的技术变革。
GPU 英伟达以它的先进Pascal架构TeslaP4、P40和P100GPU加速器为特色,其吞吐量峰值比单个CPU服务器要高33倍,并且同一时间内可以降低最大达31倍的延迟。该性能对比来源于一个英伟达的研究,该研究比较了AlexNet、GoogleNet、ResNet-152和VGG-19在单块CPU服务器(单个IntelXeonE5-2690v4@2.6GHz)和GPU服务器(sameCPUwith1XP100PCIe)上的性能。
为了帮助开发者充分利用它的硬件,英伟达cuDNN库为GPU提供了一系列的推理优化。在小批量下,cuDNN改善了卷积算法不能并行化足够的线程以充分利用GPU的问题。传统的算法如预计算的隐式GEMM(一般矩阵-矩阵乘法)最优化为大规模输出矩阵,而它的默认并行化策略并不能启用足够的线程块,因此批量大小在输出矩阵的一个维度中是一个乘法因子。最新版本的cuDNN通过分裂出额外的维度而改进了该算法,这也就减少了每一个线程块的计算总量,并允许启用更多的线程块来提升GPU使用率和性能。 另外一个主要的改进就是降低精确度的浮点运算操作。近年来,研究者发现使用更低精度的浮点运算表征(FP16)储存层级激励值,而更高的表征(FP32)进行计算并不会损失分类精度。即使期间的性能提升会有带宽限制,但也能在运行DNN时减少整体的内存占用要求。cuDNN为卷积算法引进了FP16,相对于等价的FP32实现了两倍的性能提升。
主流GPU如何选择 要挑选一款GPU,首先应该了解GPU大概的性能,或者是说它的特点。目前主流的GPU架构是Pascal,它也是目前在市场上最新的GPU架构。Pascal架构的特点主要是针对深度学习,或者是针对GPU计算来使用。在4年的时间里,它有的性能有巨大的提高。
英伟达目前主要的GPU平台
选择GPU需要考虑到几个因素:
计算性能
计算性能又分为双精度计算性能和单精度的计算性能。双精度的是FP64,单精度是FP32,还有半精度的FP16。这个主要是一个Training平台,主要会用到FP32,跟FP16。FP64主要是在HPC的领域里用的比较多,如果精度不够,计算也许会出现一些状况。深度学习使用FP32或者FP16就已足够。 如果要做深度学习的训练,最主要关心的就是计算性能。P100,P40有很大的性能优势,因为K80由两个GPU的芯片组成,它的单精度计算性能是两个芯片相交的一个结果,但是在做GPU计算过程中,两个芯片相当于使用两个GPU,就势必会涉及到数据交换。
Memory(内存)
因为Memory如果很大的话,Bas也相对要大一些,这样可以充分的去使用GPU的计算性能,减少GPU跟CPU之间的I/O,可以优化AI的应用程序,所以Memory对也是非常重要的。
Memory的带宽
计算性能可以非常快,但是如果GPU内部的Memory带宽不够的话会成为运行的一个瓶颈点。
CPU与GPU的连接方式 PCIe,或者是NVLink,现在CPU跟GPU,如果X86的GPU,大部分最主要还是基于PCIe来去连接GPU的,但是GPU跟GPU之间,可以通过NVLink进行快速的数据交换。
功耗 因为如果搭建了一个很大的计算平台,功耗对于机房环境的设置也是非常重要的点。现在做深度学习很多人希望在一个迭代内部,GPU的数量越多越好。GPU是一个局部发展量非常大的平台,所以说它的功耗对整个机房的功耗要求也是非常高的。要去综合考虑这几方面的因素来选择GPU平台。
“性能怪兽”——TeslaP4/P40
如果说,人工智能能够帮助人类消除语言障碍,预测患者的生命体征,甚至使盲人“看到”周围环境并读懂面部表情;那么NVIDIA的TeslaP4/P40,则能够加速处理人工智能的推理工作负载,带来大幅飙升的效率和速度。 这两款GPU基于Pascal架构,包含基于8位(INT8)数据的专用推理指令,响应速度比CPU快45倍。其中TeslaP4效率比CPU高40倍,比FPGA高8倍;TeslaP40比GPU解决方案快4倍。配合高性能推理引擎NVIDIATensorRT和NVIDIADeepStreamSDK提供的大规模视频分析功能,不仅能够加速推理速度同时降低能耗,还能在自动驾驶汽车、交互式机器人、过滤和广告投放等应用场合下,理解大批量的视频内容,让企业提供以前不可能提供的创新型服务。
NVIDIATeslaP4采用革命性的NVIDIAPascal™架构,专为处理深度学习工作负载,启用智能响应人工智能服务的外扩型服务器而打造,可显著提升其运作效率。该显卡可将任何超大规模基础架构的延迟降低15倍,并可以提供比CPU高60倍的惊人能效。这使得我们开发了许多新的人工智能服务,这些服务在过去由于延迟限制而无法实现。
打造NVIDIATeslaP40的主要目的是为深度学习部署提供更大的吞吐量。每个GPU可带来47TOPS(万亿次运算/秒)的推理性能和INT8运算能力,使得一台配备8个TeslaP40的服务器可提供相当于超过140台CPU服务器的性能。随着模型的准确性和复杂性越来越高,CPU已经无法再提供互动用户体验。TeslaP40可在极其复杂的模型中实现实时响应,能够降低延迟,将性能提升为CPU的30倍以上。
最关键的提一点,就是其中的int8的支持。
int8指的是用8比特的整型去做神经网络的前向inference。实际测试发现,int8的使用,可以通过数据转化的调整等等操作,把精度的损失降到非常非常的小,打比方说,在做图像分类的时候,精度损失在百分之零点几。对于精算性能的提高,还是很显著的。理论上来说,是四比一的关系。实际上,相对于MP32的浮点数计算能力,大概是三点几倍。 值得提的一点,TeslaP4实际上是由NVIDIA中国的解决方案工程师针对中国用户的需求,向美国总部提出并设计的产品。你会发现它的功耗比较低,只有50瓦或者70瓦这两种SPEC的SQ,不需要额外供电,能够插在很多没有针对GPU做额外电源设计的服务器里面。 NVIDIATeslaP4/P40与TeslaP100,将打造适用于人工智能应用的端到端深度学习解决方案。这样的解决方案将为企业提供极高的计算性能,为NVIDIA客户提供越来越新颖的人工智能服务。
业界对TeslaP4/P40的评价:
曙光信息产业股份有限公司副总裁,沙超群 “高性能计算是推动深度学习发展的动力。随着深度学习产业化时代的开启,计算需求将被迅速激发。TeslaP4/P40加速器具备前所未有的功耗优势和强大性能。曙光致力于为中国用户提供基于GPU的深度学习软硬件一体化解决方案。此次和NVIDIA联合发布的XMachinePascal一体机就是我们为中国用户量身定做的深度学习硬件产品。”
浪潮集团高性能计算总经理,刘军 “P40和P4这两款GPU加速器,创新的Pascal架构、对深度学习最复杂模型的实时响应以及前所未有的功耗优势,必将给VR、人工智能以及其他高性能计算领域带来更好的商用计算体验。浪潮一直是NVIDIA最亲密的全球合作伙伴之一,双方在中国率先成立了Inspur-NVIDIA云超算应用创新中心,共同推动了横跨十个领域的数十项应用的GPU加速。未来,浪潮将与NVIDIA展开更加全面深入的合作,推动双方的创新产品在深度学习、高性能计算和大数据等领域的广泛应用。”
百度硅谷人工智能实验室高级研究员GregDiamos “向每个用户提供简单和快速响应的体验对我们很重要。我们在生产环境中部署了NVIDIAGPU,提供由AI驱动的服务,例如我们的DeepSpeech2系统。通过使用GPU,响应速度达到了未经加速的服务器不可企及的水平。具备INT8功能的Pascal将实现更大的飞跃,我们期待它能给用户带来更好的体验。”
云达(北京)科技有限公司总裁MikeYang “云达科技的客户期待我们能够提供领先的超大规模数据中心、超融合架构rack-level解决方案,来支持高性能的工作负载。对于深度学习应用,并行计算响应之间的延迟时间是关键,TeslaP40和P4将提供更精准、响应更迅捷的下一代GPU解决方案。”
Tractica首席分析师,BruceDaley “Tractica的研究表明,人工智能将来带更具颠覆性的新商业模式。NVIDIATeslaP4和P40更大的吞吐量和效率将在未来数年内助力实现这样的目标。”
Cirrascale公司总裁,PJGo “我们的业务重心是利用我们独特而强大的硬件与GPU集群,为客户构建深度学习基础设施。TeslaP40GPU加速器将使我们能够为更大、更准确的深层神经网络带来无比快速和高效的解决方案。”