开始之前

本文章假设你已经拥有了一个vSphere/KVM/Windows HyperV虚拟化平台,并已经向主机节点中安装了Nvidia Tesla计算卡(游戏卡,Quando等非计算卡不在本文讨论范围内)

如果你还没有你的Hypervisor主机,强烈建议你去看看我的朋友Anduin Xue的这篇文章: 让你的数据中心使用 GPU 算力!。 事实上,Anduin Xue搭建了我一直用于研究测试的数据中心,同时在我尝试部署GPU服务器时提供了很大的帮助。

获取许可证

要想在Nvidia VGPU进行Cuda计算或者输出显示,必须安装NVIDIA Grid驱动,但是这个驱动居然是tm要钱的,并且如果你是个人非常难以购买。 fxxk nvidia

如果你想要使用Vgpu,一般可以通过评估测试获得90天的许可。

申请评估

打开NVIDIA Vgpu评估中心, 选择Rigister For Trial, 邮箱填写参考下方提示,其它信息随意填写即可。

在申请评估试用的时候强烈建议使用一个自定义域名邮箱,而不是公共邮箱(如Outlook, Gmail, QQ等),使用自定义域名邮箱可以极大提高申请的通过率和通过速度,一般在五分钟内即可拿到许可证。

如果你拥有一个自己的域名但没有邮箱服务,可以考虑使用Microsoft Exchange(Paid)或者使用Cloudflare Email Routing服务(Free)快速获得一个邮箱服务。

设置许可服务器并分配许可证

取得许可证后,使用你的账户登录到Nvidia Application Hub Dashboard,然后按照下面步骤操作。

  • 选择License Server, 点击Create Server
  • 填写名称和描述,勾选Express CLS Installation, 选择Next License Assign 1
  • 为服务器分配许可证,我分别分配了16个vWs许可证与16个vApp许可证到许可服务器中,你可以按照你的部署规模调整部署数量。 License Assign 2
  • 完成后Next, 然后Create Server即可
  • 左侧选择Server Instances, 然后在Actions中选择Generate Client Configuration Token,选择你刚才创建的许可服务器,然后Download, 这个文件将在之后为服务器配置许可时用到. License Assign 3

选择合适的vgpu类型

在为虚拟机分配虚拟GPU时,可以选择不同的vgpu类型

由于我们需要使用OpenCL/CUDA计算功能,必须确保你选择的GPU类型支持CUDA运算。 一般来说,所有Q-Series和C-Series的vGPU都支持CUDA计算(Tesla M6, Tesla M10, Tesla M60仅8Q支持),而A-Series和B-Series不支持CUDA计算。 请确保选择Q/C Series的vGPU, 建议选择Q-Series,其功能最为强大 详情可以参考Nvidia用户手册

以Tesla P4举例, Tesla P4有8G的显存,可用的vGPU类型有P4-1Q, P4-2Q, P4-4Q, P4-8Q (这里仅列出Q类型),其中后面的数字代表了显卡可用的显存数,这里选择的显存数大小决定了显卡可以分配到几台虚拟机,例如P4-2Q可以分配到4台虚拟机,但是每台虚拟机只能使用2G的显存,而P4-8Q只能分配到一台虚拟机,但是这台虚拟机可以使用全部8G的显存。实际部署中,应该根据你的需求选择合适的显存大小。

这里我们选择P4-8Q继续。

各种不同计算卡可用的vgpu类型可在grid文档查询。

vcenter-vgpu-configure

安装Grid驱动

安装驱动

Grid驱动可以从Nvidia Application Hub Dashboard的Software-downloads中下载,一般来讲客户机驱动应与hypervisor驱动版本号一致。 驱动有三种分发版本:deb, rpm, runfile。如果你的平台支持安装对应的软件包,则不建议通过runfile安装。

这里以Ubuntu 22.04 LTS举例,将对应版本的驱动下载到服务器上后,可以使用下面命令完成安装:

1
sudo apt install ./nvidia-linux-grid-525_525.105.17_amd64.deb

这里我使用了apt install来完成安装而不是dpkg -i, 因为apt可以自动安装缺失的依赖。

安装完成后,输入nvidia-smi,此时应该可以看到vgpu的信息。 nvidia-smi

配置许可证

首先,编辑gridd配置文件:

1
vim /etc/nvidia/gridd.conf

找到FeatureType并将其改为改为1, 其它选项保留不动即可。

接下来进入/etc/nvidia/ClientConfigToken目录(如果没有则创建),将前面下载到的Client Configuration Token放入,然后使用chmod 744为其修改权限。

完成后,重启nvidia-gridd:

1
sudo systemctl restart nvidia-gridd.service

最后用nvidia-smi -q确认许可已被正确安装,如果正确安装,你应该可以看到类似下面一段内容:

1
2
3
vGPU Software Licensed Product
Product Name : NVIDIA RTX Virtual Workstation
License Status : Licensed (Expiry: 2023-4-20 12:14:21 GMT)

安装CUDA

在选择Cuda版本时需要注意,一般来讲Grid驱动会落后标准Nvidia驱动几个版本,因此可能无法安装最新版本的Cuda, 你可以在cuda-release-note中看到不同的cuda版本对驱动的版本要求。

一些AI软件也有CUDA版本要求,也应该根据它的文档确定应该安装的cuda版本.

打开cuda-toolkit-archive,选择你想安装的版本,然后选择你对应的系统即可获得对应的cuda toolkit下载链接。

只要是Linux系统,无论是什么发行版,你都不可以使用平台软件包(deb,rpm等)来安装cuda-toolkit,而是必须使用runfile安装 如果使用平台软件包安装,在安装时cuda-driver会与已安装的grid-driver冲突,导致安装无法继续。

下载完runfile后,使用sudo运行,然后在选择组件界面,取消勾选安装cuda-driver,否则grid驱动会被覆盖

cuda-installer

安装完成后,编辑系统PATH环境变量 sudo vim /etc/environment

PATH末尾加入:/usr/local/cuda-12.0/bin (版本号自行按需修改)

重新启动你的shell,然后使用下面命令确认cuda已完成安装:

1
nvcc --version

运行模型

You’re all set. 接下来就愉快炼丹吧

chatglm-demo

Reference