DirectX 12 या तो ग्राफिक्स ("डायरेक्ट" कहा जाता है) के लिए कमांड कतार को उजागर करता है, कार्यों की गणना या कॉपी करता है। प्रदान की गई कार्यक्षमता के संदर्भ में, प्रत्येक एक निम्नलिखित में से एक सुपर-सेट है। विनिर्देश कहा गया है कि आदेश कतारों समवर्ती डिवाइस के द्वारा निष्पादित किया जा सकता। हालांकि, एपीआई किसी भी तरह से कमांड कतार की संख्या को सीमित नहीं करता है (कम से कम मुझे कोई सीमा नहीं है)।
जाहिर है, विभिन्न विक्रेताओं यह बहुत अलग संभाल:
- इंटेल एक हालिया प्रस्तुति (स्लाइड 23) में बताता है कि वर्तमान में उनके GPU समानांतर में ग्राफिक्स और कम्प्यूट को संभालने में सक्षम नहीं हैं और कॉपी इंजन में एक कमजोर प्रवाह है। वे कई ग्राफिक्स / कम्प्यूट कतारों के उपयोग के खिलाफ सलाह देते हैं।
- एएमडी मेंटल और वर्तमान जीन कंसोल के साथ शुरू होने वाली कतारों / "अतुल्यकालिक रंगों" के उपयोग का विज्ञापन करने के लिए एएमडी ने बहुत पहले शुरू किया था। कुछ डेवलपर्स ( उदाहरण ) भी हैं जो समानांतर में गणना और ग्राफिक्स कार्यों को निष्पादित करके महत्वपूर्ण प्रदर्शन लाभ की पुष्टि करते हैं।
- एनवीडिया के बारे में हाल ही में कुछ उपद्रव हुआ है जो हार्डवेयर में अतुल्यकालिक छायादार का समर्थन नहीं करता है: अलग-अलग ग्राफिक्स और कंप्यूट कतार का उपयोग करके एक बार चीजों को धीमा करने के लिए लगता है जो चालक अनुकरण का संकेत देता है। दूसरी ओर, समानांतर कॉपी ऑपरेशन को बहुत लंबे समय से CUDA द्वारा समर्थित किया गया है, जो यह स्पष्ट करता है कि DMA इंजन स्वतंत्र रूप से काम कर सकता है।
क्या रनटाइम पर निर्णय लेने का कोई तरीका है यदि एक के बजाय कई कमांडक्यूएल के लिए कमांडलिस्ट को प्रतिबद्ध करना सार्थक है? (यह देखते हुए कि पूर्व के मामले में इंजीनियरिंग-ओवरहेड शामिल नहीं है)
हालांकि मैं आसानी से देख सकता हूं कि यह गणना / ग्राफिक्स संचालन के समानांतर मेमोरी ऑपरेशन करने के लिए कैसे उपयोगी है, यह मुझे समानांतर में कई कंप्यूट और ग्राफिक्स प्रक्रियाओं को चलाने के लिए अनावश्यक रूप से जटिल बनाता है (जब तक कि कोई बड़ा पूर्ण लाभ नहीं है।)। यह मेरे लिए भी स्पष्ट नहीं है, कि इससे किसी भी तरह से बेहतर प्रदर्शन कैसे हो सकता है; पैथोलॉजिकल मामलों को छोड़कर जहां कई छोटे अनुक्रमिक कार्य पर्याप्त जीपीयू लोड उत्पन्न करने में सक्षम नहीं हैं।