从电子工程领域来讲,GPU是一种专门设计,主要用于图形信号处理的单芯片处理器。在独立显卡中, 一般位于PCB板的中心。与之对应的是使用计算机中央处理器的CPU。很久以前,显卡还叫做图形加速器,并不是计算机的核心部件,后来随着人们对图形显示的要求越来越高,尤其是广大游戏玩家对游戏体验的近乎疯狂的追求,显卡才普及开来。
现今,随着高性能计算的需求增加、深度学习新一轮浪潮的兴起,支持大规模并行计算的 GPU 已经在更多的领域进行着”未来革命“。今天和大家聊一聊GPU计算。
1.计算的衍变历程
计算环境的演变经历了若干个阶段,在早期的主机时代,绝大多数的计算功能和系统的组成部分,都包括在一台机器里。
在20世纪80年代,随着PC的繁荣,计算环境发生了很大的变化。通过局域网相互连接的计算设备构成客户/服务器计算环境,计算资源和数据资源被适当地分割,客户和服务器通过网络协议、远程调用或消息等方式来相互协作,完成计算。
在 1995 年,PC-Internet 时代是由低成本微处理器(CPU),标准操作系统(Windows 95)和一个新的信息门户(Yahoo!)的集成引发的。PC-Internet 时代给大约十亿人带来了计算能力,微软实现了将“计算机放在每一个桌子和每个家庭”的愿景。十年后,iPhone在我们的口袋里放了一个“互联网通信”设备。加上亚马逊 AWS 的推出,Mobile-Cloud 时代诞生了。大量应用程序走进我们的日常生活,有约 25 亿人因此享受到移动计算提供的自由。
在人工智能计算、Every thing as a service的今天,AIoT、GPU计算、深度学习算法模型正在快速普及开来,由千亿级设备构成的大网将计算渗透到生产生活的每一个角落。进入人工智能计算时代,GPU深度学习的新模型已被证明能以“难以置信的高效“解决计算机科学中的一些最复杂的问题。
2.高性能计算
需求的膨胀推动着技术变革,技术的革新进一步丰富着我们的生活,面对技术和行业融合现状,对于高性能计算的需求,成为科研、国防、医疗等领域的必然需求。
位于美国田纳西州东部的橡树岭国家实验室宣布开发出新型超级计算机 Summit,这是目前地球上最强大的计算机器。其中,使用了 27,648 块搭载 Tensor Core 的最新英伟达 Volta GPU,以及来自 IBM 的超过 9000 块传统处理器(其中包括 Power 9)。在 NVLink 等高速互联技术的帮助下,Summit 在每个节点上部署了 6 块 GPU(而不是常规的 1 块)这使得它的模拟性能达到了前作 Titan 的十倍。Marc为我们分享,这台跨时代的超级计算机上超过95%的算力来自于GPU设备。
大规模GPU设备使用带来了极大的系统精度提升以及方案开发时间缩短,特别当GPU 带来的HPC(High Performance Compting-高性能计算)性能提升 + AI深度学习在科学领域超乎想象的效果优化,搭配上集群云化低于1/6的成本节约,这将成为“加快科技创新步伐的颠覆性转型工具,实现科技潜力、释放科学应用。”
如此大规模的 GPU 使用对超级计算机来说是不寻常的,它能够更好地促使在使用深度学习解决科学难题方面出现突破。
3.深度学习
近几年,数据爆炸时代的来临以及GPU技术的快速发展,为传统机器学习和深度学习技术的快速发展提供了沃土。无论是图像识别、语音文字、MT等通用AI技术,还是自动驾驶、VR/AR等行业应用,大数据存储、清洗、预处理以及大规模并行计算能力都是刚需。计算机科学在语音识别和围棋等游戏上实现突破的原因之一就是,研究者发现图形芯片可以对深度神经网络这一机器学习技术提供更大力量。例如Facebook可以在1小时内训练完成ImageNet数据集,整个过程一共使用了256块GPU。
但这个训练在单节点是无法完成的,同时GPU集群高昂的价格和尖峰式消耗特点让人望而却步,云化、分布式深度学习训练成了必然的选择。但是,如何快速将单机程序部署到分布式环境,如何在分布式环境中根据实际计算需求快速水平扩展,如何高效进行训练数据读取,以及如何隔离不同用户的训练资源等,这些都是实际训练过程中需要考虑并解决的问题。机器学习不仅在模型的规模和复杂性方面经历了爆炸性的增长,而且在神经网络体系结构的多样性方面也经历了类似的增长。
在对比模型大小时,当前的思路都归结于物理关联:深度学习模型大小与计算和推理所需的物理网络资源成正比。例如,当开发者优化一个已训练深度学习模型来保证推断准确率和延迟时,可能会降低计算精度、简化每个模型网络层或者简化模型网络层间的连接。然而,使用更大的已训练模型往往会带来更大的优化模型来做推断。
NVIDIA提出了“GPU深度学习是一种新型计算模型”的概念。在对深度学习模型进行编码和训练之后,针对特定的运行时推断环境对其进行优化。NVIDIA使用两个关键工具解决训练和推理难题。在编码方面,基于人工智能的服务开发人员使用CUDA,这是一个并行计算平台和 GPU 通用计算的编程模型。在推断方面,基于人工智能的服务开发人员使用了英伟达的可编程推断加速器 TensorRT。
CUDA 通过简化在NVIDIA平台上实现算法所需的步骤来帮助数据科学家。TensorRT 可编程推断加速器采用经过训练的神经网络,并对其进行优化以用于运行时部署。它测试浮点数和整数精度的不同级别,以便开发人员和运算过程能够平衡系统所需的准确率和性能,从而提供优化的解决方案。
开发人员可以直接在 TensorFlow 框架中使用 TensorRT 来优化基于人工智能的服务交付模型。TensorRT可以从包括 Caffe2、MXNet和PyTorch在内的各种框架中导入开放神经网络交换 ( ONNX ) 模型。
这将帮助数据科学家更好地利用宝贵的时间。
中科云达(北京)科技有限公司成立于2016年,公司位于北京市国际信息产业基地。公司一直致力于为广大用户提供GPU高性能计算、深度学习、虚拟化仿真、定制化服务器、工作站、存储等软硬件整体解决方案,并与多家知名技术型领先厂商如超微(Supermicro)、英特尔(Intel)、华硕(ASUS)、英伟达(NVIDIA)等建立了长期的合作关系。