x87 एफपीयू एक आंतरिक 80-बिट परिशुद्धता मोड का उपयोग करने के लिए उल्लेखनीय है, जो अक्सर कंपेलरों और मशीनों में अप्रत्याशित और अपरिवर्तनीय परिणाम की ओर जाता है। .NET पर पुनर्नवीनीकरण फ्लोटिंग-पॉइंट गणित के लिए In my search, मैंने पाया कि .NET (माइक्रोसॉफ्ट और मोनो) के दोनों बड़े कार्यान्वयन 64-बिट मोड में x87 के बजाय एसएसई निर्देशों को उत्सर्जित करते हैं।क्या एसएसई फ़्लोटिंग-पॉइंट अंकगणितीय पुनरुत्पादित है?
एसएसई (2) 32-बिट फ्लोट्स के लिए सख्ती से 32-बिट रजिस्टरों का उपयोग करता है, और 64-बिट फ्लोट के लिए सख्ती से 64-बिट रजिस्ट्रार का उपयोग करता है। appropriate control word सेट करके डेनॉर्मल्स को वैकल्पिक रूप से शून्य पर फ़्लश किया जा सकता है।
इसलिए ऐसा लगता है कि एसएसई x87 के परिशुद्धता से संबंधित मुद्दों से ग्रस्त नहीं है, और यह कि केवल परिवर्तनीय असामान्य व्यवहार है, जिसे नियंत्रित किया जा सकता है।
पारस्परिक कार्यों (जो x87 के विपरीत एसएसई द्वारा मूल रूप से प्रदान नहीं किया जाता है) के मामले को छोड़कर, मशीनों और कंपाइलरों में एसएसई गारंटी पुनरुत्पादित परिणामों का उपयोग कर रहा है? उदाहरण के लिए, संकलक अनुकूलन, विभिन्न परिणामों में अनुवाद कर सकते हैं? मुझे कुछ विवादित राय मिलीं:
यदि आपके पास एसएसई 2 है, तो इसका इस्तेमाल करें और बाद में खुशी से रहें। एसएसई 2 दोनों 32 बी और 64 बी ऑपरेशंस का समर्थन करता है और इंटरमीडिएट परिणाम ऑपरेटरों के आकार के होते हैं। - योसी Kreinin, http://www.yosefk.com/blog/consistency-how-to-defeat-the-purpose-of-ieee-floating-point.html
...
SSE2 निर्देश (...) पूरी तरह से IEEE754-1985 अनुरूप हैं, और वे बेहतर reproducibility स्थिर राउंडिंग के लिए धन्यवाद की अनुमति ( परिशुद्धता) और अन्य प्लेटफार्मों के साथ पोर्टेबिलिटी। मुलर एट aliis, Handbook of Floating-Point Arithmetic - p.107
तथापि:
इसके अलावा, आप, चल बिन्दु के लिए SSE या SSE2 उपयोग नहीं कर सकते यह भी तहत निर्दिष्ट नियतात्मक होने के लिए है, क्योंकि । - जॉन Watte http://www.gamedev.net/topic/499435-floating-point-determinism/#entry4259411
मुझे पूरा यकीन है कि यदि वेब पर दो विवादित राय हैं तो आपको यहां एक तर्क मिलेगा (और शायद कम से कम एक तीसरी राय भी) – KevinDTimm
@ केविन डीटीएमएम हालांकि यह प्रश्न व्यक्तिपरक नहीं है। एसएसई या तो पुनरुत्पादित है या यह नहीं है। – Asik
"एसएसई या एसएसई 2 [निर्धारित] निर्धारित करने के लिए बहुत कम निर्दिष्ट है"। मैं इन मामलों पर एक विशेषज्ञ होने का दावा नहीं करता हूं, लेकिन यह मुझे बीएस की तरह लगता है। लिंक में अनुवांशिक के लिए लाइब्रेरी फ़ंक्शंस के बारे में बात है और निश्चित रूप से एक प्लेटफार्म पर उन में बग हो सकते हैं और वास्तव में कोई भी नहीं (वास्तव में, संभवतः) किसी भी कंपाइलर के अनुकूलक में हो सकता है, लेकिन यह एसएसई के बारे में कुछ नहीं कहता/एसएसई 2 प्रति से। क्या उसके पास इसका क्या अर्थ है इसका एक उदाहरण है? –