文章目录

Toggle

- ESXI 8.0
- VMware Workstation虚拟机安装VMware vSphere 8.0(esxi)
- 丽台Tesla V100
- 硬件BIOS修改
- ESXI 8.0安装NVIDIA VGPU驱动
- vCenter 安装及图形共享设置
- Prometheus 监控VMware_ESXI并配置AlertManager告警
- Docker 部署NVIDIA License
- Window 启用VGPU
- Ubuntu 启用VGPU
- 常见问题
- 本文驱动合集

NVIDIA vGPU是一个显卡虚拟化程序,你可以用它把一块16GB显存的特斯拉T4分成4个4GBvGPU。具体显存大小可以自行配置。把vGPU和VMware虚拟化结合,就可以新建虚拟机给其它用户用显卡做实验。vGPU是需要授权的付费产品,不过不用担心,本文提供了免费使用的方法。这篇文章是在ESXI8上安装vGPU软件。

**需要安装GPU卡驱动才支持给Guest VM分配vGPU。**

1754743224286.png

ESXI 8.0


需要安装部署ESXI8版本的可以参考下面文章,这里不过多介绍





https://i4t.com/6008.htmljavascript:void(0))

VMware Workstation虚拟机安装VMware vSphere 8.0(esxi)


新闻联播老司机

- 22年10月25日
- 喜欢:1
- 浏览:4.1k

丽台Tesla V100


丽台Tesla V100是NVIDIA基于Volta架构研发的专业级显卡,采用5120个CUDA核心与16GB HBM2显存,显存位宽达4096bit。 该显卡支持PCI Express 3.0接口,最大功耗为250W,适用于深度学习、科学计算等高负载场景。

1754906367128.jpg1754906367128.jpg

 

硬件BIOS修改


针对R730需要进入BIOS,对以下配置进行调整

开机F2
1754906617170.png
1754906657047.png

1754906660377.png

开启以下配置,将BIOS设置为enable

- SR-IOV Global Enable
- Memory Mapped I/O above 4GB

1754906663646.png

ESXI 8.0安装NVIDIA VGPU驱动


检查驱动兼容性
https://www.nvidia.cn/data-center/data-center-gpus/qualified-system-catalog/

**前置条件**

开启ESXI SSH
1754749459463.png

主机维护模式
1754749555157.png

检查ESXI显卡是否识别

[root@MiWiFi-RA72-srv:~] lspci |grep NVIDIA
0000:04:00.0 3D controller: NVIDIA Corporation GV100GL [Tesla V100 SXM2 16GB]


解压上传软件包

> 驱动见文章末尾下载

上zip包中的压缩包上传到ESXI中

1754749727574.png

NVIDIA-GRID-vSphere-软件包.zip


前台上传
1754749866514.png

查看存储路径
1754749914879.png

文件上传完毕后,我们进入到存储路径中,安装驱动包
1754750018159.png

使用esxcli安装vGPU驱动程序

#请不要盲目复制,根据自己的文件目录做修改!
#路径写我们上面存储路径

# 先安装NVD-VGPU开头的软件包
esxcli software vib install -d /vmfs/volumes/685fbb59-ce9879a3-f716-1418772ea2d0/iso/NVD-VGPU-800_535.154.02-1OEM.800.1.0.20613240_23096923.zip
esxcli software vib install -d /vmfs/volumes/685fbb59-ce9879a3-f716-1418772ea2d0/iso/nvd-gpu-mgmt-daemon_535.154.02-0.0.0000_23094104.zip


NVD-VGPU-800_535 驱动执行效果

1754750260764.png

nvd-gpu-mgmt-daemon_535 驱动执行效果

1754750353438.png

重启服务器

reboot


1754750556092.png

> 如果直接直通显卡,这里需要关闭,否则ESXI主机读取不到

检查是否安装成功

[root@MiWiFi-RA72-srv:~] nvidia-smi
Sat Aug  9 14:48:51 2025
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 535.154.02             Driver Version: 535.154.02   CUDA Version: N/A      |
|-----------------------------------------+----------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |         Memory-Usage | GPU-Util  Compute M. |
|                                         |                      |               MIG M. |
|=========================================+======================+======================|
|   0  Tesla V100-SXM2-16GB           Off | 00000000:04:00.0 Off |                    0 |
| N/A   49C    P0              56W / 300W |     58MiB / 16384MiB |      0%      Default |
|                                         |                      |                  N/A |
+-----------------------------------------+----------------------+----------------------+

+---------------------------------------------------------------------------------------+
| Processes:                                                                            |
|  GPU   GI   CI        PID   Type   Process name                            GPU Memory |
|        ID   ID                                                             Usage      |
|=======================================================================================|
|  No running processes found                                                           |
+---------------------------------------------------------------------------------------+


1754750946232.png

为了保证vGPU的运行,您需要关闭显卡的ECC纠错

# 关闭ECC纠错
nvidia-smi -e 0


完整日志

[root@MiWiFi-RA72-srv:~] nvidia-smi -e 0
Disabled ECC support for GPU 00000000:04:00.0.
All done.
Reboot required.


1754751096712.png

再次查看状态,然后重启,ECC就会关闭

[root@MiWiFi-RA72-srv:~] nvidia-smi
Sat Aug  9 14:52:12 2025
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 535.154.02             Driver Version: 535.154.02   CUDA Version: N/A      |
|-----------------------------------------+----------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |         Memory-Usage | GPU-Util  Compute M. |
|                                         |                      |               MIG M. |
|=========================================+======================+======================|
|   0  Tesla V100-SXM2-16GB           Off | 00000000:04:00.0 Off |                   0* |
| N/A   51C    P0              56W / 300W |     58MiB / 16384MiB |      0%      Default |
|                                         |                      |                  N/A |
+-----------------------------------------+----------------------+----------------------+

+---------------------------------------------------------------------------------------+
| Processes:                                                                            |
|  GPU   GI   CI        PID   Type   Process name                            GPU Memory |
|        ID   ID                                                             Usage      |
|=======================================================================================|
|  No running processes found                                                           |
+---------------------------------------------------------------------------------------+
[root@MiWiFi-RA72-srv:~] reboot
[root@MiWiFi-RA72-srv:~]
[root@MiWiFi-RA72-srv:~] Connection to 192.168.21.101 closed by remote host.
Connection to 192.168.21.101 closed.


1754751151190.png

ECC已关闭

[root@MiWiFi-RA72-srv:~] nvidia-smi
Sat Aug  9 14:56:45 2025
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 535.154.02             Driver Version: 535.154.02   CUDA Version: N/A      |
|-----------------------------------------+----------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |         Memory-Usage | GPU-Util  Compute M. |
|                                         |                      |               MIG M. |
|=========================================+======================+======================|
|   0  Tesla V100-SXM2-16GB           On  | 00000000:04:00.0 Off |                  Off |
| N/A   48C    P0              26W / 300W |     68MiB / 16384MiB |      0%      Default |
|                                         |                      |                  N/A |
+-----------------------------------------+----------------------+----------------------+

+---------------------------------------------------------------------------------------+
| Processes:                                                                            |
|  GPU   GI   CI        PID   Type   Process name                            GPU Memory |
|        ID   ID                                                             Usage      |
|=======================================================================================|
|    0   N/A  N/A   2099112      G   Xorg                                          5MiB |
+---------------------------------------------------------------------------------------+


1754751440531.png

vCenter 安装及图形共享设置


Vcenter安装,之前文章介绍过,此处略过安装





https://i4t.com/5287.htmljavascript:void(0))

Prometheus 监控VMware_ESXI并配置AlertManager告警


新闻联播老司机

- 22年2月21日
- 喜欢:0
- 浏览:6.1k

登录到vCenter,选择刚才安装vGPU驱动的ESXI主机。点击菜单栏中的配置,在刷新的窗口中点击图形。点击主机图形,点击编辑打开编辑主机图形设置窗口。在设置窗口里选择直接共享,点击确定完成设置。
1754757848161.png

1754757921778.png

在Vcenter上面配置图形直接共享
1754754337514.png

1754754377370.png

直接共享生成完毕

1754754421072.png

Docker 部署NVIDIA License


接下来使用Docker部署免费授权License,如果不想使用免费版可以到英伟达官网注册账户审核完毕后可以免费90天内使用

> 企业版不要部署服务,跳过本步!!!! 使用注册企业账户试用的方式

在ESXI内部找台机器部署fastapi-dls服务

docker run -d -e DLS_URL=192.168.21.98  -e DLS_PORT=443 -p 443:443  makedie/fastapi-dls


- DLS_URL 访问地址
- DLS_PORT 访问端口号
- makedie/fastapi-dls 镜像地址,可以使用我这里提供的镜像加速代理i4t.com/dockerproxy 文档查看加速

查看服务状态

1754762507088.png

本次访问测试

curl https://192.168.21.98:443/-/readme --insecure


浏览器访问测试

1754762564172.png

> 为了防止后续镜像嘎了,或者无法连接hub仓库可以使用我这个地址下载
> wget https://d.frps.cn/file/kubernetes/image/fastapi-dls.tar

Window 启用VGPU


接下来为Window 虚拟机开启VGPU虚拟化

> 我这里采用Window11进行测试

对于Window虚拟化,还需要在Vcenter中进行一些配置修改,请跟我一步步来操作

在Vcenter中编辑虚拟机

1754759664548.png

内存需要配置全部锁定,要锁定所有的内存才能开机

1754759816638.png

引导选项,关闭安全引导

1754759905410.png

添加PCI设备
1754760115815.png

选择PCI 显卡格式

1754760155471.png

V100显卡格式如下

| 配置文件名称 | 物理显卡 | 显存大小 | vGPU模式 |
|---|---|---|---|
| grid_v100x-8q | 特斯拉V100 | 8GB | vDWS |
| grid_v100x-1b | 特斯拉V100 | 1GB | vPC |
| grid_v100x-4a | 特斯拉V100 | 4GB | vAPP |
| grid_v100x-4c | 特斯拉V100 | 4GB | vCS |

1754760730482.png

开机
1754760822542.png

**驱动安装**

文章末尾见驱动地址

下载驱动,驱动版本为v538.15

1754761192951.png

安装驱动
1754761303819.png

点击下一步

1754761407068.png

检查驱动安装是否正常
1754761654940.png
1754761628834.png

现在还需要配置授权服务器,否则vGPU解码会被限制,基本上无法使用

> 在浏览器访问fastapi-dls授权服务
> 上面我配置路径为https://192.168.21.98:443/-/client-token

1754762703898.png

将下载的文件拷贝到系统目录

#拷贝到下面目录
C:\Program Files\NVIDIA Corporation\vGPU Licensing\ClientConfigToken


1754762069568.png

重启NVIDIA Display Container Ls服务,即可获得授权
1754762198303.png

重启这个服务
1754762210261.png

自动获取授权

1754762237024.png

获取成功后
1754762824170.png

1754762876036.png

命令行查看授权
1754763525957.png

查看GPU-Z状态
1754763140249.png

> Window CUDA自行安装测试
> https://developer.nvidia.com/cuda-12-2-0-download-archive?target_os=Windows&target_arch=x86_64&target_version=11&target_type=exe_local

Ubuntu 启用VGPU


- 操作系统版本ubuntu-22.04.5-desktop-amd64
- NVIDIA驱动版本535.154.05

添加vGPU
1754905657854.png

选择vGPU规格

1754905709751.png

添加完毕后可以看到我们新增的vGPU

1754905744818.png

关闭内核CONFIG_MODULE_SIG,在虚拟机上关闭安全模式
1754905799932.png

锁定全部内存
1754905873244.png

开机
1754905909583.png

拷贝驱动包

> 驱动下载地址见文章末尾

1754907136272.png

更新软件包

apt update
apt upgrade -y


1754907369179.png

内核调整,卸载自带的内核驱动

# 打开禁用驱动配置文件
vi /etc/modprobe.d/blacklist.conf

# 在文件的末尾加上这两段
blacklist nouveau
options nouveau modeset=0

# 然后更新内核
sudo update-initramfs -u

# 重启
reboot

# 没有输出就是禁用成功
lsmod | grep nouveau


1754907553022.png

如果安装的是Desktop桌面版,还需要临时关闭图形化界面

#关闭图形化界面
systemctl stop gdm 
切换到纯文本模式
systemctl isolate multi-user.target


安装NVIDIA依赖包

> 这里版本建议使用gcc12和g++ 12版本,别的版本会有问题,编译无法通过

apt install gcc-12 
apt install g++-12  #gcc版本建议12
apt install make


切换版本,默认gcc安装为11

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 11 --slave /usr/bin/g++ g++ /usr/bin/g++-11 --slave /usr/bin/gcov gcov /usr/bin/gcov-11
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 12 --slave /usr/bin/g++ g++ /usr/bin/g++-12 --slave /usr/bin/gcov gcov /usr/bin/gcov-12


检查版本

#GCC
root@vgpu-frps:~# gcc --version
gcc (Ubuntu 12.3.0-1ubuntu1~22.04) 12.3.0
Copyright (C) 2022 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

#g++
root@vgpu-frps:~# g++ -v
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/12/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 12.3.0-1ubuntu1~22.04' --with-bugurl=file:///usr/share/doc/gcc-12/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-12 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-12-ALHxjy/gcc-12-12.3.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-12-ALHxjy/gcc-12-12.3.0/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 12.3.0 (Ubuntu 12.3.0-1ubuntu1~22.04)


使用update-alternatives确认版本,如果这里版本不对,手动输入ID切换下

root@vgpu-frps:~# update-alternatives --config gcc
There are 2 choices for the alternative gcc (providing /usr/bin/gcc).

  Selection    Path             Priority   Status
------------------------------------------------------------
* 0            /usr/bin/gcc-12   12        auto mode
  1            /usr/bin/gcc-11   11        manual mode
  2            /usr/bin/gcc-12   12        manual mode

Press <enter> to keep the current choice[*], or type selection number:
root@vgpu-frps:~#


设置cc变量

ln -s /usr/bin/gcc /usr/bin/cc


CC版本也正常

root@vgpu-frps:~# cc --version
cc (Ubuntu 12.3.0-1ubuntu1~22.04) 12.3.0
Copyright (C) 2022 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


设置临时环境变量

export PATH="/usr/bin:$PATH"


安装NVIDIA-Linux-x86_64-535.154.05-grid.run依赖包

chmod +x NVIDIA-Linux-x86_64-535.154.05-grid.run

#执行脚本
./NVIDIA-Linux-x86_64-535.154.05-grid.run


环境检查
1754907900571.png

选择Continue installation 继续安装
1754907953875.png

加载到内核中,等待进度条走完

1754908273417.png

继续输入Yes进行安装

1754908365061.png

忽略警告
1754908387493.png

等待继续安装
1754908394986.png

不进行自动更新,这里选择No

1754908449020.png

最后安装确认
1754908489811.png

完整完成

1754908507039.png

执行nvidia-smi检查
1754908564323.png

和VCenter虚拟机创建的vGPU做对比

> 配置验证完毕

1754908626346.png

查看NVIDIA授权

root@vgpu-frps:/tmp# nvidia-smi -q|grep Licen
    vGPU Software Licensed Product
        License Status                    : Unlicensed (Unrestricted)


接下来需要执行授权操作

#安装curl
apt install curl

#为vGPU添加授权
curl --insecure -X GET https://192.168.21.98:443/-/client-token -o /etc/nvidia/ClientConfigToken/client_configuration_token.tok

#重启vGPU CLS服务
service nvidia-gridd restart

#查看授权情况
nvidia-smi -q | grep "License"


1754909023431.png

**安装CUDA**

NVIDIA CUDA Toolkit下载页面

> 腾讯云针对特斯拉V100推荐CUDA 12.2
> https://cloud.tencent.com/document/product/560/112129

1754926636363.png

> 需要保证/tmp目录存储空间够用

wget https://developer.download.nvidia.com/compute/cuda/12.2.0/local_installers/cuda_12.2.0_535.54.03_linux.run
chmod +x cuda_12.2.0_535.54.03_linux.run
sh cuda_12.2.0_535.54.03_linux.run


如果/tmp目录无法扩容并且分区位置不够,可以使用下面的参数,调整临时目录

root@vgpu-frps:~# ./cuda_12.2.0_535.54.03_linux.run --tmpdir=/data


输入accept 同意条款

1754916277725.png

按空格,取消选择Driver
1754925837620.png

安装完毕后设置环境变量

#编辑环境变量
vi /etc/profile

#最后添加
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-12.2/lib64
export PATH=$PATH:/usr/local/cuda-12.2/bin
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda-12.2


加载环境变量

source /etc/profile


验证是否成功

root@abcdocker:~# nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2024 NVIDIA Corporation
Built on Tue_Feb_27_16:19:38_PST_2024
Cuda compilation tools, release 12.4, V12.4.99
Build cuda_12.4.r12.4/compiler.33961263_0


**压测**

使用gpu_burn对GPU进行压测测试

git clone https://github.com/wilicc/gpu-burn.git
cd gpu-burn
make


1754926058067.png

国内机器下载

wget https://d.frps.cn/file/tools/gpu-burn/gpu-burn.tar.gz
tar xf gpu-burn.tar.gz
cd gpu-burn
make


压测参数

-d表示进行双精度浮点数计算,100表示进行压测持续100秒

./gpu_burn -d 100


开始压测

1754926161216.png

打开NVIDIA-smi,可以看到程序在调用加载
1754926174737.png

压测结果如下
1754926310480.png

GPU 0: GRID V100X-4Q (UUID: GPU-e9dc7acf-1e22-11b2-9143-d65df9a1ad65)
Initialized device 0 with 4096 MB of memory (3473 MB available, using 3126 MB of it), using DOUBLES
Results are 536870912 bytes each, thus performing 4 iterations
...
100.0%  proc'd: 528 (5399 Gflop/s)   errors: 0   temps: --
Killing processes with SIGTERM (soft kill)
Freed memory for dev 0
Uninitted cublas
done

Tested 1 GPUs:
    GPU 0: OK


**测试结果分析**

运行压测命令后,能得到如下的测试结果:

- (1) 服务器上,每一个GPU的具体型号与UUID。如GRID V100X-4Q;
- (2) 运行压测的中间过程,比如运行了10%,20%,100%的结果
- (3) 细节参数输出,比如GPU的速度、报错、温度

proc'd: 528 (5399 Gflop/s)   errors: 0   temps: --


每一个GPU的计算速度,比如GPU0为5399 Gflop/s,这里显示了1个GPU的结果
errors:表示哪些GPU有问题
temps:表示各个GPU的温度(摄氏度)

- (4) 最终结论:通过如下的输出,告诉我们每一个GPU是否工作正常

Tested 8 GPUs:
        GPU 0: OK


常见问题


Q1:计算卡是否可以通过GRD或SD驱动程序驱动?

A1:可以,但是默认是工作在计算模式下而且无法在控制面板开启WDDM模式,需要进入注册表进行设置才可以使其工作在WDDM模式或调用NVIDIA VGX虚拟显示器。

Q2:为什么GPU-PV设置使用了指定的计算卡后通过Parsec之类的软件会黑屏退出并报关于显卡的错误?

A2:如果已经排除了驱动安装问题(很多教程都有说明如何安装驱动),那就是因为该卡在物理机上未有显示输出导致的。如果需要让NVIDIA无显示输出的计算卡获得虚拟显示器,需要安装WDDM驱动。

计算卡在安装WDDM驱动后会自动出现一个叫NVIDIA VGX的虚拟显示器。在设备上如果使用的都是WDDM驱动支持的显示卡或计算卡,则已经可以正常使用GPU-PV。

但是如果设备上是一张家用级显示卡+计算卡的配置,请安装GRD或SD驱动并修改注册表。

本文驱动合集


兼容ESXi-8.0-0-ESXI-8.0.2皆可以使用,其它版本自行测试

ESXI 8.0 V100全套驱动下载地址

1754752317251.png