VirtualBox의 NVidia GPU를 사용하시겠습니까?

VirtualBox의 NVidia GPU를 사용하시겠습니까?

VirtualBox 게스트가 NVidia 그래픽을 사용하도록 하려면 어떻게 해야 합니까?

호스트 설정:

  • 윈도우 7 x64

  • 엔비디아 옵티머스

  • ~ 안에엔비디아 제어판, 내가 명시적으로 선택했습니다.고성능 NVIDIA 프로세서 을 위한:

     C:\Program Files\oracle\VirtualBox\VirtualBox.exe
     C:\Program Files\Oracle\VirtualBox\VBoxSVC.exe
    
  • VirtualBox가 실행 중일 때 NVidia 소프트웨어는 이를 NVidia GPU를 사용하는 응용 프로그램으로 나열하지 않습니다. 따라서 VirtualBox는 실제로 Nvidia GPU를 사용하지 않는다고 가정합니다.

손님:

  • Windows 7 x64(즉, 호스트와 동일)

  • 게스트 추가설치됨

  • VirtualBox 설정에서 3D 가속 활성화: 디스플레이/비디오/3D 가속 활성화

  • 무엇코뿔소, OpenGL 가능 애플리케이션은 비디오 어댑터로 보고합니다.

    Humper
    Chromium
    OpenGL version: 2.1 Chromium 1.9
    Render version: 2.0
    Shading Language: 1.40 - Intel Build 9.17.10.3517
    Driver Date: NA
    Driver Version: NA
    Maximum Texture size: 8192 x 8192
    Z-Buffer depth: 32bits
    Maximum Viewport size: 8192 x 8192
    Total Video Memory: 64 MB
    

    나에게는 가상 머신이 호스트의 3D 하드웨어 가속을 사용하는 것처럼 보이지만 불행하게도 Intel의 것입니다.

답변1

몇 년이 지났다는 것을 알고 있지만 "virtualbox 3d multiple GPU"에 대해 Google에 검색할 때 이 게시물이 꽤 높게 표시되므로 답변하고 싶었습니다. 시간이 지나면서 상황은 훨씬 더 단순해지고 좋아졌습니다.

이 스레드를 우연히 발견한 사람들은 GPU가 2개 있는 노트북이나 PC를 가지고 있기 때문에 여기로 올 가능성이 높습니다. 요즘에는 특히 게임용 노트북에서 이러한 현상이 매우 일반적입니다. 온보드 Intel GPU는 창 및 일반 응용 프로그램을 렌더링하는 데 사용되지만 GPU 3D 기능을 사용하는 응용 프로그램은 더 높은 성능의 Nvidia GPU를 통해 수행해야 합니다.

오늘 크로스플랫폼 개발을 하려고 노트북에 Ubuntu VM을 구축하고 있었는데, 게스트 VM이 엄청나게 느린 것 빼고는 다 괜찮았고, CPU, 메모리, 디스크 모두 낮은 활용도를 보여서 설명이 없었습니다.

문제의 원인이 비디오 성능 때문이라는 것을 알아내는 데는 오랜 시간이 걸리지 않았습니다. 애플리케이션 실행, 창 최대화/최소화(2019년에는 당연하다고 생각했지만 합리적인 속도로 작동하려면 3D 가속이 필요한 모든 것)는 GPU 0을 사용했습니다.

Windows 10에는 이제 "작업 관리자"와 "성능" 탭을 사용하여 GPU 사용률을 확인할 수 있는 기능이 있으므로 이를 쉽게 판단할 수 있습니다. 그리고 호스트의 GPU를 통해 창을 이동하고 최대화, 최소화하는 과정을 볼 수 있었습니다. 호스트에 있는 그 GPU는 통합 Intel HD GPU인데, GPU1이었던 NVidia GTX-1050ti를 사용하고 싶었습니다.

주변을 검색한 후에는 사용할 GPU를 지정할 수 있는 곳을 실제로 찾지 못했습니다. 하지만 이 스레드와 다른 스레드에서는 이러한 종류의 설정에서는 NVidia 제어판으로 이동한 다음 "3D 설정 관리", "프로그램 설정" 탭으로 이동해야 한다는 점을 상기시켜 주었습니다.

목록에서 "Virtualbox"를 찾을 수 없을 것입니다. 하지만 "추가" 버튼을 누르고 virtualbox.exe를 추가할 수 있습니다. Virtualbox가 설치된 드라이브/경로를 드릴다운해야 할 수도 있습니다. 추가한 후 아래 설정에서 항목 2. "이 프로그램에 대해 선호하는 그래픽 프로세서 선택"이 사용하려는 GPU로 설정되어 있는지 확인하세요. 제 경우에는 "고성능 NVIDIA 프로세서"였습니다. .

자동으로 설정하지 말고 통합으로 설정하지 마십시오. 물론 3D 가속 상자가 선택된 VM 설정이 필요하고 호스트에 게스트 추가 기능이 설치되어 있어야 합니다. 그러나 위에서 설명한 대로 호스트 비디오 3D 설정을 지정한 후에는 게스트 VM을 종료하고 Virtual Box를 종료한 다음 Virtualbox와 VM을 다시 시작하십시오.

작업 관리자|수행을 사용하고 "가상 상자 관리자" 프로세스를 살펴보고 게스트 VM의 UI를 탐색할 때 어떤 GPU가 사용되는지 관찰하면 이제 더 나은 GPU를 사용하는 것을 볼 수 있습니다. 아래에 붙여넣은 이미지를 참조하세요.

그렇지만 게스트 VM에서 게임을 실행할 수 있을 것이라고는 기대하지 마십시오. 3D 가속 통과는 여전히 그리 멀지 않습니다. 그러나 게스트에 최신 OS 및 UI가 있고 수용 가능한 경험이 있을 것으로 기대할 수 있습니다. directX9 기반 게임처럼 게스트 VM에서 오래된 게임을 플레이할 수 있습니다. 안타깝게도 GPU 가상화 기능이 발전함에 따라 3D 게임 기술도 더 빠르게 발전합니다.

스크린샷

답변2

게스트에게 전체 GPU 액세스 권한을 부여하는 것은 아마도 불가능할 것입니다. 호스트가 GPU를 사용하는 동안 가상 머신이 GPU에 직접 액세스할 수 있다면 사실상 서로 다른 두 컴퓨터 간에 메모리를 공유하는 것이 문제가 아니기 때문에 Bad Things TM 이 발생합니다. 포인터와 주소 그리고 그 밖의 것들은 그들 사이에 매우 다를 것입니다. (소비자가 사용할 수 있는 카드는 동시에 두 대의 컴퓨터 서비스를 지원하지 않습니다.)

그러나 시도해 볼 수 있는 몇 가지 방법이 있습니다. 먼저 NVidia 제어판(3D 설정3D 설정 관리선호하는 그래픽 프로세서). 그러면 VirtualBox가 OpenGL용 NVidia 카드와 함께 사용될 수 있습니다.

그래도 도움이 되지 않으면 시도해 보세요.안전 모드에서 게스트 추가 설치손님에.

마지막으로,Linux 호스트에서, GPU를 가상 머신으로 전달하려고 시도할 수 있지만 이는 PCI 카드에서만 작동하며 귀하의 카드가 PCI인지 여부를 확인할 수 없었습니다. 그럼에도 불구하고 GPU를 가상 머신에서 분리할 가능성이 높습니다. 호스트 또는 다른 문제를 일으키는. 먼저 양호한 카드의 PCI 주소(버스, 장치 및 기능)를 찾으십시오. VM의 칩셋을 ICH9로 설정합니다. 내가 시도했을 때 이것은 즉시 아무 것도 깨지지 않았습니다. 그런 다음 VBoxManage 유틸리티를 사용하여 카드를 연결합니다.

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

Your VM Name적절하게 교체하십시오 . BB호스트에 있는 GPU의 버스 번호입니다. DD장치입니다; F기능입니다. 뒤에 @게스트에 있을 PCI 슬롯을 입력합니다. 예를 들어:

vboxmanage modifyvm "Windows 7 x64" --pciattach 01:[email protected]

일반적으로 GPU 패스스루는 Linux 호스트에서 가능할 가능성이 높습니다. 보다GPU 패스스루로 게임기를 설정하는 방법.

관련 정보