VirtualBox से NVidia GPU का उपयोग करें?


29

मैं VirtualBox अतिथि NVidia ग्राफिक्स का उपयोग कैसे करूँ?

होस्ट सेटअप:

  • विंडोज 7 x64

  • एनवीडिया ऑप्टिमस

  • में NVIDIA नियंत्रण कक्ष , मैं स्पष्ट रूप से चयनित उच्च प्रदर्शन NVIDIA प्रोसेसर के लिए:

     C:\Program Files\oracle\VirtualBox\VirtualBox.exe
     C:\Program Files\Oracle\VirtualBox\VBoxSVC.exe
    
  • जब VirtualBox चल रहा होता है, तब NVidia सॉफ्टवेयर इसे NVidia GPU का उपयोग करने वाले एप्लिकेशन के रूप में सूचीबद्ध नहीं करता है। इसलिए, मुझे लगता है कि वर्चुअलबॉक्स वास्तव में एनवीडिया जीपीयू का उपयोग नहीं करता है।

अतिथि:

  • विंडोज 7 x64 (यानी मेजबान के समान)

  • अतिथि परिवर्धन स्थापित

  • VirtualBox सेटिंग्स में 3 डी त्वरण सक्षम: प्रदर्शन / वीडियो / 3 डी त्वरण सक्षम करें

  • क्या गैंडा , वीडियो एडेप्टर के रूप में एक 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
    

    मेरे लिए ऐसा लगता है कि वर्चुअल मशीन मेजबान के 3 डी हार्डवेयर त्वरण का उपयोग करती है, लेकिन दुर्भाग्य से इंटेल एक।


2
VMs को सीधे हार्डवेयर एक्सेस नहीं मिलता है - उन्हें वर्चुअल GPU मिलता है। । । संबंधित प्रश्न: superuser.com/questions/395245/…
ernie

6
@ हार्नी वर्चुअलबॉक्स मेहमानों को होस्ट के जीपीएल के ओपनजीएल तक सीधे पहुंच प्रदान कर सकता है। जहाँ तक मैं बता सकता हूँ कि मेरी मशीन पर काम करता है। केवल वर्चुअलबॉक्स NVidia GPU के बजाय Intel GPU का उपयोग कर रहा है। वर्चुअलबॉक्स मैनुअल से उद्धरण : "इस सुविधा के साथ, यदि आपकी वर्चुअल मशीन के अंदर कोई एप्लिकेशन OpenGL या Direct3D 8/9 प्रोग्रामिंग इंटरफेस के माध्यम से 3D विशेषताओं का उपयोग करता है, तो उन्हें सॉफ़्टवेयर में अनुकरण करने के बजाय (जो धीमा होगा), VirtualBox का उपयोग करने का प्रयास करेगा आपके मेजबान का 3 डी हार्डवेयर। "
फेकली

@feklee प्रश्न का शीर्षक भ्रामक है: आप VBox के लिए nVidia GPU का उपयोग करना चाहते हैं । 'से' भी संभव है लेकिन इसका अर्थ sth अलग है: हार्डवेयर-पस्चथ्रर, यानी। होस्ट के GPU को VBox के भीतर से सीधे प्राप्त करें।
larkey


"Virtualbox passthrough वीडियो" के बारे में जानें।
ई-इंफो128

जवाबों:


20

मुझे एहसास है कि कुछ साल बीत चुके हैं लेकिन जवाब देना चाहता हूं क्योंकि यह पोस्ट "वर्चुअलबॉक्स 3 डी मल्टीपल जीपीयू" के लिए Google द्वारा बहुत अधिक दिखाई देती है। जो समय बीत चुका है, उसमें चीजें बहुत सरल और बेहतर हो गई हैं।

जो लोग इस थ्रेड पर ठोकर खाते हैं, वे यहां लैंड करेंगे, क्योंकि उनके पास एक लैपटॉप या पीसी है, जिसमें दो जीपीयू हैं, जो इन दिनों काफी आम है - खासकर गेमिंग लैपटॉप पर। ऑनबोर्ड इंटेल जीपीयू का उपयोग विंडोज़ और सामान्य अनुप्रयोगों को रेंडर करने के लिए किया जाता है, लेकिन GPU 3 डी कार्यक्षमता का उपयोग करने वाले अनुप्रयोगों को उच्च प्रदर्शन करने वाले एनवीडिया जीपीयू के माध्यम से करना चाहिए।

आज, मैं कुछ क्रॉस-प्लेटफ़ॉर्म विकास करने के लिए अपने लैपटॉप पर एक उबंटू वीएम का निर्माण कर रहा था, और अतिथि वीएम को छोड़कर सब कुछ ठीक था, और इसके लिए कोई स्पष्टीकरण नहीं था क्योंकि सीपीयू, मेमोरी, डिस्क सभी कम उपयोग दिखा रहे थे।

यह पता लगाने में देर नहीं लगी कि यह वीडियो प्रदर्शन था जो समस्या पैदा कर रहा था। अनुप्रयोगों को लॉन्च करना, विंडोज़ को अधिकतम करना / कम करना - जो कुछ भी हम 2019 में प्रदान करते हैं लेकिन किसी भी उचित गति से काम करने के लिए 3 डी त्वरण की आवश्यकता होती है - GPU 0 का उपयोग कर रहा था।

यह निर्धारित करना आसान था क्योंकि विंडोज 10 में अब "टास्क मैनेजर" का उपयोग करके GPU उपयोग देखने की क्षमता है, फिर "प्रदर्शन" टैब। और मैं देख सकता था कि मैंने विंडोज़ चलाए, अधिकतम किया, कम से कम किया, जो कि होस्ट पर GPU के माध्यम से किया जा रहा था। होस्ट पर मौजूद GPU एकीकृत Intel HD GPU है, और मैं NVidia GTX-1050ti का उपयोग करना चाहता था, जो GPU1 था।

चारों ओर खोज करने के बाद मुझे वास्तव में कहीं भी नहीं मिला, जहां आप निर्दिष्ट कर सकें कि कौन से जीपीयू का उपयोग करना है। लेकिन इस थ्रेड, और कुछ अन्य लोगों ने मुझे याद दिलाया कि इस तरह के सेटअप पर आपको एनवीडिया कंट्रोल पैनल में जाना है, फिर "3 डी सेटिंग्स", फिर "प्रोग्राम सेटिंग्स" टैब।

आपको सूची में "वर्चुअलबॉक्स" नहीं मिलेगा। लेकिन आप "जोड़ें" बटन दबा सकते हैं, और virtualbox.exe जोड़ सकते हैं। आपको उस ड्राइव / पथ को ड्रिल करना पड़ सकता है जहां आपका वर्चुअलबॉक्स इंस्टॉलेशन है। एक बार जब आप इसे जोड़ लेते हैं, तो नीचे दी गई सेटिंग्स में यह सुनिश्चित करें कि आइटम 2. "इस प्रोग्राम के लिए पसंदीदा ग्राफिक्स प्रोसेसर का चयन करें" जीपीयू पर सेट है जिसे आप इसका उपयोग करना चाहते हैं, जो मेरे मामले में "HIgh- प्रदर्शन NVIDIA प्रोसेसर" था ।

इसे ऑटो पर सेट न करें, और निश्चित रूप से इसे एकीकृत करने के लिए सेट न करें। बेशक, आपको 3 डी एक्सेलेरेशन बॉक्स के साथ वीएम सेटिंग्स सेट की जरूरत है, और आपको मेजबान पर स्थापित अतिथि अतिरिक्त की आवश्यकता है। लेकिन एक बार जब आपने होस्ट वीडियो 3 डी सेटिंग्स को ऊपर वर्णित किया है, तो अतिथि वीएम को बंद करें, वर्चुअल बॉक्स से बाहर निकलें, और फिर वर्चुअलबॉक्स और वीएम को फिर से लॉन्च करें।

यदि आप कार्य प्रबंधक का उपयोग करते हैं। Performacne और "वर्चुअलबॉक्स प्रबंधक" प्रक्रिया को देखें और देखें कि गेस्ट वीएम के यूआई को नेविगेट करते समय GPU का क्या उपयोग होता है, आपको इसे अब बेहतर GPU का उपयोग करके देखना चाहिए। नीचे दी गई छवि देखें।

कहा कि सभी, एक अतिथि VM में खेल चलाने में सक्षम होने की उम्मीद नहीं है। 3 डी त्वरण पास अभी भी काफी दूर तक साथ नहीं है। लेकिन आप अपने अतिथि में एक आधुनिक ओएस और यूआई की उम्मीद कर सकते हैं, और एक स्वीकार्य अनुभव हो सकता है। एक अतिथि VM में पुराने गेम खेलने में सक्षम होगा, जैसे कि डायरेक्टएक्स 9 पर आधारित कुछ भी। दुर्भाग्य से, जीपीयू को आभासी रूप देने की क्षमता के रूप में, 3 डी गेमिंग तकनीक जल्दी विकसित होती है।

स्क्रीनशॉट


2
मैंने VirtualBox और VMWare के 3D त्वरण क्षमताओं पर आज थोड़ा शोध किया, और जनवरी 2019 तक, यदि अतिथि VM में GPU त्वरण आपके लिए महत्वपूर्ण है तो VMWare चुनना आपका सबसे अच्छा दांव है - खासकर यदि आपका अतिथि OS विंडोज़ है। वर्चुअलबॉक्स समर्थन GPU त्वरण क्षमता थोड़ा कम विकसित है, क्योंकि आप केवल अतिथि VM को अधिकतम 128MB वीडियो रैम दे सकते हैं, और VMWare में 2GB तक वीडियो मेमोरी को आवंटित करने की अनुमति देता है। VMWare DirectX 10 का समर्थन करता है, और Virtualbox DirectX9 का समर्थन करता है। जैसा कि मैंने पोस्ट में कहा, डायरेक्ट 9 काफी दिनांकित है।
थॉमस कार्लिसल

1
"" इस कार्यक्रम के लिए पसंदीदा ग्राफिक्स प्रोसेसर का चयन करें "जीपीयू पर सेट है जिसे आप इसका उपयोग करना चाहते हैं" मैं उपरोक्त विकल्प नहीं देखता हूं। मैं Ambinetn, Ansiotropic छनन ... आदि लेकिन कुछ भी देखने पर "पसंदीदा grapics प्रोसेसर चुनें"
moondra

आपको पीसीआई passthrough की आवश्यकता है, हालांकि मुझे यह ऑप्टिमस पर अभी तक काम नहीं मिला, फिर भी मुझे लगता है कि कुछ हैक के साथ यह संभव है
kensai

मैंने वर्चुअलबॉक्स के लिए एनवीडिया कार्ड को सक्षम करने के लिए समान चाल चलने में कामयाबी हासिल की लेकिन मेरे नियोन केडीई गेस्ट ओएस के साथ वर्चुअलबॉक्स द्वारा प्रदान किए गए 3 उपलब्ध ग्राफिक्स नियंत्रकों में से कोई भी ठीक से काम नहीं करता है। मुझे बड़े पैमाने पर यूआई ग्लिट्स मिले हैं इसलिए मेरे मामले में एनवीडिया का उपयोग करना एक ओपियन नहीं है। @ThomasCarlisle के प्रस्ताव के लिए धन्यवाद, मैं VMware के साथ खेलने की कोशिश करूंगा।
अरकेमलर

17

अतिथि पूर्ण जीपीयू एक्सेस देना संभव नहीं है। यदि कोई वर्चुअल मशीन आपके GPU तक सीधी पहुंच रखता था, जबकि आपका होस्ट इसका उपयोग कर रहा था, तो बैड थिंग्स टीएम होगा क्योंकि दो प्रभावी रूप से विभिन्न कंप्यूटरों के बीच मेमोरी साझा करना कोई बात नहीं है; संकेत और पते और whatnot उनके बीच बहुत भिन्न होंगे। (कोई भी उपभोक्ता-उपलब्ध कार्ड एक साथ दो कंप्यूटरों की सर्विसिंग का समर्थन नहीं करता है।)

हालाँकि, कुछ चीजें हैं जिन्हें आप आज़मा सकते हैं। सबसे पहले, अपने पसंदीदा ग्राफिक्स प्रोसेसर को एनवीडिया कंट्रोल पैनल ( 3 डी सेटिंग्स3 डी सेटिंग्स प्रबंधित करेंपसंदीदा ग्राफिक्स प्रोसेसर ) में अच्छे वाले पर सेट करें । वह वर्चुअल बॉक्स OpenGL के लिए NVidia कार्ड के साथ जा सकता है।

यदि वह मदद नहीं करता है, तो अतिथि पर अतिथि मोड को सुरक्षित मोड में स्थापित करने का प्रयास करें ।

अंत में, लिनक्स मेजबानों पर , आप वर्चुअल मशीन के माध्यम से GPU को पास करने की कोशिश कर सकते हैं, लेकिन यह केवल PCI कार्ड के लिए काम करेगा और मैं यह पता लगाने में सक्षम नहीं था कि क्या आपका PCI है, और यहां तक ​​कि, आप एक अच्छा मौका पाते हैं GPU को होस्ट से दूर रखने या अन्य समस्याओं के कारण। पहले अच्छे कार्ड के लिए पीसीआई एड्रेस (बस, डिवाइस और फंक्शन) ढूंढें। अपने VM के चिपसेट को ICH9 पर सेट करें; जब मैंने कोशिश की तो यह तुरंत कुछ भी नहीं टूटा। फिर कार्ड संलग्न करने के लिए VBoxManage उपयोगिता का उपयोग करें:

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

Your VM Nameउपयुक्त के रूप में बदलें । BBहोस्ट पर आपके GPU की बस संख्या है; DDडिवाइस है; Fसमारोह है। @पीसीआई स्लॉट दर्ज करने के बाद , यह अतिथि पर होगा। उदाहरण के लिए:

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

सामान्य तौर पर, Linux होस्ट पर GPU passthrough संभव है। देखें कि कैसे GPU passthrough के साथ गेमिंग मशीन सेटअप करें


2
एक वीएम को एक जीपीयू संलग्न करने का आधार "बैड थिंग" गलत है; ऐसे लोगों का एक बड़ा समुदाय है जो नंगे-धातु हाइपरवेयर्स पर गेमिंग वीएम बनाने के लिए इसे करना चाहते हैं। यदि कोई लिनक्स में ऐसा करना चाहता था, तो उसे PCIe GPU को ब्लैकलिस्ट करना होगा, ताकि कर्नेल केवल चिपसेट ग्राफिक्स पर जाए; यह "साझा मेमोरी" समस्याओं को रोकता है। कार्ड को चुनने से विंडोज को रोकना शायद इस सवाल को हल करने के लिए सबसे मुश्किल मुद्दा है, और इसे डिवाइस को अक्षम करने या ऑप्टिमस और एनवीडिया ड्राइवर को अनइंस्टॉल करने की आवश्यकता होगी।
टिम जी

@TimG अच्छा बिंदु, मैंने अपनी पोस्ट को थोड़ा स्पष्ट किया है। धन्यवाद!
बेन एन

@ बीन ग्रेट जवाब, लेकिन मुझे स्पष्ट करने के लिए एक बिंदु की आवश्यकता है। क्या आपने खुद को विंडोज होस्ट पर आजमाया है? मैनुअल का कहना है कि यह केवल लिनक्स होस्ट्स ( virtualbox.org/manual/ch09.html#pcipassthrough ) पर उपलब्ध है और मुझे खुद कोई सौभाग्य नहीं है कि इसे विंडोज होस्ट के साथ काम करना पड़े।
बारिस डेमीराय

@BarisDemiray यदि मुझे सही ढंग से याद है, तो कमांड ने किसी भी त्रुटि की रिपोर्ट नहीं की है जब मैंने यह कोशिश की थी, लेकिन मुझे नहीं लगता कि मैंने परीक्षण किया कि वीएम डिवाइस का उपयोग करने में सक्षम था। यह बहुत समय पहले था, हालांकि, क्षमा करें।
बेन एन

हाय @ बेन, जवाब देने के लिए समय निकालने के लिए बहुत बहुत धन्यवाद। ठीक ऐसा ही हुआ जब मैंने कोशिश की, कमांड लाइन पर कोई त्रुटि नहीं अभी तक वीएम में कोई ग्राफिक्स कार्ड नहीं है।
बारिस डेमराय
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.