解除vGPU的默认帧率限制

解除vGPU的默认帧率限制

背景

简单说要要点,详细的在Nvidia手册上。

Nvidia对于vGPU有几个类型的调度器(scheduler): euqal share / fixed share / best effort

几个调度器的含义从字面就能看出来,问题在于best effort调度器会倾向让vGPU占用更多的物理GPU份额,这导致某个运行着高性能损耗程序的vGPU会去侵占负载不高的vGPU。

例如,即使我把物理GPU分割成10个vGPU。如果其中一个vGPU跑显卡危机,剩下9个vGPU基本不动,那么那一个vGPU会几乎占用掉整个物理GPU。

这个特性在某些情况下并不好,所以NVidia在使用Best Effort调度器的时候,同时引入了FRL(Frame-rate Limiter)。也就是个字面意思,限制单个程序的帧率。

根据vGPU的类型,FRL的数值不同,如下(忽略图中的红框标注,这个图当时是给别人说事用的)

详见 https://docs.nvidia.com/grid/5.0/pdf/grid-vgpu-user-guide.pdf "CHANGING VGPU SCHEDULING POLICY"节

理论上不要动这玩意就行,但是现在的需求是解除在Best Effort模式下的FRL。

操作

在不同的Hypervisor上操作不一样,这里取kvm的操作方式

echo "frame_rate_limiter=0" > /sys/bus/mdev/devices/vgpu-id/nvidia/vgpu_params

例如

echo "frame_rate_limiter=0" > /sys/bus/mdev/devices/aa618089-8b16-4d01-a136-25a0f3c73123/nvidia/vgpu_params

这个vGPU就被解除帧率限制了。等这个vGPU所在的虚拟机重启就生效。

官方文档, 搜索"Single vGPU benchmark scores are lower than pass-through GPU"

https://docs.nvidia.com/grid/latest/grid-vgpu-release-notes-generic-linux-kvm/index.html#vgpu-software-driver-versions

其他

在PVE平台上遇到了write failed: operation not permitted 的问题。由于目前是用PVE的web控制台进行的显卡分割,猜测可能跟这个有关系。使用mdevctl自己分割显卡应该没这问题。

2 thoughts on “解除vGPU的默认帧率限制

  • 你好,想要学习一下NVidia License Server 分析和破解的文章,请问方便参考一下嘛,谢谢啦

  • 发表回复

    您的邮箱地址不会被公开。 必填项已用 * 标注