ग्राफिक्स प्रोसेसर स्विच करने के लिए ओएस एक्स कैसे तय करता है?


9

मैं अपने शुरुआती 2011 15 "मैकबुक प्रो का उपयोग सूरज के नीचे लगभग सब कुछ के लिए करता हूं - मैं अक्सर मॉनिटर करता हूं कि कौन सा जीपीयू gfxCardStatus का उपयोग करके सक्रिय है । मैंने कुछ idiosyncrasies में देखा है कि कैसे ओएस एक्स का फैसला होता है जब ग्राफिक्स प्रोसेसर स्विच करना होता है:

  • MOST एप्लिकेशन जिन्हें X11 की आवश्यकता होती है, वे ऑटो-स्विचिंग को ट्रिगर करेंगे, लेकिन सभी नहीं
  • ऐसा लगता है कि प्रत्येक एप्लिकेशन को जावा को ऑटो-स्विचिंग की आवश्यकता होगी, हालांकि मैंने गैर-जीयूआई ऐप के साथ इसका परीक्षण नहीं किया है।
  • कुछ ऐप्स (जैसे कि मैथेमेटिका या XCode) जिन्हें COULD के लिए उच्च-प्रदर्शन वाले GPU की आवश्यकता होती है, वे सीधे असतत कार्ड को गति प्रदान करेंगे, भले ही केवल एक तुच्छ कार्य के लिए निकाल दिया गया हो (डायनेमिक स्विचिंग इन-ऐप कूल, ऑफ़ टॉपिक होगा)
  • कई विरासत ऐप (सिल्वरलाइट) जिनके पास मेरे असतत कार्ड की मांग करने वाला कोई व्यवसाय नहीं है, यह इसे फिर से मजबूर करेगा
  • अंत में, कुछ ऐप (जीआईएमपी, विशेष रूप से) जो निश्चित रूप से असतत जीपीयू से लाभ उठा सकते हैं, वास्तव में इसके लिए नहीं पूछते हैं।

क्या ऐप्पल दस्तावेज़ कार्ड को स्विच करने के लिए इसे कैसे चुनता है? यदि मौजूद है तो क्या ऐप असतत कार्ड के लिए ओएस-स्तर का अनुरोध कर सकता है?


Apple डेवलपर दस्तावेज़ मदद कर सकते हैं: developer.apple.com/metal
खुरर्ट विलियम्स

जवाबों:


5

उच्च स्तर पर, यह एक स्वचालित ट्रांसमिशन की तरह है - जब आप गैस को धीरे से दबाते हैं, तो थ्रोटल बढ़ता है लेकिन जब आप एक्सीलेटर पेडल पर स्टंप करते हैं तो इंजन यांत्रिक लाभ को बढ़ाने के लिए ट्रांसमिशन को डाउनशूट करता है।

आप महत्वपूर्ण काम के साथ एपीआई को मारकर शक्तिशाली जीपीयू पर स्विच करने को प्रभावित कर सकते हैं और "लोड" को गैर-एकीकृत जीपीयू में भेजने की उम्मीद कर सकते हैं।

एपीआई पर दस्तावेज़ सभी Xcode में हैं (और ऑनलाइन भी हैं, लेकिन मैं दस्तावेज़ के लिए शिकार करने के लिए Xcode पर खोज का उपयोग करना पसंद करता हूं)।

मैं इसके साथ शुरू करूंगा:

वे लिंक मैक प्रो को कवर करते हैं और "ओपनसीएल का उपयोग करते समय आपको क्या पता होना चाहिए" अनुभाग में एक उपयोगी नोट है जिसमें डब्ल्यूडब्ल्यूडीसी 2013 सत्र 508: ओपनसीएल के साथ काम करना वर्णन करता है कि मैक पोर्टेबल में दो जीपीयू के बीच स्विच कैसे करें बिजली के विचारों का उपयोग करके।


दिलचस्प लग रहा है। जब मैं अपने मैक पर हूँ तो मैं Xcode डॉक्स की जाँच करूँगा।
एजेंटरोडकिल

तो स्पष्ट होने के लिए - यह पूरी तरह से एप्लिकेशन के डेवलपर पर निर्भर है कि वह तय करे कि क्या ऐप को असतत या एकीकृत ग्राफिक्स का उपयोग करना चाहिए? OS यह कॉल स्वयं नहीं करता है?
एजेंटरोडकिल

@agentroadkill मैं इसे विपरीत कहूंगा - डेवलपर ओएस से पूछ सकता है कि अब क्या हो रहा है और चीजों को प्रभावित कर सकता है, लेकिन ओएस कई परस्पर विरोधी आदानों के आधार पर काम का समय तय कर रहा है। आखिरकार, आपके पास लगातार दर्जनों एप्लिकेशन मशीन जीपीयू कॉल हो सकते हैं।
bmike

ठीक है, ओएस अंततः कॉल करता है, लेकिन प्रति लिंक किए गए लेख के अनुसार: DeviceSelectCL shows how to identify the offline GPU that is not connected to a display, and then use the CL device corresponding to this GPU.इसलिए देवता उस GPU पर काम को आगे बढ़ाने का विकल्प चुन सकता है, ओएस तय करेगा कि क्या इसकी अनुमति है और वह मध्यस्थता करता है, लेकिन ऐप वहां पर अपने काम को आगे बढ़ा सकता है।
एजेंटरोडकिल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.