附录三 GPU驱动安装

GPU适配清单

处理器架构、操作系统或 Kubernetes 版本 NVIDIA 全系 华为310P 系列 华为910B 系列 海光 部分型号 天数 部分型号 PPU 部分型号
x86+H84r √ × × × √ ×
x86+V10SP3 √ × × × × ×
x86+V10SP3.2403 √ √ × √ √ √
arm+V10SP3 √ × √ × × ×
arm+V10SP3.2403 √ √ √ × × ×
Kubernetes 1.24 √ √ √ √ √ ×
Kubernetes 1.30 √ √ √ √ √ √
Kubernetes 1.35 √ √ √ √ √ √

经过验证的国产GPU型号:

华为310P系列:300I Pro、300I Duo

华为910B系列:910B2、910B3、910B4

海光DCU:Z100、Z100L、K100_AI

天数天垓:天垓100、天垓150

阿里PPU:PPU-ZW810E

其他型号请咨询原厂工程师。

英伟达 GPU

GPU驱动安装

本章节描述 NVIDIA GPU 驱动的安装过程。

  1. 禁用nouveau驱动

    echo 'blacklist nouveau
    options nouveau modeset=0' > /etc/modprobe.d/nvidia-installer-disable-nouveau.conf
  2. 安装内核依赖

    yum install -y kernel-devel-$(uname -r) kernel-headers-$(uname -r)
    cp /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak
    dracut /boot/initramfs-$(uname -r).img $(uname -r) --force
    systemctl set-default multi-user.target
    init 3
  3. 重启服务器

    reboot
  4. 检查nouveau驱动没有被使用

    输出为空即表示没有使用

    lsmod | grep nouveau
  5. 安装依赖

    按照CPU架构选择合适的安装方式。

    # x86架构时
    yum install -y elfutils-libelf-devel
    
    # arm架构时
    yum install -y gcc-c++ make elfutils-libelf-devel
  6. 安装驱动

    以下X86服务器上安装 Nvidia T4 显卡驱动为例。

    驱动文件X86架构(或使用官方支持的以上版本驱动):http://oss.zstack.io/solutions/edge/zstack-zaku/gpu-driver/NVIDIA-Linux-x86_64-550.90.07.run

    驱动文件ARM架构(或使用官方支持的以上版本驱动):http://oss.zstack.io/solutions/edge/zstack-zaku/gpu-driver/Ascend-hdk-310p-npu-driver_24.1.rc2_linux-aarch64.run

    bash NVIDIA-Linux-x86_64-550.90.07.run
  7. 驱动安装完成后,查看显卡信息

    nvidia-smi

计算节点调整为GPU节点

创建业务集群或添加节点时,若节点已勾选GPU节点,则略过本小节。

本小节仅适用于计算节点加入业务集群时未勾选GPU节点的情况:

  • 创建集群或添加节点时漏选GPU节点角色的情况。

  • 计算节点运行了一段时间后,添加GPU卡并改造为GPU节点的情况。

  1. 参照本附录英伟达 GPU > GPU驱动安装小节完成 GPU 驱动安装。

    略

  2. 安装toolkit

    yum install -y nvidia-container-toolkit
  3. 修改containerd 环境的默认runtime

    编辑 /etc/containerd/config.toml,找到default_runtime_name并修改为以下参数

    default_runtime_name = "nvidia"
  4. 重启容器服务

    systemctl daemon-reload
    systemctl restart containerd
  5. 添加节点标签

    kubectl label node #节点名称# node-role.kubernetes.io/gpu= --overwrite=true
    kubectl label node #节点名称# nvidia.com/gpu=true --overwrite=true
    kubectl label node #节点名称# gpu=on --overwrite=true

华为 NPU

NPU驱动安装

本章节描述 华为NPU 驱动的安装过程。

  1. 创建运行用户

    华为NPU 使用1000及9000的用户id及用户组id,如果该id已被占用,可参考文档调整:https://www.hiascend.com/document/caselibrary/detail/topic_0000001591705097

    groupadd -g 1000 HwHiAiUser
    useradd -g HwHiAiUser -d /home/HwHiAiUser -u 1000 -m HwHiAiUser -s /bin/bash
    groupadd -g 9000 hwMindX
    useradd -g hwMindX -d /home/hwMindX -u 9000 -m -s /sbin/nologin hwMindX
    usermod -a -G HwHiAiUser hwMindX
  2. 安装依赖

    yum install -y net-tools make dkms gcc kernel-headers-$(uname -r) kernel-devel-$(uname -r)
  3. 安装驱动

    以下X86服务器上安装310P芯片系列显卡驱动为例。

    驱动文件X86架构(或使用官方支持的以上版本驱动):http://oss.zstack.io/solutions/edge/zstack-zaku/gpu-driver/Ascend-hdk-310p-npu-driver_24.1.rc2_linux-x86-64.run

    驱动文件ARM架构(或使用官方支持的以上版本驱动):http://oss.zstack.io/solutions/edge/zstack-zaku/gpu-driver/Ascend-hdk-310p-npu-driver_24.1.rc2_linux-aarch64.run

    chmod u+x Ascend-hdk-310p-npu-driver_24.1.rc2_linux-x86-64.run
    ./Ascend-hdk-310p-npu-driver_24.1.rc2_linux-x86-64.run --check
    ./Ascend-hdk-310p-npu-driver_24.1.rc2_linux-x86-64.run --full

    如果在安装驱动过程中遇到错误:/usr/local/Ascend 无权限,执行:chmod +x /usr/local/Ascend

  4. 驱动安装确认

    npu-smi info
  5. 安装firmware固件

    以下以310P芯片系列的显卡为例。

    固件文件(或使用官方支持的以上版本驱动):http://oss.zstack.io/solutions/edge/zstack-zaku/gpu-driver/Ascend-hdk-310p-npu-firmware_7.3.0.1.231.run

    chmod u+x Ascend-hdk-310p-npu-firmware_7.3.0.1.231.run
    ./Ascend-hdk-310p-npu-firmware_7.3.0.1.231.run --check
    ./Ascend-hdk-310p-npu-firmware_7.3.0.1.231.run --full
  6. 重启服务器

    reboot

计算节点调整为GPU节点

创建业务集群或添加节点时,若节点已勾选GPU节点,则略过本小节。

本小节仅适用于计算节点加入业务集群时未勾选GPU节点的情况:

  • 例如创建集群时节点漏选GPU节点角色的情况。

  • 计算节点运行了一段时间后,添加GPU卡并改造为GPU节点的情况。

  1. 参照本附录华为 NPU > NPU驱动安装小节完成 NPU 驱动安装。

    略

  2. 禁用vNPU配置恢复功能

    npu-smi set -t vnpu-cfg-recover -d 0
  3. 安装Ascend-docker-runtime

    按照CPU架构选择合适的安装方式。

    # x86 环境
    mkdir -p /opt/zstack-edge/copy
    cd /opt/zstack-edge/copy
    wget http://#基础服务VIP#:7700/kubespray/release-2.20/v1.24.6/amd64/Ascend-docker-runtime_6.0.RC2_linux-x86_64.run
    chmod +x Ascend-docker-runtime_6.0.RC2_linux-x86_64.run
    ./Ascend-docker-runtime_6.0.RC2_linux-x86_64.run --install
    
    # arm 环境
    mkdir -p /opt/zstack-edge/copy
    cd /opt/zstack-edge/copy
    wget http://#基础服务VIP#:7700/kubespray/release-2.20/v1.24.6/arm64/Ascend-docker-runtime_6.0.RC2_linux-aarch64.run
    chmod +x Ascend-docker-runtime_6.0.RC2_linux-aarch64.run
    ./Ascend-docker-runtime_6.0.RC2_linux-aarch64.run --install
  4. 修改containerd 环境的默认runtime

    编辑 /etc/containerd/config.toml,找到default_runtime_name并修改为以下参数

    default_runtime_name = "ascend"
  5. 重启containerd

    systemctl daemon-reload
    systemctl restart containerd
  6. 添加节点标签

    kubectl label node #节点名称# node-role.kubernetes.io/gpu= --overwrite=true
    kubectl label node #节点名称# workerselector=dls-worker-node --overwrite=true
    kubectl label node #节点名称# ascend=on --overwrite=true

海光 DCU

本章节描述 海光DCU 驱动的安装过程。

海光DCU 驱动仅适配 X86_64架构 + 麒麟V10SP3.2403 操作系统的组合。

DCU驱动安装

  1. 确定dcu设备

    lspci -nn | grep "Display" |grep "Haiguang"
  2. 安装依赖

    yum -y install cmake3 automake gcc-c++ rpm-build kernel-devel-`uname -r` kernel-headers-`uname -r` kernel-modules-extra-`uname -r` mlocate
  3. 安装驱动

    驱动文件(或使用官方支持的以上版本驱动): http://oss.zstack.io/solutions/edge/zstack-zaku/gpu-driver/rock-5.7.1-6.2.26-V1.5.aio.run

    bash rock-5.7.1-6.2.26-V1.5.aio.run
  4. 重启服务器

    reboot
  5. 安装dtk

    DTK文件(或使用官方支持的以上版本驱动):http://oss.zstack.io/solutions/edge/zstack-zaku/gpu-driver/DTK-24.04.3-Kylinv10SP3-x86_64.tar.gz

    tar -zxvf DTK-24.04.3-Kylinv10SP3-x86_64.tar.gz -C /opt
    ln -s /opt/dtk-24.04.3 /opt/dtk
  6. 确认安装成功

    source /opt/dtk/env.sh
    hy-smi

计算节点调整为GPU节点

创建业务集群或添加节点时,若节点已勾选GPU节点,则略过本小节。

本小节仅适用于计算节点加入业务集群时未勾选GPU节点的情况:

  • 例如创建集群时节点漏选GPU节点角色的情况。

  • 计算节点运行了一段时间后,添加GPU卡并改造为GPU节点的情况。

  1. 参照本附录海光 DCU > DCU驱动安装小节完成 DCU 驱动安装。

    略

  2. 添加节点标签

    kubectl label node #节点名称# node-role.kubernetes.io/gpu= --overwrite=true
    kubectl label node #节点名称# dcu=on --overwrite=true

天数智芯 GPU

本章节描述 天数智芯GPU 驱动的安装过程。

天数智芯GPU 驱动仅适配 X86_64架构 + 麒麟V10SP3.2403 操作系统的组合。

GPU驱动安装

  1. 确定gpu设备

    0001 表示天垓加速卡,0002 表示智铠加速卡,不同加速卡使用的驱动不同,注意区分。

    后续步骤以天垓100为例。

    lspci -vv | grep 1e3e
  2. 安装固件

    固件文件(或使用官方支持的以上版本驱动):http://oss.zstack.io/solutions/edge/zstack-zaku/gpu-driver/ixfw-bi_v100-5.0.8_x86_64.run

    bash ixfw-bi_v100-5.0.8_x86_64.run
  3. 重启服务器

    reboot
  4. 安装依赖

    yum install -y kernel-devel-$(uname -r) kernel-headers-$(uname -r) ncurses-libs elfutils-libelf-devel
  5. 安装cuda

    cuda文件(或使用官方支持的以上版本驱动):http://oss.zstack.io/solutions/edge/zstack-zaku/gpu-driver/cuda_10.2.89_440.33.01_linux.run

    最低版本要求:cuda_10.2.89_440.33.01_linux.run

    安装时只勾选安装Toolkit

    bash cuda_10.2.89_440.33.01_linux.run
  6. 安装驱动

    驱动文件(或使用官方支持的以上版本驱动):http://oss.zstack.io/solutions/edge/zstack-zaku/gpu-driver/corex-installer-linux64-3.2.1_x86_64_10.2.run

    # 天数天垓 100 为例
    bash corex-installer-linux64-3.2.1_x86_64_10.2.run --silent --driver --toolkit
  7. 设置环境变量

    编辑/root/.bash_profile,在最后加上以下内容

    PATH=$PATH:$HOME/bin:/usr/local/corex-3.2.1/bin
    LD_LIBRARY_PATH=/usr/local/corex-3.2.1/libexport LD_LIBRARY_PATH
  8. 生效环境变量配置

    source /root/.bash_profile
  9. 确认安装成功

    ixsmi

计算节点调整为GPU节点

创建业务集群或添加节点时,若节点已勾选GPU节点,则略过本小节。

本小节仅适用于计算节点加入业务集群时未勾选GPU节点的情况:

  • 例如创建集群时节点漏选GPU节点角色的情况。

  • 计算节点运行了一段时间后,添加GPU卡并改造为GPU节点的情况。

  1. 参照本附录天数智芯 GPU > GPU驱动安装小节完成 GPU 驱动安装。

    略

  2. 添加节点标签

    kubectl label node #节点名称# node-role.kubernetes.io/gpu= --overwrite=true
    kubectl label node #节点名称# iluvatar=on --overwrite=true