You need to enable JavaScript to run this app.
导航
自定义安装 GPU 驱动
最近更新时间:2024.11.14 19:43:15首次发布时间:2024.02.01 11:03:31

容器服务提供 GPU 自动化安装驱动能力,基于公共镜像创建的节点可在 GPU 相关规则族下实现自动化安装 GPU 驱动。本文为您详细介绍如何使用自动化安装 GPU 驱动。

背景信息

基于云原生的机器学习是容器服务的核心场景之一,用户对 GPU 等异构资源的使用需求越来越旺盛。在不同使用习惯和使用环境下,面临着以下复杂场景,使得自动化安装 GPU 驱动需求必不可少。

  • 基于 VKE 搭建应用开发的新用户,完全 follow 容器服务提供的基础环境(GPU 实例 + OS 镜像 + GPU 驱动)。

  • 基于 VKE 的存量用户,具备了一套较为成熟的基于 VKE 的环境依赖,需要将依赖作为基础环境复用。

  • 基于其他云平台迁移的用户,对 GPU 环境已经形成依赖(例如:将 CUDA 打包容器镜像,需要提供符合该环境的 OS)。

前提条件

  • 已经开通容器服务并创建容器集群。详细介绍参见:创建集群
  • 已经开通对象存储服务并创建存储桶,用于上传 GPU 驱动文件和其他 GPU 依赖文件。详细介绍参见:创建存储桶

使用限制

  • 免责声明:此功能无法保证所有驱动在所有卡型下可用,因此,需要自行确保上传的 GPU 驱动版本与 GPU 型号匹配,并进行充分测试,否则可能导致性能降低或存在未知风险。

  • 确保容器集群与 TOS 的网络互通,推荐开启公网访问以保证网络互通。

  • 若需要使用自动化安装 GPU 驱动功能,节点配置需要注意以下情况:

    • 系统镜像:目前仅支持公共镜像中的 veLinux 标准版和 Ubuntu。
    • 计算规格:目前仅支持使用高性能计算 GPU 型或部分 GPU 计算型(不包括 vws 结尾的 GPU 渲染型)规格族。

操作步骤

步骤一:下载 GPU 驱动文件

前往 NVIDIA 官方提供的 GPU 驱动下载地址,下载符合实际场景需要的 GPU 驱动及相关文档。

注意

务必保证 fabricmanager 文件与 NVIDIA 的驱动版本完全对应,否则可能安装失败。

  • 登录 NVIDIA 驱动下载官网,查找并下载与实际场景匹配的 GPU 驱动文件。
  • (按需)若需要在 nvswitch 的机型场景中使用 fabricmanager,可前往 官方镜像仓库 下载与实际场景匹配的文件。

步骤二:将 GPU 驱动上传到对象存储

将步骤一中下载的 GPU 驱动及相关文件上传到对象存储,并获取文件名称和 TOS 下载地址。

注意

确保容器集群与 TOS 的网络互通,推荐开启公网访问以保证网络互通。

  1. 登录 对象存储控制台
  2. 在左侧导航栏选择 桶列表,进入存储桶列表。
  3. 单击已经创建的存储桶名称,在左侧导航栏选择 概览,获取 Bucket 域名(步骤三所需的 TOS 下载地址)。例如:bucket.tos-cn-beijing.ivolces.com

alt

  1. 在左侧导航栏选择 文件列表,并在存储桶管理页面单击 上传文件 ,将步骤一中准备的 GPU 驱动文件上传到 TOS。即可获取文件上传到 TOS 后的文件名称,例如:NVIDIA-Linux-x86_64-515.86.01.run

alt

  1. 在文件列表页面,单击文件右侧操作列...中的 修改文件访问权限,依次将步骤一中准备的 GPU 驱动文件的访问权限修改为 公共读

alt

步骤三:节点池添加节点标签

通过节点池添加节点标签的方式配置自定义 GPU 驱动相关信息,当节点驱动不符合实际配置时,系统将自动卸载默认驱动并安装已经预制的自定义 GPU 驱动。

注意

仅当节点添加到节点池时,才会根据节点池中的节点标签识别并触发驱动安装。常见使用场景如下:

  • 新建节点池场景,所有节点均属于新添加到节点池的节点,均能够根据节点池中的节点标签识别并触发驱动安装,推荐此方式使用自定义 GPU 驱动功能。
  • 针对已有节点池中的新增节点,依然属于新添加到节点池的节点,能够根据节点池中的节点标签识别并触发驱动安装。
  • 针对已有节点池中的存量节点,不属于新添加到节点池中的节点,无法根据节点池中的节点标签识别并触发驱动安装。参考解决方案如下:
    • 方案一:确保不影响业务正常运行的前提下手动移除存量节点,并通过添加已有节点方式重新添加。
    • 方案二:确保不影响业务正常运行的前提下使用节点扩缩容功能将存量节点全部缩容,然后重新扩容节点。

自定义 GPU 驱动涉及的节点标签如下:

节点标签 (key: value)节点标签 value 示例是否必选说明
vke.volcengine.com/nvidia-driver-tos-endpoint: <TOS 下载地址>bucket.tos-cn-beijing.ivolces.comGPU 自定义驱动上传到 TOS 之后的目录地址,即 Bucket 域名。
vke.volcengine.com/nvidia-driver-runfile: <NVIDIA 驱动文件名>NVIDIA-Linux-x86_64-515.86.01.run待安装 NVIDIA 驱动存放在 TOS 的文件名称,通过此标签指定待下载的驱动文件。
vke.volcengine.com/nvidia-fabricmanager-file: <fabricmanager 文件名>nvidia-fabric-manager-515.86.01-1.x86_64.deb待安装 fabricmanager 存放在 TOS 的文件名称,仅支持在 nvswitch 的机型(例如:A100)场景中使用。

节点池添加节点标签的操作步骤如下:

  1. 登录 容器服务控制台,单击目标集群名称进入集群管理页面。
  2. 在左侧导航栏选择 节点池,进入节点池管理页面。
  3. 单击 创建节点池 或已有节点池右侧操作列的 编辑,在 更多配置 中为节点池添加上述节点标签,完成后单击 确定

alt