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

ESXI 8.0
需要安装部署ESXI8版本的可以参考下面文章,这里不过多介绍
丽台Tesla V100
丽台Tesla V100是NVIDIA基于Volta架构研发的专业级显卡,采用5120个CUDA核心与16GB HBM2显存,显存位宽达4096bit。 该显卡支持PCI Express 3.0接口,最大功耗为250W,适用于深度学习、科学计算等高负载场景。


硬件BIOS修改
针对R730需要进入BIOS,对以下配置进行调整
开机F2


开启以下配置,将BIOS设置为enable
- SR-IOV Global Enable
- Memory Mapped I/O above 4GB

ESXI 8.0安装NVIDIA VGPU驱动
检查驱动兼容性
https://www.nvidia.cn/data-center/data-center-gpus/qualified-system-catalog/
前置条件
开启ESXI SSH
主机维护模式
检查ESXI显卡是否识别
[root@MiWiFi-RA72-srv:~] lspci |grep NVIDIA
0000:04:00.0 3D controller: NVIDIA Corporation GV100GL [Tesla V100 SXM2 16GB]
解压上传软件包
驱动见文章末尾下载
上zip包中的压缩包上传到ESXI中

NVIDIA-GRID-vSphere-软件包.zip
前台上传
查看存储路径
文件上传完毕后,我们进入到存储路径中,安装驱动包
使用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 驱动执行效果

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

重启服务器
reboot

如果直接直通显卡,这里需要关闭,否则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 |
+---------------------------------------------------------------------------------------+

为了保证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.

再次查看状态,然后重启,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.

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 |
+---------------------------------------------------------------------------------------+

vCenter 安装及图形共享设置
Vcenter安装,之前文章介绍过,此处略过安装
登录到vCenter,选择刚才安装vGPU驱动的ESXI主机。点击菜单栏中的配置,在刷新的窗口中点击图形。点击主机图形,点击编辑打开编辑主机图形设置窗口。在设置窗口里选择直接共享,点击确定完成设置。

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

直接共享生成完毕

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 文档查看加速
查看服务状态

本次访问测试
curl https://192.168.21.98:443/-/readme --insecure
浏览器访问测试

为了防止后续镜像嘎了,或者无法连接hub仓库可以使用我这个地址下载
wget https://d.frps.cn/file/kubernetes/image/fastapi-dls.tar
Window 启用VGPU
接下来为Window 虚拟机开启VGPU虚拟化
我这里采用Window11进行测试
对于Window虚拟化,还需要在Vcenter中进行一些配置修改,请跟我一步步来操作
在Vcenter中编辑虚拟机

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

引导选项,关闭安全引导

添加PCI设备
选择PCI 显卡格式

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 |

开机
驱动安装
文章末尾见驱动地址
下载驱动,驱动版本为v538.15

安装驱动
点击下一步

检查驱动安装是否正常

现在还需要配置授权服务器,否则vGPU解码会被限制,基本上无法使用
在浏览器访问fastapi-dls授权服务
上面我配置路径为https://192.168.21.98:443/-/client-token

将下载的文件拷贝到系统目录
#拷贝到下面目录
C:\Program Files\NVIDIA Corporation\vGPU Licensing\ClientConfigToken

重启NVIDIA Display Container Ls服务,即可获得授权
重启这个服务
自动获取授权

获取成功后

命令行查看授权
查看GPU-Z状态
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
选择vGPU规格

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

关闭内核CONFIG_MODULE_SIG,在虚拟机上关闭安全模式
锁定全部内存
开机
拷贝驱动包
驱动下载地址见文章末尾

更新软件包
apt update
apt upgrade -y

内核调整,卸载自带的内核驱动
# 打开禁用驱动配置文件
vi /etc/modprobe.d/blacklist.conf
# 在文件的末尾加上这两段
blacklist nouveau
options nouveau modeset=0
# 然后更新内核
sudo update-initramfs -u
# 重启
reboot
# 没有输出就是禁用成功
lsmod | grep nouveau

如果安装的是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
环境检查
选择Continue installation 继续安装
加载到内核中,等待进度条走完

继续输入Yes进行安装

忽略警告
等待继续安装
不进行自动更新,这里选择No

最后安装确认
完整完成

执行nvidia-smi检查
和VCenter虚拟机创建的vGPU做对比
配置验证完毕

查看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"

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

需要保证
/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 同意条款

按空格,取消选择Driver
安装完毕后设置环境变量
#编辑环境变量
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

国内机器下载
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
开始压测

打开NVIDIA-smi,可以看到程序在调用加载
压测结果如下
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全套驱动下载地址



看看驱动
看看驱动
下载驱动
请问一下,tesla t4可以用这个驱动么?
[…] Dell R730虚拟化ESXI8.0.3平台使用丽台Tesla V100配置vGPU […]
看看驱动
1080这样显卡支持?
1.首先我使用的是v100显卡,1080也是支持,需要可以塞进r730服务器
2.显卡驱动不要和我使用的一样版本,需要下载对应支持的。
3.消费级显卡比服务器级的支持比较好,目前我服务器使用的是2080ti 22G,驱动很稳定
下载驱动
看看驱动
看看驱动
谢谢分享
下载驱动
需要下载驱动
需要下载驱动测试
看看驱动
感谢分享