2013-08-12 5 views
10

प्रश्न पूछा गया है before थोड़ा अलग रूप में, लेकिन मैं यह जानना चाहता हूं कि एंड्रॉइड डेवलपर्स क्या सोचते हैं कि Google के फैसले के पीछे वास्तव में क्या है और Google का आधिकारिक उत्तर क्या नहीं है।ओपनसीएल की बजाय Google रेंडरस्क्रिप्ट क्यों बंद कर रहा है इसका वास्तविक कारण क्या था?

ओपनसीएल एक खुला मानक है और विभिन्न उपकरणों, जैसे सीपीयू, डेस्कटॉप जीपीयू, एआरएम प्रोसेसर, एफपीजीए और डीएसपी पर काम करता है। यह हमें डेवलपर्स को उच्च प्रदर्शन सॉफ्टवेयर और पुस्तकालय बनाने की सुविधा देता है, जो सभी उपकरणों पर काम करता है।

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

Google का आधिकारिक उत्तर ओपनसीएल पर वास्तव में गलत था, जिसने ओपनसीएल-समुदाय में कई लोगों को निराश किया और तर्कसंगत रूप से कुछ भारी प्रतिक्रियाएं दीं। तो कृपया रेंडरस्क्रिप्ट और ओपनसीएल दोनों के बारे में तथ्यात्मक रहें - मैं नहीं चाहता कि यह प्रश्न बंद हो क्योंकि बकवास बताया जा रहा है।

+3

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

+1

मैं भी निराश हूं - लेकिन इस स्थिति के आपके मूल्यांकन के साथ सहमत हूं। मैं एसओ पर यहां विषय फैनिंग से बचना होगा। – Ani

उत्तर

10

सबसे पहले, हम टिम मरे द्वारा this प्रश्न के उत्तर से निपटने दें।

  • वह कहता है कि OpenCL/CUDA निष्पादन मॉडल रजिस्टर मायने रखता है, स्थानीय स्मृति और अन्य ऐसी जानकारी की तरह उनके निष्पादन मॉडल के विभिन्न कारकों को ध्यान में बंधा हुआ है। हालांकि यह आंशिक रूप से सच हो सकता है, ओपनसीएल निष्पादन मॉडल विशेष रूप से एक चतुर डेवलपर को इन मतभेदों को इस तरह से सार करने के लिए विकसित किया गया था जो अभी भी अधिकतम प्रदर्शन प्राप्त कर सकता है।

  • उदाहरण के लिए: माइक्रो आर्किटेक्चर में मतभेद से निपटने के लिए एक कर्नेल डेवलपर ऐसी जानकारी पता करने की जरूरत चाहिए, OpenCL क्रम एपीआई clGetDeviceInfo जो जानकारी की अधिकता को उजागर करता है प्रदान करता है (ध्यान दें कि एक्सटेंशन जानकारी भी यहाँ पुनः प्राप्त किया जा सकता है)।

  • वेक्टर (सिम-शैली) निष्पादन का विवरण भी बचाया नहीं गया है। अधिकांश ओपनसीएल कार्यान्वयन गाइड state कि कर्नेल को स्पष्ट वेक्टरेशन के बिना लिखा जाना चाहिए - कार्यान्वयन निकटवर्ती कार्य-वस्तुओं के निष्पादन को सदिश बनाएगा। यह सीयूडीए के बाद भी मॉडल है (जो अब वेक्टर प्रकार भी प्रदान नहीं करता है, लेकिन यह एक अलग मामला है)।

  • कार्य-वस्तुओं के बिंदु पर आ रहा है; constrain एक विशेष आकार के लिए एक वर्क-आयाम वास्तव में संभव है। हालांकि अभ्यास में, reqd_work_group_size विशेषता का कभी भी उपयोग नहीं किया जाता है जब तक कि यह कुछ ज्ञात आयाम न हो (गणना के लिए, प्रदर्शन नहीं)।

  • इसके अलावा, clEnqueueNDRangeKernel के लिए OpenCL प्रलेखन स्पष्ट रूप से कहा गया है कि

"local_work_size भी एक शून्य मूल्य जिस स्थिति में OpenCL कार्यान्वयन का निर्धारण करेगा कैसे होने के लिए वैश्विक काम को तोड़ने हो सकता है -इटम्स उपयुक्त कार्य-समूह उदाहरणों में। "

यह Intel और एएमडी कार्यान्वयन के लिए सच है।

अब हम here पर एंड्रॉइड बग पेज पर स्टीफन हाइन्स द्वारा उठाए गए बिंदुओं पर जाएं।

  • "ओपनसीएल एंड्रॉइड डेवलपर्स की ज़रूरतों को पूरा नहीं करता है" - मुझे विश्वास नहीं है कि किसी भी तरह का चुनाव था। मुझे नहीं लगता कि स्टीफन को इस असंगत जानकारी कहां मिलती है। मैं इस पर बहस नहीं कर सकता।
  • "और प्लेटफॉर्म विखंडन में सक्रिय रूप से योगदान देता है" - डेवलपर Google really going to argue पर हैं कि एनडीके में हार्डवेयर-विशिष्ट नहीं हैं? जैसे कि एनडीके मुखपृष्ठ पर warning listed पर्याप्त नहीं थे।
  • "ओपनसीएल एंड्रॉइड की ज़रूरतों/लक्ष्यों को फिट नहीं करता है, इसलिए हम इसके लिए समर्थन के साथ Google डिवाइस नहीं भेजेंगे"। यदि यह सच था, तो उन एंड्रॉइड डिवाइस ओपनसीएल समर्थन के साथ भेज नहीं पाएंगे। मैं इसे here पर विन्सेंट से बेहतर नहीं बता सकता।

"न गूगल लेकिन हार्डवेयर विक्रेताओं RenderScript के लिए ड्राइवरों बनाया कंप्यूट एआरएम OpenCL के शीर्ष पर आरएससी-संकलक बनाने का विचार किया, क्योंकि वे पहले से ही OpenCL के लिए चुना है

See।। - हार्डवेयर विक्रेताओं ने ड्राइवर नहीं बनाया क्योंकि Google या ख्रोनोस समूह ने उनसे भी पूछा, उन्होंने उन्हें बनाया क्योंकि वे चाहते थे। ओपनजीएल और वेबसीएल कुछ कारण हैं, लेकिन नए डेस्कटॉप पर प्रतियोगिता भी हैं। "

अंत में, एक डेवलपर हैं जो, मैं कोई कारण नहीं क्यों OpenCL किसी भी अधिक Android पारिस्थितिकी तंत्र के लिए विघटनकारी है देख सकते हैं या कारण है कि यह होना चाहिए (एक GeForce 2 पर) रजिस्टर समेलक के दिनों से GPGPU के साथ काम किया जा रहा है this से अधिक उत्तर दिया गया है कि

ऐप्पल ओपनसीएल पर ट्रेडमार्क रखता है। Google ऐप्पल के साथ प्रतिस्पर्धा करता है। शायद यह वास्तव में इतना आसान है।

हम एंड्रॉयड (see here) के साथ OpenCL पर काम किया और खुश यह देखने के लिए इंटेल, कल्पना, और अन्य चिप निर्माताओं के काम करने के लिए तत्पर धन्यवाद आगे बढ़ कर रहे हैं। Google जल्द ही घूम जाएगा।

शायद यह वास्तव में इतना आसान है।

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