VirtualBox'tan NVidia GPU mu kullanıyorsunuz?


29

VirtualBox misafirinin NVidia grafiklerini kullanmasını nasıl sağlarım?

Ana bilgisayar kurulumu:

  • Windows 7 x64

  • NVidia Optimus

  • In NVIDIA Kontrol Paneli , açıkça seçilen Yüksek performanslı NVIDIA işlemci için:

     C:\Program Files\oracle\VirtualBox\VirtualBox.exe
     C:\Program Files\Oracle\VirtualBox\VBoxSVC.exe
    
  • VirtualBox çalışırken, NVidia yazılımı bunu NVidia GPU kullanan uygulama olarak listelemez. Bu nedenle, VirtualBox'ın Nvidia GPU'yu gerçekten kullanmadığını varsayıyorum.

Misafir:

  • Windows 7 x64 (ana bilgisayarla aynı)

  • Yüklü Konuk Eklemeleri

  • VirtualBox ayarlarında 3B hızlandırma etkin: Ekran / Video / 3B Hızlandırmayı Etkinleştir

  • Ne Gergedan , video adaptörü olarak OpenGL özellikli uygulama raporları:

    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
    

    Bana göre sanal makine ana bilgisayarın 3D donanım hızlandırmasını kullanıyor, ancak ne yazık ki Intel.


2
VM'ler doğrudan donanım erişimine sahip değildir - sanal bir GPU alırlar. . . ilgili soru: superuser.com/questions/395245/…
ernie

6
@ernie VirtualBox, konuklara ana bilgisayarın GPU'sunun OpenGL API'sine doğrudan erişim sağlayabilir. Bildiğim kadarıyla makinemde çalışıyor. NVidia GPU yerine Intel GPU kullanıyor. VirtualBox kılavuzundan alıntı : "Bu özellik sayesinde, sanal makinenizdeki bir uygulama OpenGL veya Direct3D 8/9 programlama arayüzleri aracılığıyla 3D özellikleri kullanıyorsa, bunları yazılımda taklit etmek yerine (yavaş olacaktır), VirtualBox ana makinenizin 3D donanımı. "
feklee

soru başlık yanıltıcıdır @feklee: Sen nVidia GPU kullanmak istediğiniz için Vbox. 'Kimden' de mümkündür ancak farklı anlamına gelir: Donanım-Geçiş, yani. ana bilgisayarın GPU'suna doğrudan VBox içinden erişin.
larkey


"Sanal Kutu geçidi videosu" hakkında bilgi edinin.
e-info128

Yanıtlar:


20

Birkaç yıl geçti ama "sanal kutu 3d çoklu GPU" için google zaman bu yazı oldukça yüksek göründüğü için cevaplamak istedim farkındayım. Geçen zaman, işler çok daha basit ve daha iyi hale geldi.

Bu iş parçacığına rastlayan insanlar muhtemelen bugünlerde oldukça yaygın olan iki GPU'ya sahip bir dizüstü bilgisayar veya PC'ye sahipler - özellikle oyun dizüstü bilgisayarlarında. Yerleşik Intel GPU, pencereleri ve genel uygulamaları oluşturmak için kullanılır, ancak GPU 3D işlevini kullanan uygulamalar bunu daha yüksek performanslı Nvidia GPU aracılığıyla yapmalıdır.

Bugün, bazı platformlar arası geliştirme yapmak için dizüstü bilgisayarımda bir Ubuntu VM oluşturuyordum ve konuk VM'nin son derece yavaş olması dışında her şey iyiydi ve CPU, bellek, disk düşük kullanım gösterdiğinden bunun için bir açıklama yoktu.

Soruna neden olan video performansı olduğunu anlamak uzun sürmedi. Uygulamaları başlatmak, pencereleri en üst düzeye çıkarmak / en aza indirmek - 2019'da aldığımız ancak makul bir hızda çalışmak için 3D hızlandırmaya ihtiyaç duyduğumuz her şey - GPU 0 kullanıyordu.

Bunu belirlemek kolaydı çünkü Windows 10 artık "görev yöneticisi" ni ve ardından "performans" sekmesini kullanarak GPU kullanımını görebiliyor. Ve pencereleri hareket ettirirken, ana bilgisayardaki GPU aracılığıyla yapıldığını, ekranı kapladı, küçültüldüğünü görebiliyordum. Ana bilgisayardaki GPU, entegre Intel HD GPU ve GPU1 olan NVidia GTX-1050ti'yi kullanmak istedim.

Etrafta arama yaptıktan sonra hangi GPU'nun kullanılacağını belirleyebileceğiniz hiçbir yer bulamadım. Ancak bu iş parçacığı ve diğerleri, bu tür kurulumlarda NVidia kontrol paneline, daha sonra "3d ayarları yönet" ve "Program Ayarları" sekmesine gitmeniz gerektiğini hatırlattı.

Listede "Virtualbox" ı bulamayacaksınız. Ancak "Ekle" düğmesine basabilir ve virtualbox.exe'yi ekleyebilirsiniz. Sanal kutu kurulumunuzun bulunduğu sürücüyü / yolu ayrıntılı olarak incelemeniz gerekebilir. Ekledikten sonra, aşağıdaki ayarlarda 2. öğenin doğru olduğundan emin olun. "Bu program için tercih edilen grafik işlemcisini seçin", kullanmak istediğiniz GPU'ya ayarlanmıştır, bu durumda benim durumumda "Yüksek performanslı NVIDIA işlemci" .

Otomatik olarak ayarlamayın ve kesinlikle tümleşik olarak ayarlamayın. Tabii ki, 3D hızlandırma kutusu işaretli olarak ayarlanmış VM ayarlarına ve ana bilgisayarda yüklü konuk eklentilerine ihtiyacınız var. Ancak, ana video 3B ayarlarını yukarıda açıklandığı gibi ayarladıktan sonra, konuk VM'yi kapatın, sanal kutudan çıkın ve sonra sanal kutuyu ve VM'yi yeniden başlatın.

Görev yöneticisi | performacne kullanıyorsanız ve "sanal kutu yöneticisi" sürecine bakarsanız ve konuk VM'nin kullanıcı arayüzünde gezinirken GPU'nun ne kullandığını izlerseniz, şimdi daha iyi GPU'yu kullanarak bunu görmelisiniz. Aşağıda yapıştırılan resme bakın.

Tüm bunlar, konuk VM'de oyun oynayabileceğini beklemiyor. 3D ivme geçişi hala o kadar da değil. Ancak konuklarınızda modern bir işletim sistemi ve kullanıcı arayüzü olmasını ve kabul edilebilir bir deneyime sahip olmasını bekleyebilirsiniz. DirectX9 tabanlı her şey gibi konuk VM'de eski oyunlar oynayabilirsiniz. Ne yazık ki, GPU'yu sanallaştırma yeteneği geliştikçe, 3d oyun teknolojisi daha hızlı gelişiyor.

Ekran görüntüsü


2
Bugün VirtualBox ve VMWare'in 3D hızlandırma yetenekleri hakkında biraz araştırma yaptım ve Ocak 2019'dan itibaren konuk VM'deki GPU hızlandırması sizin için önemliyse, VMWare'i seçmek en iyi seçimdir - özellikle konuk işletim sisteminiz pencereler ise. VirtualBox desteği GPU hızlandırma yetenekleri biraz daha az gelişmiştir, çünkü konuk VM'ye maksimum 128 MB video RAM'i verebilirsiniz ve VMWare'de 2 GB'a kadar video belleğine tahsis edilmesine izin verir. VMWare DirectX 10'u ve Virtualbox DirectX9'u destekler. Dediğim gibi, directx 9 oldukça tarihli.
Thomas Carlisle

1
"" Bu program için tercih edilen grafik işlemci seçin "kullanmak istediğiniz GPU olarak ayarlanmış" Yukarıdaki seçeneği görmüyorum. Görüyorum Ambinetn, Ansiyotropik Filtreleme ... vb ama "tercih edilen grapics işlemci seçin" hiçbir şey
moondra

Ben henüz Optimus üzerinde çalışma alamadım rağmen PCI geçidi gerekir, yine de bazı kesmek ile mümkün olduğunu düşünüyorum
kensai

Virtualbox için nvidea kartını etkinleştirmeye zorlamak için benzer bir hile yapmayı başardım, ancak Virtualbox tarafından sağlanan 3 mevcut grafik denetleyicisinden hiçbiri Neon KDE konuk işletim sistemimle düzgün bir şekilde uyandı. Büyük UI hataları var, bu yüzden benim durumumda nvidea kullanmak bir opion değil. @ThomasCarlisle'nin teklifi sayesinde VMware ile oynamaya çalışacağım.
Arkemlar

17

Konuklara tam GPU erişimi vermek muhtemelen mümkün değildir. Sanal makinenin ana makinenizi kullanırken GPU'nuza doğrudan erişimi olsaydı, Bad Things TM etkili bir şekilde farklı iki bilgisayar arasında bellek paylaşmak bir şey değildir; işaretçiler ve adresler ve aralarındaki fark çok farklıdır. (Tüketicilerin kullanabileceği kartlar aynı anda iki bilgisayara bakım yapılmasını desteklemez.)

Ancak deneyebileceğiniz bazı şeyler var. İlk olarak, NVidia Kontrol Panelinde tercih ettiğiniz grafik işlemciyi iyi ayarlayın ( 3D Ayarları3D ayarlarını yönetTercih edilen grafik işlemcisi ). Bu, VirtualBox'ın OpenGL için NVidia kartı ile gitmesini sağlayabilir.

Bu yardımcı olmazsa, Konuk Eklentilerini misafire Güvenli Modda yüklemeyi deneyin .

Son olarak, Linux ana bilgisayarlarında , GPU'yu sanal makineye geçirmeyi deneyebilirsiniz, ancak bu sadece PCI kartlar için işe yarayacaktır ve sizinkinin PCI olup olmadığını bulamadım ve buna rağmen, GPU'yu ana bilgisayardan koparmak veya başka sorunlara neden olmak. Önce iyi kartın PCI adresini (veri yolu, aygıt ve işlev) bulun. VM'nizin yonga setini ICH9 olarak ayarlayın; denediğimde bu hemen bir şey kırmadı. Ardından kartı takmak için VBoxManage yardımcı programını kullanın:

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

Your VM NameUygun şekilde değiştirin . BBana bilgisayardaki GPU'nuzun otobüs numarasıdır; DDcihazdır; Ffonksiyonudur. Ardından, @konukta olacağı PCI yuvasına girin. Örneğin:

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

Genel olarak, GPU geçişinin bir Linux ana bilgisayarında olması daha olasıdır. Bkz . GPU düz geçişli bir oyun makinesi nasıl kurulur .


2
Bir VM'ye bir VMU iliştirmenin bir "Kötü Şey" olduğu varsayımı yanlıştır; çıplak metal hipervizörlerde oyun sanal makineleri oluşturmak için bunu yapmak isteyen büyük bir insan topluluğu var. Biri bunu Linux'ta yapmak isterse, PCIe GPU'nun kara listeye alınması gerekir, böylece çekirdek sadece yonga seti grafiklerine gider; bu "paylaşılan bellek" sorunlarını önler. Windows'un kartı almasını önlemek, muhtemelen bu soru için çözülmesi en zor sorundur ve muhtemelen cihazı devre dışı bırakmayı veya optimus ve nvidia sürücüsünü kaldırmayı gerektirir.
Tim G

@TimG İyi bir nokta, yazımı biraz açıkladım. Teşekkürler!
Ben N

@BenN Harika bir yanıt, ancak açıklığa kavuşturulacak bir noktaya ihtiyacım var. Bunu bir Windows ana bilgisayarında denediniz mi? El kitabı, bunun yalnızca Linux ana bilgisayarlarında ( virtualbox.org/manual/ch09.html#pcipassthrough ) kullanılabilir olduğunu ve kendimi bir Windows ana bilgisayarıyla çalışmakta hiç şansım olmadığını söylüyor.
Barış Demiray

@BarisDemiray Doğru hatırlıyorsam, komut denediğimde herhangi bir hata bildirmedi, ancak VM'nin cihazı kullanabildiğini test ettiğimi sanmıyorum. Uzun zaman önceydi, üzgünüm.
Ben N

Merhaba @ BenN, cevap vermek için zaman ayırdığınız için çok teşekkürler. Denediğimde tam olarak ne oldu, komut satırında hata yok, VM'de grafik kartı yok.
Barış Demiray
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.