杨净 发自 凹非寺 
量子位 报道 | 公众号 QbitAI

随着GPU算力越来越强,其成本也越来越高昂。

但有时,执行一个深度学习任务,并不需要占用一整张GPU。

就相当于,你不仅多花了钱,还浪费了资源。

阿里云最近提出的这项技术,帮助你解决了这一困惑。

cGPU容器共享技术

让用户通过容器来调度底层GPU资源,以更细颗粒度调度使用GPU,提高GPU资源利用率,从而来实现降本增效。

以往的研究中,业内也有一些GPU共享方案,比如NVIDIA MPS、NVIDIA vGPU、rCUDA等。

但也存在了一些问题。

比如,在容器调度GPU的时候,不同线程中的容器应用可能出现显存资源争抢和互相影响的现象,未能做到容器的完全隔离。

举个例子,当一个企业在两个容器中分别运行着GPU的推理应用,一个已经稳定了,一个还在开发阶段。

如果其中一个容器中的应用出现故障,由于没有实现很好的隔离技术,往往导致另一容器中的应用也会出现故障。

那么阿里云的这项技术,就可以实现容器的「安全隔离」,业务之间不会相互干扰。

那么,这个作为业内首创的「基于内核虚拟GPU隔离」的GPU共享容器方案,具体是如何实现的?

  • 通过一个内核驱动,为容器提供了虚拟的GPU设备,从而实现了显存和算力的隔离;

  • 通过用户态轻量的运行库,来对容器内的虚拟GPU设备进行配置。

此外,还做到了无需替换CUDA静态库或动态库;无需重新编译CUDA应用;CUDA,cuDNN等版本随时升级无需适配等特性。

如何使用?

目前,阿里云容器服务已经支持cGPU容器组件。

登录容器服务 Kubernetes 版控制台,简单的点击几下,为容器节点打标,就可以利用cGPU容器隔离,最大化的利用GPU的硬件能力了。

同时,还可以通过Prometheus的监控能力查看每个cGPU容器内的显存用量,在享受低成本的同时,保障了应用的可靠性。

此外,还开放了阿里云GPU实例上使用cGPU容器的能力。cGPU依赖 Docker 和 NVIDIA Docker,在使用cGPU前,请确保环境可以正常创建带GPU的容器服务。

详细使用指南,可戳文末链接哦~

性能分析

使用方式了解了,那么就是性能问题。

「cGPU容器方案会不会对性能有影响?有多少影响?」

以下有一组测试数据,供你参考。

这是在常用的tensorflow框架下用benchmark工具分别测试了模型推理和训练性能。

首先是单cGPU容器 VS 单GPU直通性能比较,分别在cGPU容器内部以及标准的Docker容器内部跑测试。

为cGPU容器内的GPU实例分配所有的显存和算力,来显示在不共享GPU的情况下的cGPU是否有性能损失。

这是ResNet50训练测试在不同精度和batch_size下的性能比较,绿色柱表示标准的容器性能,橙色柱表示cGPU容器内的性能。

可以看到在不同的情况下,cGPU容器实例都几乎没有性能损失。

然后是ResNet50推理测试在不同精度和batch_size下的性能比较。

同样的,在不同的情况下,cGPU容器实例都几乎没有性能损失。

还有cGPU容器 VS MPS容器GPU共享性能比较

依然采用了ResNet50的训练和推理benchmark作为测试用例,分别用两个cGPU容器和两个MPS容器共享一个GPU硬件。

这是ResNet50训练测试在不同batch_size下的性能比较。

绿色柱表示两个MPS容器性能跑分的总和,橙色柱表示两个cGPU容器跑分的总和。

可以看到,cGPU容器实例对比MPS容器几乎没有性能损失,在大的batch_size的情况下甚至跑分高于MPS容器。

接着,就是ResNet50推理测试在不同batch_size下的性能比较

结果显示,MPS容器和cGPU容器的性能差距不大,基本都在误差范围之内。

你觉得这一技术如何?

感兴趣的话,可戳下方链接去试试哦~

容器服务 Kubernetes 版控制台:

https://cs.console.aliyun.com/

详细使用指南:

https://help.aliyun.com/document_detail/163994.html

本文系网易新闻•网易号特色内容激励计划签约账号【量子位】原创内容,未经账号授权,禁止随意转载。

全球硬科技嘉年华,报名倒计时

9.11起,黑科技产品集市、自动驾驶体验、机器人表演、灯光秀、草坪乐队...... 更多酷炫的玩法等你来探索!

扫码关注,即可报名活动、现场体验,还可现场抽大奖哦~

量子位 QbitAI · 头条号签约作者

վ'ᴗ' ի 追踪AI技术和产品新动态

一键三连「分享点赞在看」

科技前沿进展日日相见~

阿里云容器化GPU共享服务已开放!性能无损失,对你的环境无侵入,真正实现AI降本增效...相关推荐

  1. 让业务容器化更安全便捷,阿里云容器镜像服务 ACR 推出免费制品中心

    作者:容器镜像服务团队 伴随着企业 IT 数字化转型演变的进程,越来越多的企业采用云原生化架构升级的方式,改善应用开发运维迭代的效率,加速企业业务创新:改进资源弹性管理和迁移的效率,帮助企业降本增效. ...

  2. 3月13日云栖精选夜读:通过阿里云容器服务深度学习解决方案上手Caffe+多GPU训练

    阿里云容器服务提供的深度学习解决方案内置了对Tensorflow, Keras, MXnet框架的环境,并支持基于它们的深度学习模型开发.模型训练和模型预测.同时,对于模型训练和预测,用户还可以通过指 ...

  3. 3月13日云栖精选夜读:通过阿里云容器服务深度学习解决方案上手Caffe+多GPU训练...

    阿里云容器服务提供的深度学习解决方案内置了对Tensorflow, Keras, MXnet框架的环境,并支持基于它们的深度学习模型开发.模型训练和模型预测.同时,对于模型训练和预测,用户还可以通过指 ...

  4. 2021 阿里云容器服务年度盘点:企业级容器应用变化和技术趋势观察

    作者:溪洋 在云原生浪潮的推动下,容器和 Kubernetes 技术和应用发展迅猛.最近,云原生计算基金会 CNCF 发布了与 SlashData 联手撰写的 最新版<云原生开发现状报告> ...

  5. 阿里云容器服务多项重磅发布:高效智能、安全无界的新一代平台

    在云原生带来的云计算未来趋势下,容器已经成为用户使用云的新界面. 阿里云容器产品发布近 7 年以来,已成长发展为企业的云原生操作系统,技术和服务能力日趋成熟,但创新从未止步.日前,阿里云研究员 &am ...

  6. 首批!阿里云容器服务 ACK 顺利通过信通院云原生混部项目评估

    作者:OSCAR 为了分享过去一年云原生产业联盟(CNIA)在标准建设.评估认证.技术研究.实践合作等方面的工作成果.探索行业最新趋势动态,云原生产业联盟于 2023 年 1 月举办了 2022 年度 ...

  7. 阿里云容器服务新增支持Kubernetes编排系统,性能重大提升

    摘要: 作为容器编排系统的两大流派, Kubernetes和Swarm的重要性不言而喻.融合了两大高性能集成的阿里云容器服务,不仅可以降低50%的基础架构成本,提高交付速度将产品迭代加快13倍,还可以 ...

  8. 阿里云容器服务新增支持Kubernetes编排系统,性能重大提升 1

    摘要: 作为容器编排系统的两大流派, Kubernetes和Swarm的重要性不言而喻.融合了两大高性能集成的阿里云容器服务,不仅可以降低50%的基础架构成本,提高交付速度将产品迭代加快13倍,还可以 ...

  9. 基于阿里云容器服务的微服务实践 - Part 1. 微服务与Docker

    基于阿里云容器服务的微服务实践 基于阿里云容器服务的微服务实践 - Part 1. 微服务与Docker 作者:chszs,未经博主允许不得转载.经许可的转载需注明作者和博客主页:http://blo ...

最新文章

  1. Beam Search
  2. java patterncompiler_PatternCompiler是干什么用的?
  3. docker容器时区与宿主机不一致的解决方法
  4. 获取烧瓶请求中收到的数据
  5. java设计模式---享元模式
  6. 简单文件的上传与保存
  7. Android Telephony分析(四) ---- TelephonyManager详解
  8. cookie 和 session 详解
  9. 我学会了如何入侵Facebook Messenger Soccer游戏
  10. LHF Objective-C语法(7)id类型、动态判断与选择器
  11. 弱电工程师和网络工程师有什么区别?工作内容是什么?
  12. 十隔日推算法_年、月、日、时干支推算法
  13. 建立人脉关系以及可能认识的人推荐
  14. 编程十年 (14):毁人不倦2
  15. 原生Python实现KNN算法,并用鸢尾花(iris)数据集测试
  16. 怎样用python定位别人在哪_python程序员教你用微信给对方定位!你说回家!却还在外面鬼混?...
  17. 学生用计算机app,学生方程计算器
  18. VBS整人蓝屏代码(Windows 7 直接蓝屏,重启即可恢复,亲测有效!!)
  19. 千人千面、用户画像的设计、技术选型与架构实现
  20. 不写情书,程序员为什么还要学写作?

热门文章

  1. 什么是Android PendingIntent?
  2. FE.ES-终结0.1+0.2,答到点上的那种
  3. 微信公众平台——自定义菜单
  4. __add__,关于运算符重载(用户权限)
  5. 友盟统计-页面访问路径
  6. python 对字典排序
  7. linux 编译C语言代码后产生OBJ文件的方法
  8. [转载] 杜拉拉升职记——33 360度评估
  9. 让PPT声音播放不再“哑口无言”
  10. Servlet学习DAY_01:服务器概念/Web服务器的作用/ Servlet概念/ 如何关联和解除Tomcat/ 创建一个Web工程 /Servlet响应流程/ Get-Post /常见异常