不同gpu共享方案区别及gpu隔离技术?

在使用GPU计算资源时通常会面临如下几个问题:
GPU资源管理困难。
GPU资源使用效率低。
GPU资源快速申请、回收困难。
为了彻底解决上述问题,业界提出了不同GPU共享方案。包括CUDA劫持、CUDA聚合、内核劫持、Mdev框架、Nvidia MIG等,请问这些方案具体有什么优势和劣势以及他们各自适用于哪些应用场景,在使用时是否需要特别指定。除此之外,如何将多个任务同时运行在同一张GPU卡上,同时对共享资源进行严格的隔离,行业现在有什么优秀的解决方案?

参与8

2同行回答

关于GPU高效共享的解决方案,行业有很多的技术实现,大致分成Remote CUDA,CUDA原生实现,GPU硬件实现。1. R-CUDA的方案,也叫远程CUDA和CUDA劫持,是一种基于驱动或CUDA句柄的拦截和转发机制,英伟达官方并不支持这样的做法,尤其在跨服务器请求转发方面,其性能和效果对于网络和处理延...显示全部

关于GPU高效共享的解决方案,行业有很多的技术实现,大致分成Remote CUDA,CUDA原生实现,GPU硬件实现。
1. R-CUDA的方案,也叫远程CUDA和CUDA劫持,是一种基于驱动或CUDA句柄的拦截和转发机制,英伟达官方并不支持这样的做法,尤其在跨服务器请求转发方面,其性能和效果对于网络和处理延时依赖较大,对于实时性的业务场景效果并不理想,同时随着GPU驱动的升级,对于其支持的周期风险很大。
2. CUDA原生实现,主要指英伟达的vGPU全切分方案,通过定制的GPU驱动,实现GPU的时分切分,基于时间片轮训机制,实现GPU显存最小粒度的切分,该方案是英伟达的原生技术实现,需要相应的License和技术支持服务。
3. GPU硬件切分技术,只要在A100和A30的GPU上提供,未来的H100也会支持,实现机制是通过GPU内部相应计算单元和显存单元的动态划分,实现硬件的空间切片,彼此的隔离性达到最佳,对于上层系统相对透明,且提供灵活的配置,该技术仅在A100和A30 GPU支持,不需要软件License。

建议关注NVIDIA AI Enterprise软件套件,包含GPU切分和管理的全部软件功能,并且提供企业级的支持服务。

收起
互联网服务 · 2022-04-28
浏览1737
rechenrechen  云计算架构师 , 某银行
(1)GPU资源池管理平台的解决方案,当前有2种方向:一种是CUDA劫持、CUDA聚合、内核劫持模式,物理机部署K8S集群,使用K8S上的GPU共享隔离技术: vCUDA和cGPU 。另一种是用 GPU硬件切分、驱动定制模式,然后由虚拟化平台使用GPU直通模式到虚拟机,在虚拟机或者容器实例提供GPU能力,譬如 NV...显示全部

(1)GPU资源池管理平台的解决方案,当前有2种方向:一种是CUDA劫持、CUDA聚合、内核劫持模式,物理机部署K8S集群,使用K8S上的GPU共享隔离技术: vCUDA和cGPU 。另一种是用 GPU硬件切分、驱动定制模式,然后由虚拟化平台使用GPU直通模式到虚拟机,在虚拟机或者容器实例提供GPU能力,譬如 NVIDIA AI Enterprise软件套件。
(2)GPU管理平台通常只能使用某一种GPU共享和隔离技术,此技术对应用是透明。因此,应用部署到GPU管理平台,使用GPU资源时不需要特别指定哪种GPU共享隔离技术。
(3)商用的优秀方案有 NVIDIA AI Enterprise软件套件 、 国内创业公司趋动科技的GPU虚拟化产品, 腾讯TKESTACK平台、北京优优工场科技的XPU技术等。

 不同GPU 共享方案的对比如下所示:

一. CUDA劫持是属于时间复用方式的GPU虚拟化技术,通过劫持对Cuda driver API的调用来做到资源隔离。共享模块一般位于在Cuda driver API之上。

  • 优势:API开源,是非Nvidia官方技术人员能够较容易实现的共享技术。
  • 劣势:1.CUDA库升级活跃,而当CUDA库升级时,劫持方案也需要不断适配,损耗人力。2.难以涵盖所有场景,隔离不一定准确;3.安全性低,用户可以绕过限制。4.对用户有少量影响,需要一定适配。

二. CUDA聚合:NVIDIA MPS是 属于空间复用方式的GPU共享技术,通过将多个任务合并成一个上下文的方式共享GPU算力,所有任务共同使用显存。位于Cuda driver API和Nvidia Driver之间。

  • 优势:性能是所有技术中最好的。在多任务共享的场景下,当任务使用的资源可以同时被满足,其JCT(任务完成时间)基本没有影响。
  • 劣势:1.错误会互相影响,如果一个任务退出(包括被使用者停止和任务本身出错等),如果该任务正在执行kernel,那么和该任务共同share IPC和UVM的任务也会一同出错退出。2.没有显存隔离,可以粗略地限制计算资源。

三. 内核劫持: 阿里云 cGPU是属于时间复用方式的GPU容器共享方案,通过新的内核驱动模块,为容器提供了虚拟的GPU设备,劫持了对Nvidia driver的调用。可以严格限制显存,通过时间片的方式限制算力。位于Cuda driver API和Nvidia Driver之间。

  • 优势:1.安全性高;2.共享损耗小;3.Nvidia Driver的更新更少,改动量很小。
  • 劣势:1.cGPU对OS设置有一定依赖;2.因为是内核模块,因此更新换代较困难;3.研发困难,对开发要求高。4.出于算力时间片的设计,对于某些模型,具有一定的性能损失。

四. 虚拟机:Nvidia官方的vGPU属于时间复用方式的共享产品,通过vfio-mdev提供了一个隔离性非常高的的硬件环境,主要面向的是虚拟机产品。其共享模块在Nvidia driver及之下。

  • 优势:来自Nvidia官方,可靠性高,安全性高。
  • 劣势:1.不支持容器,虚拟机在使用上不灵活;2.无法动态调整资源比例。3.有一定的共享损耗。4.无法定制化开发。
收起
银行 · 2022-05-01
浏览1677

提问者

menglunyang
系统工程师中国银行
擅长领域: 云计算容器容器云

问题来自

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2022-04-19
  • 关注会员:3 人
  • 问题浏览:2239
  • 最近回答:2022-05-01
  • X社区推广