2012-12-05 17 views
6

दो भाग सवाल:ओपन-OpenCL इंटरॉप स्थानांतरण बार + बनावट

मैं एक स्कूल परियोजना एक वाहन GPGPU के साथ प्रयोग करने के रूप में जीवन के खेल का उपयोग करने पर काम कर रहा हूँ। मैं रीयलटाइम विज़ुअलाइज़ेशन के लिए ओपनसीएल और ओपनजीएल का उपयोग कर रहा हूं और लक्ष्य यह है कि यह चीज़ जितनी संभव हो सके उतनी बड़ी और तेज हो। प्रोफाइलिंग पर मुझे लगता है कि फ्रेम समय पर सीएल अधिग्रहण और जीएल बफर जारी करना है, और समय लागत बफर के वास्तविक आकार के लिए सीधे आनुपातिक है।

1) क्या यह सामान्य है? यह क्यों होना चाहिए? मेरी समझ में सबसे अच्छी बात यह है कि बफर कभी भी डिवाइस मेमोरी नहीं छोड़ता है, और सीएल अधिग्रहण/रिलीज एक म्यूटेक्स की तरह कार्य करता है। क्या OpenCL प्रत्येक बाइट को अलग-अलग या कुछ अनलॉक करता है?

इस के आसपास पाने के लिए मैं 24-बिट आरजीबीए रंग मोड (ओपनजीएल के पसंदीदा रंग मोड के रूप में इसे समझता हूं?) से 8-बिट आरजीबी रंग में संकुचित हो गया है। इसके परिणामस्वरूप एक बड़ी गति हुई है, लेकिन मेरे कर्नेल को ट्यून करने के बाद, स्थानांतरण समय फिर से हावी हो रहे हैं।

स्थानांतरण समय को पूरी तरह खत्म करने के तरीके पर किसी भी विचार की अनुपस्थिति में (ओपनसीएल से जीएलएसएल तक मेरे कर्नेल को पोर्ट करने से छोटा, जो परियोजना के मूल दायरे से अधिक होगा), अब मुझे लगता है कि मेरी सबसे अच्छी शर्त लिखना है बिटमैप के लिए (जैसा कि मैं वर्तमान में उपयोग कर रहा हूं 8-बिट पिक्समैप के विपरीत) और फिर उस बिटमैप का उपयोग एक रंग सूचकांक के साथ एक ट्रैक्टर बनाने के लिए करें।

2) क्या मैं सीधे बिटमैप का उपयोग करके एक ट्रैक्टर बना सकता हूं? मैंने ग्लोबिमैप का उपयोग सहायक बफर को आकर्षित करने के लिए किया है, और उसके बाद इस बफर का उपयोग अपने ट्रैक्टर को बनाने के लिए किया है, लेकिन यदि कोई उपलब्ध है तो मैं अधिक प्रत्यक्ष मार्ग का उपयोग करना पसंद करूंगा।

उत्तर

2

सीएल/जीएल इंटरऑप अधिग्रहण और रिलीज कॉल के पीछे डिज़ाइन का उद्देश्य उनके लिए स्वामित्व स्थानान्तरण होना था। हालांकि, कई शुरुआती कार्यान्वयन में ये सीएल से जीएल और पीछे की छवियों की प्रतियां कर रहे थे।

जब तक आप ओपनसीएल 1.1 में सिंक ऑब्जेक्ट एक्सटेंशन का उपयोग नहीं करते हैं, तो आपको रिलीज़ करने से पहले क्लिनिश करना होगा और आपको हासिल करने से पहले ग्लिफिनिश करना होगा; आप यहां बिताए गए बहुत सारे समय देखें क्योंकि इन कतारों को जारी रखने से पहले सभी कतारबद्ध कार्य खत्म हो जाएंगे। कुछ प्लेटफ़ॉर्म आप clFinish के बजाय clFlush का उपयोग कर सकते हैं; अपने विक्रेता से ओपनसीएल दस्तावेज की जांच करें।

नवीनतम या अधिक हाल के हार्डवेयर पर नवीनतम एनवीआईडीआईए और एएमडी ड्राइवरों के साथ, मैं अधिग्रहण और एचडी वीडियो आकार की छवियों के लिए बहुत जल्दी कॉल जारी कर रहा हूं।

+0

उत्कृष्ट। मैं 1.0 (हार्डवेयर सीमाएं) का उपयोग कर रहा हूं और मुझे यह जानकर खुशी हो रही है कि इन मुद्दों का समाधान हो गया है। मुझे लगता है कि मुझे वास्तव में क्या चाहिए एक नया वीडियो कार्ड है। –