提起NVIDIA,你多半会想起显卡,像我一般年纪的人,对显卡的理解就是游戏加速。上大学时玩实况足球,有个GeForce显卡是一件很幸福的事情,比起主板上集成的显卡,它的存在能够让我们游戏中的草皮更加翠绿,脚下足球更加的行云流水,那时候的实况足球可以实现足球经理人的任何梦想,钞票能买到任何想要的球员。门将圣卡西,后卫由左至右分别是马尔蒂尼、内斯塔、特里、萨内蒂;中场维埃拉、法布雷加斯、小罗;前锋则是梅西、亨利、罗纳尔多;阵容够炫吧!
随着人工智能的火爆发展,显卡不再是游戏的代名词了,而被冠上了“机器学习心脏”这个高大上的名字。而nvida公司则凭借视觉计算领域的绝对王者地位,3年时间市值最高翻了6倍之多。我刚入职人工智能领域时,不理解为什么显卡会成为“深度学习”的依赖,相信很多人也跟我有一样的困惑;简单来说,GPU主要侧重于计算能力,它由数千个更小、但更高效的Cores组成,通过并行计算的方式,处理多重且复杂的任务。
CPU我们知道,它的全称是中央处理器,是一台计算机的控制核心和计算核心。它的主要功能在于逻辑控制和任务调度。因此GPU较之于CPU,CPU更像是一个公司的CEO,掌管的整个公司的运营和战略,统筹整个公司的工作。而GPU则是某个部门的得力干将,能力强,迅速并超额完成公司交于的任务。
深度学习是模拟人脑的神经系统组成,通过设定一些规则和数学网络模型而发展起来的一门学科,目的是为了让计算机能够像人脑一样去思考,去认识和理解这个世界。由于计算机本身没有思维能力,因此需要大量的数据去训练它,因此,它对电脑处理器的要求就必须具备高效的并行计算能力,这一点对于以串行为主、核心数基本在2位数的CPU而言是不具备的。因此,GPU凭借其千级核心,高效运算的特点,成为了深度学习、模型训练的最理想选择。
我所在公司也在涉及人工智能领域,GPU显卡的数目也有了一定规模,如Tesla的M40、P40、P100等显卡都有所应用,当前这些显卡主要用于算法与Demo的训练。我们通过 Docker 虚拟化形式实现对GPU资源的分发利用。
首先在搭载有GPU的宿主机上安装CUDA架构环境,进入CUDA Tookit Download官网,现在对应的版本。安装完成后,还需要安装 出DNN,这个是专门对深度学习框架设计的一套GPU加速方案,支持Caffe和TensorFlow等框架。
基础环境安装完毕后,即可以利用nvidia提供的nvidia-docker进行GPU的Docker虚拟化了。官方提供了这些包的安装源列表,安装起来还是比较简单的,安装完毕后,可以通过
docker run --runtime=nvidia --rm nvidia/cuda nvidia-smi
查看docker GPU容器的运行情况。
最后可以通过 learningtensorflow.com 官方提供的基于TensorFlow的基准测试脚本,进行GPU与CPU的对比测试,可以发现,GPU在并行运算上,性能要由于CPU很多的。
如上图所示,以上基于Docker虚拟化GPU的方案,从本质上说,GPU资源被打包在一个workspace(即Container)中,workspace运行在宿主机上。这种虚拟化方案虽然能够解决独立训练的问题,但同时也存在一些单点和依赖性问题。首先Workspace的运行依赖于宿主机的运行情况,宿主机从本质上讲是一个孤岛;其次,Docker Container的正常运行,也决定了Workspace的生存情况;第三,由于Container是根据Docker命令生成的,在弹性扩容上,存在一定的限制。
面对以上问题,我们考虑,是否能够采用另外一种虚拟化方案,让GPU也向云端靠拢?云计算的发展,使得应用场景发展至异构计算体系架构,随着机器学习、深度学习的发展,对GPU、FPGA等专业计算芯片也提出了虚拟化的需求。最早可以追溯到2013年,NVIDA发布了GRID K1产品,标志着GPU虚拟化的成熟运用。“A Full GPU Virtualization Solution with Mediated Pass-Through”,及分片虚拟化的vGPU技术,Nvidia对于分片虚拟化社区的推动起了至关重要的角色,并在自己的GRID一系列产品线中,不断地发展和更新着vGPU技术。
虚拟化技术的最终目标,就是努力提供与工作人员在物理机上使用时一样的体验。 NVIDIA GRID®VirtualPC(GRID vPC)和GRID®
虚拟应用程序(GRID vApp)可为每个用户改进虚拟桌面和应用程序,并在NVIDIA®Tesla®GPU上构建经过验证的性能,实现卓越的生产力,安全性和IT可管理性。 虚拟化软件划分了Tesla GPU资源,因此GPU可以在运行任何应用程序的多个虚拟机之间共享。目前GRID各release版本对GPU的虚拟化支持如下:
基本上能够支持市场上主流的Tesla GPU型号。
以下分享一个本田集团利用GRID对GPU的应用案例
通过GRID管理平台,Honda IT部门通过调度物理GPU M60,根据用户需要并提供适当数量的vGPU,并能够通过单个Dashboard管理vGPU,从而确保每个用户都有足够的运算性能完成所处理的任务,如此做到了更高级别的弹性扩容。如同云存储、云计算资源类似,GPU也实现了按需分配。
人工智能是第四次工业革命的引领技术,大数据和基于GPU的深度训练是人工智能发展的关键所在,无论之于国家还是企业,都应该通过技术创新,在这一次全世界范围内的浪潮中开启属于自己的一片天地。
https://v.youku.com/v_show/id_XNjY3MTY4NjAw.html
一个很经典的视频,对比了GPU和CPU在图形运算处理上的差别。
以上所述就是小编给大家介绍的《聊聊GPU虚拟化应用》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 虚拟化生态系统及实现从虚拟化走向云端
- KVM虚拟化技术(一)虚拟化简介以及按安装
- 云计算技术分享之桌面虚拟化中的3D虚拟化解决方案经验总结
- 虚拟化技术介绍
- 了解虚拟化硬件支持
- 如何探测虚拟化环境是物理机、虚拟机还是容器?
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。