2008-09-24 20 views
7

मैं Xbox 360 पर XNA में कुछ अंतर्दृष्टि की तलाश में हूं, मुख्य रूप से यदि यह अपने GPU पर वेक्टर-आधारित फ्लोट गणित चलाने के लिए संभव है?Xbox 360 पर GPU प्रोग्रामिंग

यदि कोई तरीका है, तो क्या आप मुझे सही दिशा में इंगित कर सकते हैं?

उत्तर

6

मैं इस पर एक विशेषज्ञ होने का दावा नहीं करता हूं, लेकिन उम्मीद है कि यह आपको एक सहायक दिशा में इंगित कर सकता है।

क्या यह संभव है? हाँ। आप शायद पहले से ही जानते हैं कि जीपीयू ऐसी गणनाओं पर अच्छा है (इसलिए सवाल) और आप वास्तव में एक्सएनए का उपयोग कर जीपीयू को नियंत्रित कर सकते हैं। चाहे वह आपकी आवश्यकताओं के अनुरूप होगा या नहीं, एक अलग मामला है।

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

ऑनस्क्रीन की संभावित प्रतिपादन वह नहीं है जो आप कर रहे हैं। अब, आपके पास गणित करने के लिए एचएलएसएल में उचित लचीलापन है। सीपीयू को परिणाम प्राप्त करना, हालांकि, यह नहीं बनाया गया कि सिस्टम कैसे डिज़ाइन किया गया था। यह मेरे लिए अस्पष्ट हो रहा है, लेकिन शॉन हरग्रेव्स (एक एक्सएनए देव) more पर one occasion से अधिक है जो GPU (ऑनस्क्रीन के अलावा) से आउटपुट प्राप्त करना गैर-तुच्छ है और इसका प्रदर्शन प्रभाव पड़ता है। डेटा पुनर्प्राप्त करने में GetData को कॉल शामिल है जो cause a pipeline stall होगा।

तो यह किया जा सकता है। एक्सएनए फ्रेमवर्क आपको 360 के लिए शेडर्स लिखने देगा (जो शेडर मॉडल 3.0 और कुछ एक्सटेंशन का समर्थन करता है) और उन परिणामों को प्राप्त करने के लिए संभव है, हालांकि यह आपकी आवश्यकताओं के लिए पर्याप्त कुशल नहीं हो सकता है।

2

जैसा ऊपर बताया गया था - एक्सबॉक्स 360 किसी भी एचएलएसएल गणना के लिए पूरी तरह से सक्षम है और विशेष रूप से, यह वेरटेक्स और पिक्सेल शेडर मॉडल 3 निर्देशों को संभाल सकता है और प्लेटफ़ॉर्म के लिए विशिष्ट निर्देशों का एक उन्नत सेट है।

चूंकि एचएलएसएल वास्तव में वेक्टर आधारित है, आपके पास आवश्यक सभी टूल्स हैं - डॉट, क्रॉस, वेक्टर ऑपरेशंस और मैट्रिक्स गणनाएं। यदि आप जीपीयू को गणना भेजना चाहते हैं और सीपीयू पर परिणामों को संपादित/उपयोग करना चाहते हैं तो आप बनावट पर लिख सकते हैं और फिर इसे सीपीयू पक्ष पर ला सकते हैं और इसे डीकोड कर सकते हैं - इसे कणों या भौतिक इंटरैक्शन (जैसे पानी) के लिए उपयोग करना कुछ हैं अवसरों के दौरान जब आप ऐसा करना चाहते हैं।

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^