जीपीयू हार्डवेयर में डबल परिशुद्धता का समर्थन करना शुरू कर रहे हैं, हालांकि यह निकट भविष्य में एकल परिशुद्धता से बहुत धीमी गति से जारी रहेगा। ऐसी कई प्रकार की तकनीकें हैं जिन्हें वर्षों से विकसित किया गया है ताकि उच्च सटीकता फ्लोटिंग प्वाइंट को संसाधित किया जा सके जो कि किसी भी परिशुद्धता में तेजी से हार्डवेयर समर्थन है, लेकिन ओवरहेड काफी महत्वपूर्ण है। आईआईआरसी, क्रिलिब मैनुअल में इन तकनीकों में से कुछ की एक बहुत अच्छी चर्चा है, त्रुटि विश्लेषण और छद्म कोड (सीआरएलआईबीएम उन्हें एक से अधिक डबल-परिशुद्धता मान के रूप में प्रदर्शित करने के लिए उपयोग करता है, लेकिन एक ही तकनीक का उपयोग एकल के साथ किया जा सकता है)
आप जो करने की कोशिश कर रहे हैं उसके बारे में और जानने के बिना, बेहतर जवाब देना मुश्किल है। कुछ एल्गोरिदम के लिए, गणना के केवल एक छोटे हिस्से की उच्च सटीकता की आवश्यकता होती है; यदि आप इस तरह के मामले में हैं, तो GPU पर सभ्य प्रदर्शन प्राप्त करना आपके लिए संभव हो सकता है, हालांकि कोड आवश्यक रूप से काम करने के लिए बहुत सुंदर या आसान नहीं होगा। यदि आपको अपने एल्गोरिदम में व्यापक रूप से उच्च परिशुद्धता की आवश्यकता है, तो इस समय GPU शायद आपके लिए एक आकर्षक विकल्प नहीं है।
आखिरकार, एचएलएसएल क्यों और सीयूडीए या ओपनसीएल जैसी गणना-आधारित भाषा क्यों नहीं?
स्रोत
2009-09-18 15:39:13
कोड पुनरावृत्त फ्रैक्टल सिस्टम को संसाधित करने के लिए होगा, इसलिए इसे लगातार उच्च परिशुद्धता की आवश्यकता है। मैं एक सीपीयू पर प्रसंस्करण बनाम प्रदर्शन वृद्धि की तलाश में हूं। और जहां तक सीयूडीए और ओपनसीएल, मैं एचएलएसएल एटीएम से ज्यादा परिचित हूं। हालांकि मैं इसे CUDA में करने पर विचार कर रहा हूं। मैंने पहले CUDA में डब किया है, लेकिन मैं नहीं कह सकता कि मैं कहीं भी कुशल हूं। – Mark
यदि आपको लगातार उच्च परिशुद्धता की आवश्यकता है, तो वर्तमान में सीपीयू पर चलने वाले अच्छी तरह लिखित कोड को हरा करना असंभव है। आपका समय शायद सीपीयू पर निष्पादन प्रोफाइलिंग और ट्यूनिंग प्रदर्शन में बेहतर खर्च किया गया है। –
यह नहीं कि GPGPU कोड लिखना अपनी योग्यता पर सार्थक नहीं है, बस आप वास्तव में ऐसा कुछ चुनना चाहते हैं जहां आप हार्डवेयर को ऐसा करने की कोशिश नहीं करेंगे जो इसे डिज़ाइन नहीं किया गया है। –