PVE Docker使用Tesla P4 VGPU

前言

本机配置:

image.png

本文参考文档:
佛西博客 - 来自民间的VGPU授权fastapi-dls (buduanwang.vip)
佛西博客 - 在Proxmox VE 7.1 中开启vGPU_unlock,实现显卡虚拟化 (buduanwang.vip)
佛西博客 - 在Proxmox VE 7.2 中开启vGPU_unlock,实现显卡虚拟化 (buduanwang.vip)
Proxmox Nvidia Telsa P4 显卡 vGPU 方案 - 國際草包 (justin.education)
PolloLoco / NVIDIA vGPU Guide · GitLab
Ubuntu 22.04 LTS : NVIDIA Container Toolkit インストール : Server World (server-world.info)
justin-himself/NVIDIA-VGPU-Driver-Archive: This repository provides an archive for NVIDIA vGPU drivers. (github.com)
第三章 安装Nvidia vGPU驱动 — Proxmox VE Nvidia-vGPU doc 6.4 文档 (pve-doc-cn.readthedocs.io)

开启 PVE 虚拟化

  1. 配置内核
1
2
3
4
5
6
7
echo vfio >> /etc/modules 
echo vfio_iommu_type1 >> /etc/modules
echo vfio_pci >> /etc/modules
echo vfio_virqfd >> /etc/modules
echo "blacklist nouveau" >> /etc/modprobe.d/blacklist.conf
echo "options kvm ignore_msrs=1" > /etc/modprobe.d/kvm.conf
update-initramfs -k all -u
  1. 修改引导
1
2
3
4
5
6
7
8
9
10
11
#编辑grub,请不要盲目改。根据自己的环境,选择设置
nano /etc/default/grub
#在里面找到:
GRUB_CMDLINE_LINUX_DEFAULT="quiet"
#然后修改为:
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt"
#如果是amd cpu请改为:
GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on iommu=pt"
#更新引导
update-grub

  1. 验证分组:dmesg |grep iommu

安装GPU驱动

Index of /drivers/nvidia_drivers/ (spacevm.ru)
下载地址:Index of /NVIDIA/ (biggerthanshit.com)

下载后解压文件:
image.png

  1. 上传HOST_Driver中文件:chmod + x ./NVIDIA-Linux-x86_64-525.85.05-grid.run
  2. 安装驱动依赖文件:apt install -y git build-essential dkms pve-headers mdevctl gcc g++ make
  3. 安装驱动:./NVIDIA-Linux-x86_64-525.85.05-grid.run
  4. 验证:nvidia-smi

image.png

  1. 检查GPU虚拟化是否正常:mdevctl types

image.png

GPU类型中的:XXX-XQ/A/b解释

  • A = Virtual Applications (vApps)
  • B = Virtual Desktops (vPC)
  • C = AI/Machine Learning/Training (vCS or vWS)
  • Q = Virtual Workstations (vWS)(性能最好)

配置直通

image.png

设置安装虚拟机驱动

LInux安装:

image.png

安装之后验证:nvidia-smi

image.png

Docker 驱动安装

ubuntu22.04

  1. 安装:
1
2
3
4
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | apt-key add -
curl -s -L https://nvidia.github.io/nvidia-docker/ubuntu22.04/nvidia-docker.list > /etc/apt/sources.list.d/nvidia-docker.list
apt update && apt -y install nvidia-container-toolkit
systemctl restart docker
  1. 验证:docker run --gpus all nvidia/cuda:11.5.2-base-ubuntu20.04 nvidia-smi 输出:

image.png

VGPU授权安装

  1. Dockerr运行:- docker run -d -e DLS_URL=10.1.1.107 -e DLS_PORT=443 -p 443:443 makedie/fastapi-dls

    DLS_URL && DLS_PORT必须配置,否则会出现无法注册VGPU授权问题
    配置:

  • DLS_PORT:授权端口 需要与映射到443一致
  1. 打开页面:https://192.168.0.6:9989/

image.png

下滑页面有详细的安装文档:

image.png

验证是否安装成功(Linux):nvidia-smi -q | grep "License" 90天续期

image.png

验证是否安装成功(Windows):Nvida驱动会进行弹窗提示

注意windows驱动必须小于宿主机驱动版本大小