2010-01-18 15 views
11

जबकि में व्यवहार, जहाँ तक मुझे याद है के रूप में, आईईईई 754 को संभालने के लिए एक फ्लश-टू-जीरो मोड के बारे में कुछ भी नहीं denormalized numbers तेजी से, कुछ आर्किटेक्चर इस मोड (जैसे http://docs.sun.com/source/806-3568/ncg_lib.html) प्रदान करते हैं कहते हैं।फ्लश-टू-जीरो फ्लोटिंग प्वाइंट अंकगणित

इस तकनीकी दस्तावेज के विशेष मामले में, denormalized संख्याओं का मानक हैंडलिंग डिफ़ॉल्ट है, और फ्लश-टू-शून्य स्पष्ट रूप से सक्रिय किया जाना है। डिफ़ॉल्ट मोड में, सॉफ़्टवेयर में denormalized संख्याओं को भी संभाला जाता है, जो धीमा है।

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

इस संदर्भ में, मेरे सवाल दोहरा है: आर्किटेक्चर की पेशकश

  1. एम्बेडेड आर्किटेक्चर के बीच

    , कर रहे हैं वहाँ केवल फ्लश-टू-जीरो? उन्हें शायद "आईईईई 754" के रूप में विज्ञापन करने का अधिकार नहीं है, लेकिन करीब आईईईई 754-शैली फ्लोटिंग-पॉइंट ऑपरेशंस की पेशकश कर सकते हैं।

  2. आर्किटेक्चर है कि दोनों की पेशकश, एक एम्बेडेड संदर्भ में के लिए, नहीं है फ्लश-टू-जीरो इन के लिए प्रतिक्रिया समय अधिक पूर्वानुमान (एक आम बाधा बनाने के लिए, प्रणाली से सक्रिय होने की संभावना अंत: स्थापित प्रणाली)?

अंतराल गणित है कि मैं फ्लोटिंग प्वाइंट मूल्यों के लिए उपयोग में फ्लश-टू-जीरो हैंडलिंग मेरे सवाल और मैं यह करने के लिए है या नहीं है, अगर मैं जानता हूँ कि मैं यह करना है काफी सरल है।

+0

अच्छा सवाल, अच्छी तरह से कहा गया। मैं एम्बेडेड सिस्टम पर कोई विशेषज्ञ नहीं हूं, लेकिन मुझे संदेह है कि कोई स्पष्ट जवाब नहीं है। यह पूरी तरह से आपके विशेष अंत उपयोगकर्ता पर्यावरण पर निर्भर करेगा। – GManNickG

उत्तर

7

दोनों प्रश्नों के लिए हाँ। ऐसे प्लेटफॉर्म हैं जो केवल फ्लश-टू-शून्य का समर्थन करते हैं, और ऐसे कई प्लेटफ़ॉर्म हैं जहां फ़्लश-टू-शून्य डिफ़ॉल्ट है।

आपको यह भी पता होना चाहिए कि कई एम्बेडेड और डीएसपी प्लेटफ़ॉर्म "डेनॉर्मल्स अरे ज़ीरो" मोड का उपयोग करते हैं, जो फ्लोटिंग-पॉइंट सेमेन्टिक्स में एक और झुर्रियां है।


संपादित बनाम DAZ एफटीजेड की अधिक विवरण:

एफटीजेड में, जब एक ऑपरेशन सामान्य गणित के तहत एक denormal परिणाम उपज होता है, एक शून्य के बजाय दिया जाता है। ध्यान दें कि कुछ कार्यान्वयन हमेशा सकारात्मक शून्य तक फ्लश करते हैं, जबकि अन्य सकारात्मक या नकारात्मक शून्य तक पहुंच सकते हैं। यह शायद सबसे अच्छा है कि किसी भी व्यवहार पर निर्भर न हो।

डीएजेड में, जब एक ऑपरेशन में इनपुट एक असामान्य है, तो शून्य को इसकी जगह में प्रतिस्थापित किया जाता है। फिर, इस बारे में कोई सामान्य गारंटी नहीं है कि शून्य को प्रतिस्थापित किया जाएगा।

इन तरीकों का समर्थन करने वाले कुछ कार्यान्वयन उन्हें स्वतंत्र रूप से सेट करने की अनुमति देते हैं (और कुछ केवल दो में से एक का समर्थन करते हैं), इसलिए आपके लिए मॉडल को स्वतंत्र रूप से एक साथ मोड में सक्षम करने के लिए आवश्यक हो सकता है।

ध्यान दें कि कुछ कार्यान्वयन इन दो तरीकों को "फ्लश टू ज़ीरो" में जोड़ते हैं। उदाहरण के लिए एआरएम वीएफपी "शून्य से फ्लश" मोड एफटीजेड और डीएजेड दोनों है।

+0

आज मैंने अंतराल अंकगणित को लागू किया है जिसमें एक बार एफटीजेड, डीएजेड (+0 या समान-चिह्न शून्य तक फ्लशिंग) और आईईईई 754 सबनोर्मल्स की सभी संभावनाएं शामिल हैं। हमारे किसी भी प्रतिगमन परीक्षण में पिछले, आईईईई 754-केवल अंकगणित की तुलना में कोई अंतर नहीं दिखाया गया है। इसलिए संभवतः उपयोगकर्ताओं को इसके विकल्प के साथ परेशान करने की आवश्यकता नहीं होगी, नए मोड को सभी को खुश करना चाहिए। यह एक बहुत ही अच्छी बात है। एक बार फिर धन्यवाद! –

+0

बहुत बढ़िया, मदद करने में खुश। –

+0

फ्लोटिंग पॉइंट गणित करने की व्यावहारिकता क्या होगी ताकि किसी भी मंथिसा बिट्स जो छोटे सामान्यीकृत मूल्य से छोटे मानों का प्रतिनिधित्व कर सकें, बंद हो जाएंगे? मुझे लगता है कि denormalized मूल्यों से निपटने से सस्ता हो सकता है, क्योंकि सभी फ्लोटिंग-पॉइंट नंबरों का एक ही प्रतिनिधित्व होगा। केवल 'अंतिम सफाई' चरण को बदलना होगा। – supercat

2

एआरएम कॉर्टेक्स कोर में शून्य विकल्प के लिए फ्लश है, यह देखना मुश्किल है कि आप इसे कैसे अनदेखा कर सकते हैं। फिर फिर, एक मंच से व्यापार सलाह मत लें। अपने ग्राहकों से बात करो।

+0

मौजूदा उपयोगकर्ता बहुत अच्छे हैं, वे सैने प्लेटफ़ॉर्म का उपयोग करते हैं, फ़्लोटिंग-पॉइंट समस्याओं को समझते हैं और वे गोल करने वाली त्रुटियों को अधिक अनुमानित बनाने के लिए अपने कंपाइलर द्वारा 'fmadd' की मूक पीढ़ी को निष्क्रिय करने की लंबाई तक जाते हैं। यह उन संभावित उपयोगकर्ताओं को है जिनमें मुझे रूचि है। आपकी प्रतिक्रिया के लिए धन्यवाद। –

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