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


29

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

호스트 설정 :

  • 윈도우 7 x64

  • NVidia Optimus

  • 에서 NVIDIA 제어판 , 나는 명시 적으로 선택 고성능 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 하드웨어 가속을 사용하지만 불행히도 인텔은 3D 하드웨어 가속을 사용하는 것처럼 보입니다.


2
VM은 직접적인 하드웨어 액세스를 얻지 못하고 가상 GPU를 얻습니다. . . 관련 질문 : superuser.com/questions/395245/…
ernie

6
@ernie VirtualBox는 게스트가 호스트 GPU의 OpenGL API에 직접 액세스 할 수 있도록합니다. 내가 말할 수있는 한 내 컴퓨터에서 작동합니다. VirtualBox만이 NVidia GPU 대신 Intel GPU를 사용하고 있습니다. VirtualBox 설명서의 인용문 : "이 기능을 사용하면 가상 시스템 내부의 응용 프로그램이 OpenGL 또는 Direct3D 8/9 프로그래밍 인터페이스를 통해 3D 기능을 사용하여 소프트웨어에서 에뮬레이션하지 않고 (느린 경우) VirtualBox를 사용하려고 시도합니다 호스트의 3D 하드웨어. "
feklee

@feklee 질문의 제목이 잘못 되었습니다 . VBox에 nVidia GPU를 사용하려고합니다 . '보낸 사람'도 가능하지만 하드웨어-통과, 즉 다른 의미입니다. VBox 내에서 직접 호스트의 GPU에 액세스합니다 .
larkey


"virtualbox passthrough video"에 대해 알아보십시오.
e-info128

답변:


20

몇 년이 지났지 만 "virtualbox 3d multiple GPU"에 대해 Google에서 게시 할 때이 게시물이 꽤 높게 표시되므로 답변을 원했습니다. 시간이 지남에 따라 상황이 훨씬 간단하고 좋아졌습니다.

이 스레드에 걸려 넘어지는 사람들은 GPU가 2 개인 랩탑 또는 PC를 가지고 있기 때문에 여기에 착륙 할 것입니다. 요즘은 특히 게임 랩톱에서 매우 일반적입니다. 온보드 인텔 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을 종료하고 가상 상자를 종료 한 다음 virtualbox와 VM을 다시 시작하십시오.

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

그러나 게스트 VM에서 게임을 실행할 수있을 것으로 기대하지 마십시오. 여전히 3D 가속 패스는 그리 멀지 않습니다. 그러나 게스트에 최신 OS 및 UI가 있고 수용 가능한 경험이있을 것으로 기대할 수 있습니다. directX9를 기반으로하는 것과 같이 게스트 VM에서 오래된 게임을 할 수 있습니다. 불행하게도 GPU eveolves를 가상화 할 수있는 능력으로 3D 게임 기술이 더 빠르게 발전합니다.

스크린 샷


2
오늘 VirtualBox 및 VMWare의 3D 가속 기능에 대해 약간의 연구를했으며 2019 년 1 월 현재 게스트 VM의 GPU 가속이 중요한 경우 VMWare를 선택하는 것이 가장 좋습니다. 특히 게스트 OS가 Windows 인 경우 특히 그렇습니다. VirtualBox 지원 GPU 가속 기능은 게스트 VM에 최대 128MB의 비디오 RAM 만 제공 할 수 있으며 VMWare에서는 비디오 메모리에 최대 2GB를 할당 할 수 있으므로 약간 덜 개발되었습니다. VMWare는 DirectX 10을 지원하고 Virtualbox는 DirectX9를 지원합니다. 내가 포스트에서 말했듯이, directx 9는 꽤 데이트되었습니다.
토마스 칼라일

1
"이 프로그램에 적합한 그래픽 프로세서를 선택하십시오"가 사용하려는 GPU로 설정되어 있습니다 "위의 옵션이 표시되지 않습니다. Ambinetn, Ansiotropic Filtering 등을 볼 수 있지만 "선호하는 grapics 프로세서 선택"에는 아무것도 없습니다.
moondra

아직 옵티머스에서 작업하지는 못했지만 PCI 패스 스루가 필요하지만 여전히 해킹이 가능하다고 생각합니다
kensai

virtualbox에 nvidea 카드를 강제로 활성화하는 비슷한 트릭을 수행했지만 Virtualbox에서 제공하는 3 개의 사용 가능한 그래픽 컨트롤러 중 어느 것도 Neon KDE 게스트 OS와 제대로 작동하지 않았습니다. 엄청난 UI 결함이있어서 내 경우에 nvidea를 사용하는 것은 opion이 아닙니다. @ThomasCarlisle의 제안 덕분에 VMware와 함께 게임을하려고합니다.
Arkemlar

17

게스트에게 전체 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:00.0@03.01.0

일반적으로 Linux 호스트에서는 GPU 패스 스루가 더 가능성이 높습니다. GPU 패스 스루로 게임 머신을 설정하는 방법을 참조하십시오 .


2
GPU를 VM에 연결하는 것이 "나쁜 것"이라는 전제는 잘못되었습니다. 베어 메탈 하이퍼 바이저에서 게임용 VM을 만들기 위해 많은 사람들이 참여하고 싶어합니다. 리눅스에서 이것을하기를 원한다면, PCIe GPU를 블랙리스트에 올리면 커널은 칩셋 그래픽으로 만 갈 수있다. "공유 메모리"문제를 방지합니다. Windows가 카드를 집어 올리지 못하게하는 것이이 문제를 해결하기위한 가장 어려운 문제 일 수 있으며 장치를 비활성화하거나 옵티머스 및 nvidia 드라이버를 제거해야합니다.
Tim G

@TimG 좋은 지적, 나는 내 게시물을 약간 명확히했다. 감사!
벤 N

@BenN 대단한 답변이지만 명확히 할 요점이 있습니다. Windows 호스트에서 직접 시도해 보셨습니까? 매뉴얼은 이것이 Linux 호스트 ( virtualbox.org/manual/ch09.html#pcipassthrough ) 에서만 사용할 수 있으며 Windows 호스트에서 작동하는 행운을 얻지 못했다고 말합니다.
Baris Demiray

@BarisDemiray 올바르게 기억하면 명령을 시도 할 때 오류가보고되지 않았지만 VM이 장치를 사용할 수 있는지 테스트 한 것으로는 생각하지 않습니다. 하지만 오래 전에는 죄송합니다.
벤 N

@BenN 님, 답장을 보내 주셔서 감사합니다. 그것은 내가 시도했을 때 정확히 일어난 일입니다. 명령 줄에는 오류가 없지만 VM에는 그래픽 카드가 없습니다.
Baris Demiray
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.