容器云怎么做显卡切分?

背景
容器云中的显卡切分使用

场景
使用显卡切分功能后,一块显卡如何加载到不同容器中使用

参与9

2同行回答

罗文江罗文江课题专家组云计算架构师某银行
一. 通过GPU虚拟化技术对GPU显卡进行切分,粒度可以细化到0.1卡。譬如 NVIDIA  MPS或虚拟 GPU (vGPU) 技术,腾讯的vGPU开源项目、国内创业公司趋动科技的GPU虚拟化技术。二. 建设基于K8S的一个GPU管理平台,通过平台的调度能力和配置策略来实现将一块GPU显卡分别加载到不同...显示全部

一. 通过GPU虚拟化技术对GPU显卡进行切分,粒度可以细化到0.1卡。譬如 NVIDIA  MPS或虚拟 GPU (vGPU) 技术,腾讯的vGPU开源项目、国内创业公司趋动科技的GPU虚拟化技术。

二. 建设基于K8S的一个GPU管理平台,通过平台的调度能力和配置策略来实现将一块GPU显卡分别加载到不同容器中使用。主要步骤如下:

  1. 环境准备:
    (A) GPU节点安装好NVIDIA驱动和 nvidia-docker套件。
    (B)docker daemon运行时配置启动 nvidia runtime运行时。
    (C)在 Kubernetes 安装nvidia的k8s-device-plugin开启vGPU支持,
  2. 在创建POD时,YAML中容器请求带上资源类型 nvidia.com/gpu,
       可以将POD调度到GPU节点上 。
      apiVersion: v1
    kind: Pod
    metadata: name: gpu-pod
    spec:
        containers:

      - name: cuda-container 
        image: nvidia/cuda:10.0-base 
        resources:
           limits: nvidia.com/gpu: 1
    
收起
银行 · 2022-05-02
浏览1641
关于GPU切分及高效共享的解决方案,行业有很多的技术实现,大致分成Remote CUDA,CUDA原生实现,GPU硬件实现。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
浏览1776
  • 请问,这些切分,对容器运行环境有限制吗?比如说虚拟机上运行容器也可行吗?
    2023-02-01

提问者

ideazhang
项目经理证通股份
擅长领域: 云计算容器容器云

问题来自

相关问题

相关资料

相关文章

问题状态

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