更新时间:2024-12-04 GMT+08:00

CCE AI套件(NVIDIA GPU)

插件简介

CCE AI套件(NVIDIA GPU)插件是支持在容器中使用GPU显卡的设备管理插件,集群中使用GPU节点时必须安装本插件。

约束与限制

  • 下载的驱动必须是后缀为“.run”的文件。
  • 仅支持Nvidia Tesla驱动,不支持GRID驱动。
  • 安装或重装插件时,需要保证驱动下载链接正确且可正常访问,插件对链接有效性不做额外校验。
  • 插件仅提供驱动的下载及安装脚本执行功能,插件的状态仅代表插件本身功能正常,与驱动是否安装成功无关。
  • 对于GPU驱动版本与您业务应用的兼容性(GPU驱动版本与CDUA库版本的兼容性),CCE不保证两者之间兼容性,请您自行验证。
  • 对于已经安装GPU驱动的自定义操作系统镜像,CCE无法保证其提供的GPU驱动与CCE其他GPU组件兼容(例如监控组件等)。

安装插件

  1. 登录CCE控制台,单击集群名称进入集群,在左侧导航栏中选择“插件中心”,在右侧找到CCE AI套件(NVIDIA GPU)插件,单击“安装”
  2. 设置插件支持的“参数配置”

    • Nvidia驱动:填写Nvidia驱动的下载链接,集群下全部GPU节点将使用相同的驱动。
      • 如果下载链接为公网地址,如nvidia官网地址(https://us.download.nvidia.com/tesla/470.103.01/NVIDIA-Linux-x86_64-470.103.01.run),各GPU节点均需要绑定EIP。获取驱动链接方法请参考获取驱动链接-公网地址
      • 若下载链接为OBS上的链接,无需绑定EIP 。获取驱动链接方法请参考获取驱动链接-OBS地址
      • 请确保Nvidia驱动版本与GPU节点适配。
      • 更改驱动版本后,需要重启节点才能生效。
    • 驱动选择:若您不希望集群中的所有GPU节点使用相同的驱动,CCE支持以节点池为单位安装不同的GPU驱动。
      • 插件将根据节点池指定的驱动版本进行安装,仅对节点池新建节点生效。
      • 更新驱动版本后,节点池中新建节点可直接生效,存量节点需重启节点生效。
    • GPU虚拟化(2.0.5及以上版本支持):选择开启GPU虚拟化,支持GPU单卡的算力、显存分割与隔离。

      若集群中未安装Volcano插件,将不支持开启GPU虚拟化,您可单击“一键安装”进行安装。如需配置Volcano插件参数,请单击“自定义安装”,详情请参见Volcano调度器

      若集群中已安装Volcano插件,但插件版本不支持使用GPU虚拟化,您可单击“一键升级”进行升级。如需配置Volcano插件参数,请单击“自定义升级”,详情请参见Volcano调度器

      开启GPU虚拟化后,可选择“虚拟化节点兼容GPU共享模式”选项,即兼容Kubernetes默认GPU调度能力。该能力需要配套gpu-device-plugin插件版本为2.0.10及以上、Volcano插件版本为1.10.5及以上。

      • 开启该兼容能力后,在工作负载中声明nvidia.com/gpu配额(即配置nvidia.com/gpu为小数,例如0.5)时将通过虚拟化GPU提供,实现GPU显存隔离,按照设定值的百分比为容器分配GPU显存(例如分配0.5×16GiB=8GiB的GPU显存,该数值需为128MiB的整数倍否则会自动向下取整)。如果在开启兼容能力前工作负载中已经使用nvidia.com/gpu资源,则不会转成虚拟化GPU,依然使用整卡资源。
      • 开启该兼容能力后,使用nvidia.com/gpu配额时等价于开启虚拟化GPU显存隔离,可以和显存隔离模式的工作负载共用一张GPU卡,但不支持和算显隔离模式负载共用一张GPU卡。
      • 未开启该兼容能力时,在工作负载中声明nvidia.com/gpu配额仅影响调度结果,并不会有显存隔离的限制。即虽然配置nvidia.com/gpu为0.5,依然可以在容器中看到完整的GPU显存资源。且使用nvidia.com/gpu资源的工作负载无法和使用虚拟化显存的工作负载共同调度到同一节点。
      • 编辑插件配置时,修改“虚拟化节点兼容GPU共享模式”选项,不会影响已运行的工作负载。修改该配置可能工作负载导致调度失败。例如,兼容能力从开启到关闭,已使用nvidia.com/gpu资源的工作负载仍存在虚拟化GPU显存隔离,会导致该GPU卡无法调度算显隔离模式的工作负载,您需要将使用nvidia.com/gpu资源的工作负载删除才可重新调度。

  3. 单击“安装”,安装插件的任务即可提交成功。

    卸载插件将会导致重新调度的GPU Pod无法正常运行,但已运行的GPU Pod不会受到影响。

验证插件

插件安装完成后,在GPU节点及调度了GPU资源的容器中执行nvidia-smi命令,验证GPU设备及驱动的可用性。

  • GPU节点:
    # 插件版本为2.0.0以下时,执行以下命令:
    cd /opt/cloud/cce/nvidia/bin && ./nvidia-smi
    
    # 插件版本为2.0.0及以上时,驱动安装路径更改,需执行以下命令:
    cd /usr/local/nvidia/bin && ./nvidia-smi
  • 容器:
    cd /usr/local/nvidia/bin && ./nvidia-smi

若能正常返回GPU信息,说明设备可用,插件安装成功。

获取驱动链接-公网地址

  1. 登录CCE控制台。
  2. 创建节点,在节点规格处选择要创建的GPU节点,选中后下方显示的信息中可以看到节点的GPU显卡型号。
  1. 登录到https://www.nvidia.com/Download/Find.aspx?lang=cn网站。
  2. 图1所示,在“NVIDIA驱动程序下载”框内选择对应的驱动信息。其中“操作系统”必须选Linux 64-bit

    图1 参数选择

  3. 驱动信息确认完毕,单击“搜索”按钮,会跳转到驱动信息展示页面,该页面会显示驱动的版本信息如图2,单击“下载”到下载页面。

    图2 驱动信息

  4. 获取驱动软件链接方式分两种:

获取驱动链接-OBS地址

  1. 将驱动上传到对象存储服务OBS中,并将驱动文件设置为公共读。

    节点重启时会重新下载驱动进行安装,请保证驱动的OBS桶链接长期有效。

  2. 在桶列表单击待操作的桶,进入“概览”页面。
  3. 在左侧导航栏,单击“对象”。
  4. 单击目标对象名称,在对象详情页复制驱动链接。

组件说明

表1 gpu插件组件

容器组件

说明

资源类型

nvidia-driver-installer

该容器运行在GPU节点上,负责安装NVIDIA驱动。

DaemonSet