如何通过 optirun / primusrun 强制 vmware station 12.5.5 使用 nvidia 显卡?不涉及 GPU 直通

如何通过 optirun / primusrun 强制 vmware station 12.5.5 使用 nvidia 显卡?不涉及 GPU 直通

我很高兴拥有混合图形系统(讽刺)。

我有一张 Nvidia GeForce GTX 960m 显卡和 Intel 集成显卡。lspci此英特尔卡的名称为Intel Corporation 4th Gen Core Processor Integrated Graphics Controller。但我相信给出处理器的名称就足够了(英特尔酷睿 i7-4720HQ)来识别Intel显卡。

昨天,我安装了 VMware Workstation 12.5.5,以便在 Debian 9 (RC3) 主机系统上设置 Windows 10 作为任务。不幸的是,我意识到我的虚拟机使用的是 Intel 卡而不是 Nvidia 卡。

让我显示输出sudo optirun nvidia-smi

Mon May 15 09:14:40 2017       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 375.39                 Driver Version: 375.39                    |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce GTX 960M    Off  | 0000:01:00.0     Off |                  N/A |
| N/A   46C    P0    N/A /  N/A |      5MiB /  4044MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID  Type  Process name                               Usage      |
|=============================================================================|
|    0      8844    G   /usr/lib/xorg/Xorg                               4MiB |
+-----------------------------------------------------------------------------+

此输出是在 VM 运行 3DMark 2.3.3 时收集的。虚拟机启动为:optirun vmware

我知道你们中有些人可能会说“你可以不是在您的来宾虚拟机上使用 Nvidia 卡”。但我的问题是不是关于GPU直通...

如果我必须通过 PCI 卡通过 Nvidia 卡到达虚拟机,我会使用 qemu/kvm - 而不是 VMware Workstation。

我想做或看到的只是以下内容:

  1. 跑步optirun vmware
  2. 请参阅将 VMware VM(或vmx)列为在 Nvidia GPU 上运行的进程(nvidia-smi将是指示符)。 (抱歉,VMware VM 或vmx我的意思是我的来宾虚拟机)

我怎样才能强迫这种行为?我承认我只是想跑workstation过去optirun ,但我不知道还能做什么。

答案1

我知道这是一个旧线程,但我也很高兴拥有大黄蜂系统(讽刺加剧),但是解决方案是这样的,因为肯定有人仍然需要修复这个问题(感谢 Vmware 在 2023 年仍然没有修复这个问题):

  1. 使用最新的 Nvidia 驱动程序(nvidia-driver 或 nvidia-legacy-driver)

  2. 确保 bumblebee 正常工作(安装 bumblebee-nvidia,并检查是否/etc/bumblebee/xorg.conf.nvidia根据“ $ lspci | grep VGA”给出的硬件地址启用 BusID(如果需要)

  3. 另请记住,Vmware请勿使用 PRIMUSRUN 进行工作所以我们需要旧的 VirtualGL 方法,要启用它,请确保编辑:

    ~/.vmware/preferences文件并添加以下选项:

    mks.gl.allowBlacklistedDrivers = TRUE

    以避免 Nvidia 驱动程序或 bumblebee 被 Vmware 列入黑名单的任何问题。

  4. 设置完一切后,使用命令:

    $ optirun vmware &$ optirun vmplayer &基于您正在使用的 vmware 解决方案。

要验证 vmware 是否在 Nvidia 卡上运行,请使用 nvidia-smi,因为 optirun 的输出有时会撒谎。

$ nvidia-smi

输出应该是:

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 525.89.02    Driver Version: 525.89.02    CUDA Version: 12.0     |
|-------------------------------+----------------------+----------------------+
| 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  NVIDIA GeForce ...  On   | 00000000:01:00.0 Off |                  N/A |
| N/A   67C    P0    24W /  60W |    220MiB /  6144MiB |     32%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|    0   N/A  N/A     48987      G   /usr/lib/xorg/Xorg                  6MiB |
|    0   N/A  N/A     49784    C+G   ...lib/vmware/bin/mksSandbox      211MiB |
+-----------------------------------------------------------------------------+

其中...lib/vmware/bin/mksSandboxvmware 进程运行在 Nvidia 上。

答案2

偶然我发现了这个脚本。它带有这个操作说明

不幸的是它不支持 debian 9 (rc3),我认为作者刚刚放弃了这个项目。我没有足够的经验来自己修改这个脚本,但如果运气好的话,有人会的。

如果有人会发现这个脚本如何强制 vmware 虚拟机在 Nvidia 卡上运行(通过primusrun/optirun),请在此主题中发表答案。

相关内容