2014-07-09 20:41:04 +0000 2014-07-09 20:41:04 +0000
30
30

从VirtualBox中使用NVidia GPU?

主机设置。

  • Windows 7 x64

  • NVidia Optimus

  • NVIDIA控制面板中,我明确选择了高性能NVIDIA处理器for。

  • 当VirtualBox运行时,NVidia软件没有将其列为使用NVidia GPU的应用程序。因此,我认为VirtualBox确实没有使用Nvidia GPU。

Guest:

  • Windows 7 x64 (即与主机相同)

  • 已安装Guest Additions

  • 在 VirtualBox 设置中启用 3D 加速。

  • Rhinoceros, 一个OpenGL功能的应用程序报告为视频适配器。

答案 (2)

22
22
22
2019-01-18 20:23:51 +0000

我意识到几年过去了,但想回答,因为这个帖子显示相当高,当你谷歌 “virtualbox 3d多GPU"。在过去的时间里,事情已经变得简单和更好。

偶然发现这个帖子的人很可能会来到这里,因为他们有一台笔记本电脑或PC,有两个GPU,这是相当普遍的这些天–特别是在游戏笔记本电脑上。板载的英特尔GPU用于渲染窗口和一般的应用程序,但使用GPU 3D功能的应用程序应该通过性能更高的Nvidia GPU来实现。

今天,我在笔记本上搭建了一个Ubuntu虚拟机,进行跨平台开发,除了客座虚拟机速度极慢外,其他一切正常,而且没有任何解释,因为CPU、内存、磁盘都显示利用率很低。

没多久就发现是视频性能的问题。启动应用程序,最大化/最小化窗口 - 任何我们在2019年认为理所当然但需要3D加速以任何合理的速度工作的东西 - 正在使用GPU 0.

很容易确定这一点,因为Windows 10现在能够使用 "任务管理器 "查看GPU利用率,然后是 "性能 "标签。而且我可以看到,当我移动窗口,最大化,最小化,那是通过主机上的GPU来完成的。主机上的那个GPU是集成的Intel HD GPU,而我想用的是NVidia GTX-1050ti,也就是GPU1。

找了一圈,我真的没有找到任何地方可以指定使用哪个GPU。但是这个帖子和其他一些帖子提醒了我,在这些设置中,你必须进入NVidia控制面板,然后是 "管理3D设置",然后是 "程序设置 "标签。

你不可能在列表中找到 "Virtualbox"。但你可以按 "添加 "按钮,然后添加virtualbox.exe。你可能需要钻研你的virtualbox安装所在的驱动器/路径。一旦你添加了它,在下面的设置中,确保第2项。"Select the preferred graphics processor for this program” is set to the GPU that you want it to use, which in my case was “HIgh-performance NVIDIA processor”.

不要设置为自动,当然也不要设置为集成。当然,你需要在虚拟机设置中勾选3D加速框,并且你需要在主机上安装客人添加。但是,当你按照上面的方法设置了主机视频3D设置后,关闭客座虚拟机,退出虚拟盒,然后重新启动虚拟盒和虚拟机。

如果你使用任务管理器|performacne,并查看 “virtualbox管理器 "进程,并观察当你浏览客人虚拟机的用户界面时,会使用什么GPU,你应该看到它现在使用更好的GPU。请看下面粘贴的图片。

说了这么多,不要指望能在客人虚拟机中运行游戏。3D加速通关仍然没有那么深入。但你可以期望在你的客座中拥有一个现代的操作系统和用户界面,并有一个可接受的体验。一个人将能够在客人虚拟机中玩旧的游戏,就像任何基于DirectX9的游戏一样。不幸的是,随着GPU虚拟化能力的发展,3D游戏技术的发展也越来越快。

17
17
17
2015-12-31 17:15:00 +0000

给予客人完全的GPU访问权可能是不可能的。如果一个虚拟机在你的主机使用你的GPU时可以直接访问它,那么坏事就会发生,因为在两台实际上不同的计算机之间共享内存是不可能的;指针和地址什么的在它们之间会有很大的不同。

不过,你可以尝试一些方法。首先,在NVidia控制面板(3D设置管理3D设置首选图形处理器)中把你的首选图形处理器设置为好的。这样可能会让VirtualBox用NVidia卡来做OpenGL。

如果这还没有帮助,请尝试在安全模式下安装Guest Additions

最后,_在Linux主机上,你可以尝试将GPU通过虚拟机,但这只对PCI卡有效,我没能找到你的是否是PCI卡,即使如此,你也很有可能将GPU从主机上扯开,或者造成其他问题。首先找到好卡的PCI地址(总线、设备和功能)。将你的虚拟机的芯片组设置为ICH9;当我尝试时,这并没有立即破坏任何东西。然后用VBoxManage实用程序来连接卡。

vboxmanage modifyvm "Your VM Name" --pciattach BB:DD.F@bb:dd.f

适当替换Your VM NameBB是你的GPU在主机上的总线号;DD是设备;F是功能。在@之后,输入它在客机上的PCI插槽。例如:

vboxmanage modifyvm "Windows 7 x64" --pciattach 01:00.0@03.01.0

一般来说,在Linux主机上更有可能实现GPU直通。请看 如何设置一个带有GPU直通的游戏机