मिनीफ्लोट
| Floating-point formats |
|---|
| IEEE 754 |
|
| Other |
| Computer architecture bit widths |
|---|
| Bit |
| Application |
| Binary floating-point precision |
| Decimal floating-point precision |
कम्प्यूटिंग में, मिनीफ़्लोट्स तैरनेवाला स्थल मान होते हैं जिन्हें बहुत कम अंश ्स के साथ दर्शाया जाता है। अनुमानतः, वे सामान्य प्रयोजन संख्यात्मक गणनाओं के लिए उपयुक्त नहीं हैं। इनका उपयोग विशेष प्रयोजनों के लिए किया जाता है, अधिकतर कंप्यूटर ग्राफ़िक्स में, जहां पुनरावृत्तियाँ छोटी होती हैं और सटीकता में सौंदर्य संबंधी प्रभाव होते हैं।[1] यंत्र अधिगम भी bfloat16 जैसे समान प्रारूपों का उपयोग करती है। इसके अतिरिक्त, चल बिन्दु संख्या | फ़्लोटिंग-पॉइंट अंकगणित और आईईईई फ़्लोटिंग-पॉइंट मानक संख्याओं के गुणों और संरचनाओं को प्रदर्शित करने के लिए उन्हें कंप्यूटर-विज्ञान पाठ्यक्रमों में एक शैक्षणिक उपकरण के रूप में अक्सर सामने लाया जाता है।
16 बिट्स वाले मिनीफ़्लोट्स आधे परिशुद्धता | आधे-परिशुद्धता संख्या (एकल परिशुद्धता और दोहरी परिशुद्धता के विपरीत) हैं। 8 बिट या उससे भी कम बिट वाले मिनीफ्लोट भी हैं।
मिनीफ़्लोट्स को आईईईई फ़्लोटिंग-पॉइंट मानक मानक के सिद्धांतों का पालन करके डिज़ाइन किया जा सकता है। इस मामले में उन्हें असामान्य संख्या के बीच सीमा के लिए (स्पष्ट रूप से लिखित नहीं) नियमों का पालन करना होगा और अनंत और NaN के लिए विशेष पैटर्न रखना होगा। सामान्यीकृत संख्याओं को घातांक पूर्वाग्रह के साथ संग्रहीत किया जाता है। मानक का नया संशोधन, आईईईई 754-2008, अर्ध-परिशुद्धता फ़्लोटिंग-पॉइंट प्रारूप|16-बिट बाइनरी मिनीफ़्लोट्स है।
Radeon R300 और Radeon R420 GPU ने 7 बिट्स एक्सपोनेंट और 16 बिट्स (+1 अंतर्निहित) मंटिसा के साथ fp24 फ्लोटिंग-पॉइंट प्रारूप का उपयोग किया।[2] Direct3D 9.0 में पूर्ण परिशुद्धता एक मालिकाना 24-बिट फ़्लोटिंग-पॉइंट प्रारूप है। माइक्रोसॉफ्ट के डी3डी9 (शेडर मॉडल 2.0) ग्राफिक्स एपीआई ने शुरू में एफपी24 (एटीआई के आर300 चिप के रूप में) और एफपी32 (एनवीडिया के एनवी30 चिप के रूप में) को पूर्ण परिशुद्धता के रूप में समर्थन दिया, साथ ही ग्राफिक्स द्वारा किए गए वर्टेक्स और पिक्सेल शेडर गणना के लिए एफपी16 को आंशिक परिशुद्धता के रूप में समर्थन दिया। हार्डवेयर.
संकेतन
एक मिनीफ्लोट का वर्णन आमतौर पर चार संख्याओं के टुपल का उपयोग करके किया जाता है, (एस, ई, एम, बी):
- S साइन फ़ील्ड की लंबाई है। यह आमतौर पर या तो 0 या 1 होता है।
- ई घातांक क्षेत्र की लंबाई है।
- एम मंटिसा (महत्वपूर्ण) फ़ील्ड की लंबाई है।
- बी प्रतिपादक पूर्वाग्रह है.
इसलिए, (एस, ई, एम, बी) द्वारा दर्शाया गया एक मिनीफ्लोट प्रारूप है, S + E + M बिट्स लंबे.
कंप्यूटर ग्राफ़िक्स में मिनीफ़्लोट्स का उपयोग कभी-कभी केवल अभिन्न मानों को दर्शाने के लिए किया जाता है। यदि एक ही समय में असामान्य मान मौजूद हों, तो न्यूनतम असामान्य संख्या 1 होनी चाहिए। पूर्वाग्रह मान होगा B = E - M - 1 इस मामले में, यह मानते हुए कि IEEE के अनुसार दो विशेष घातांक मानों का उपयोग किया जाता है।
(एस, ई, एम, बी) नोटेशन को फ़्लोटिंग-पॉइंट अंकगणित # फ़्लोटिंग-पॉइंट संख्याओं की रेंज | (बी, पी, एल, यू) प्रारूप में परिवर्तित किया जा सकता है (2, M + 1, B + 1, 2S - B) (घातांक के आईईईई उपयोग के साथ)।
उदाहरण
| sign | exponent | significand | |||||
|---|---|---|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
इस उदाहरण में, 1 साइन बिट, 4 एक्सपोनेंट बिट्स और 3 महत्वपूर्ण बिट्स (संक्षेप में, 1.4.3.−2 मिनीफ्लोट) के साथ 1 बाइट (8 बिट) में एक मिनीफ्लोट का उपयोग अभिन्न मूल्यों का प्रतिनिधित्व करने के लिए किया जाता है। सभी IEEE 754 सिद्धांत मान्य होने चाहिए. एकमात्र मुक्त मान घातांक पूर्वाग्रह है, जिसे हम पूर्णांकों के लिए -2 के रूप में परिभाषित करते हैं। अज्ञात घातांक को क्षण x के लिए बुलाया जाता है।
भिन्न आधार में संख्याओं को इस प्रकार चिह्नित किया जाता है...base, उदाहरण के लिए, 1012 = 5. बिट पैटर्न में उनके भागों को देखने के लिए स्थान होते हैं।
शून्य का निरूपण
0 0000 000 = 0
असामान्य संख्याएँ
महत्व को 0 से बढ़ाया गया है।
0 0000 001 = 0.0012 × 2x = 0.125 × 2x = 1 (न्यूनतम असामान्य संख्या) ... 0 0000 111 = 0.1112 × 2x = 0.875 × 2x = 7 (सबसे बड़ी असामान्य संख्या)
सामान्यीकृत संख्याएँ
महत्व को 1 से बढ़ाया गया है:
0 0001 000 = 1.0002 × 2x = 1 × 2x = 8 (न्यूनतम सामान्यीकृत संख्या) 0 0001 001 = 1.0012 × 2x = 1.125 × 2x=9 ... 0 0010 000 = 1,0002 × 2x+1 = 1 × 2x+1 = 16 0 0010 001 = 1.0012 × 2x+1 = 1.125 × 2x+1 = 18 ... 0 1110 000 = 10002 × 2x+13 = 1,000 × 2x+13 = 65536 0 1110 001 = 1.0012 × 2x+13 = 1.125 × 2x+13 = 73728 ... 0 1110 110 = 1.1102 × 2x+13 = 1750 × 2x+13 = 114688 0 1110 111 = 1.1112 × 2x+13 = 1.875 × 2x+13 = 122880 (सबसे बड़ी सामान्यीकृत संख्या)
अनंत
0 1111 000 = +अनंत 1 1111 000 = −अनंत
यदि घातांक क्षेत्र का विशेष रूप से उपचार नहीं किया गया, तो मूल्य होगा
0 1111 000 = 1.0002 × 2x+14 = 217=131072
कोई संख्या नहीं
x 1111 yyy = NaN (यदि yyy ≠ 000)
आईईईई 754 के सबसे बड़े घातांक के विशेष प्रबंधन के बिना, सबसे बड़ा संभव मूल्य होगा
0 1111 111 = 1.1112 × 2x+14 = 1.875 × 217=245760
पूर्वाग्रह का मान
यदि न्यूनतम असामान्य मान (ऊपर दूसरी पंक्ति) 1 होना चाहिए[citation needed], x का मान x = 3 होना चाहिए। इसलिए, पूर्वाग्रह -2 होना चाहिए[citation needed]; अर्थात्, संख्यात्मक घातांक प्राप्त करने के लिए प्रत्येक संग्रहीत घातांक को -2 से कम करना होगा या 2 से बढ़ाना होगा।
मानों की तालिका
यह फ़्लोट को IEEE फ़्लोट के समान मानते समय पूर्वाग्रह 1 के साथ सभी संभावित मानों का एक चार्ट है।
| ... 000 | ... 001 | ... 010 | ... 011 | ... 100 | ... 101 | ... 110 | ... 111 | |
|---|---|---|---|---|---|---|---|---|
| 0 0000 ... | 0 | 0.125 | 0.25 | 0.375 | 0.5 | 0.625 | 0.75 | 0.875 |
| 0 0001 ... | 1 | 1.125 | 1.25 | 1.375 | 1.5 | 1.625 | 1.75 | 1.875 |
| 0 0010 ... | 2 | 2.25 | 2.5 | 2.75 | 3 | 3.25 | 3.5 | 3.75 |
| 0 0011 ... | 4 | 4.5 | 5 | 5.5 | 6 | 6.5 | 7 | 7.5 |
| 0 0100 ... | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 0 0101 ... | 16 | 18 | 20 | 22 | 24 | 26 | 28 | 30 |
| 0 0110 ... | 32 | 36 | 40 | 44 | 48 | 52 | 56 | 60 |
| 0 0111 ... | 64 | 72 | 80 | 88 | 96 | 104 | 112 | 120 |
| 0 1000 ... | 128 | 144 | 160 | 176 | 192 | 208 | 224 | 240 |
| 0 1001 ... | 256 | 288 | 320 | 352 | 384 | 416 | 448 | 480 |
| 0 1010 ... | 512 | 576 | 640 | 704 | 768 | 832 | 896 | 960 |
| 0 1011 ... | 1024 | 1152 | 1280 | 1408 | 1536 | 1664 | 1792 | 1920 |
| 0 1100 ... | 2048 | 2304 | 2560 | 2816 | 3072 | 3328 | 3584 | 3840 |
| 0 1101 ... | 4096 | 4608 | 5120 | 5632 | 6144 | 6656 | 7168 | 7680 |
| 0 1110 ... | 8192 | 9216 | 10240 | 11264 | 12288 | 13312 | 14336 | 15360 |
| 0 1111 ... | Inf | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
| 1 0000 ... | -0 | -0.125 | -0.25 | -0.375 | -0.5 | -0.625 | -0.75 | -0.875 |
| 1 0001 ... | -1 | -1.125 | -1.25 | -1.375 | -1.5 | -1.625 | -1.75 | -1.875 |
| 1 0010 ... | -2 | -2.25 | -2.5 | -2.75 | -3 | -3.25 | -3.5 | -3.75 |
| 1 0011 ... | -4 | -4.5 | -5 | -5.5 | -6 | -6.5 | -7 | -7.5 |
| 1 0100 ... | −8 | −9 | −10 | −11 | −12 | −13 | −14 | −15 |
| 1 0101 ... | −16 | −18 | −20 | −22 | −24 | −26 | −28 | −30 |
| 1 0110 ... | −32 | −36 | −40 | −44 | −48 | −52 | −56 | −60 |
| 1 0111 ... | −64 | −72 | −80 | −88 | −96 | −104 | −112 | −120 |
| 1 1000 ... | −128 | −144 | −160 | −176 | −192 | −208 | −224 | −240 |
| 1 1001 ... | −256 | −288 | −320 | −352 | −384 | −416 | −448 | −480 |
| 1 1010 ... | −512 | −576 | −640 | −704 | −768 | −832 | −896 | −960 |
| 1 1011 ... | −1024 | −1152 | −1280 | −1408 | −1536 | −1664 | −1792 | −1920 |
| 1 1100 ... | −2048 | −2304 | −2560 | −2816 | −3072 | −3328 | −3584 | −3840 |
| 1 1101 ... | −4096 | −4608 | −5120 | −5632 | −6144 | −6656 | −7168 | −7680 |
| 1 1110 ... | −8192 | −9216 | −10240 | −11264 | −12288 | −13312 | −14336 | −15360 |
| 1 1111 ... | −Inf | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
इस उदाहरण के गुण
1 बाइट में इंटीग्रल मिनीफ़्लोट्स में −128 से +127 की सीमा वाले दो-पूरक पूर्णांक की तुलना में ±122880 की अधिक रेंज होती है। बड़ी रेंज की भरपाई खराब परिशुद्धता से होती है, क्योंकि केवल 4 मंटिसा बिट्स होते हैं, जो एक दशमलव स्थान से थोड़ा अधिक के बराबर होते हैं। उनके पास ±65504 रेंज के साथ आधे-सटीक मिनीफ्लोट्स की तुलना में अधिक रेंज है, जिसकी भरपाई अंशों की कमी और खराब परिशुद्धता से भी होती है।
केवल 242 अलग-अलग मान हैं (यदि +0 और -0 को अलग माना जाता है), क्योंकि 14 बिट पैटर्न NaN का प्रतिनिधित्व करते हैं।
0 और 16 के बीच के मानों का बिट पैटर्न मिनीफ्लोट या दो-पूरक पूर्णांक के समान होता है। भिन्न मान वाला पहला पैटर्न 00010001 है, जो मिनीफ्लोट के रूप में 18 और दो-पूरक पूर्णांक के रूप में 17 है।
यह संयोग नकारात्मक मानों के साथ बिल्कुल भी नहीं होता है, क्योंकि यह मिनीफ्लोट एक हस्ताक्षरित-परिमाण प्रारूप है।
दाईं ओर (ऊर्ध्वाधर) वास्तविक रेखा फ़्लोटिंग-पॉइंट मानों के अलग-अलग घनत्व को स्पष्ट रूप से दिखाती है - एक संपत्ति जो किसी भी फ़्लोटिंग-पॉइंट सिस्टम के लिए सामान्य है। इस अलग-अलग घनत्व के परिणामस्वरूप घातीय फ़ंक्शन के समान एक वक्र बनता है।
हालाँकि वक्र सहज दिखाई दे सकता है, लेकिन ऐसा नहीं है। ग्राफ़ में वास्तव में अलग-अलग बिंदु होते हैं, और ये बिंदु अलग-अलग ढलान वाले रेखा खंडों पर स्थित होते हैं। एक्सपोनेंट बिट्स का मूल्य मंटिसा बिट्स की पूर्ण सटीकता निर्धारित करता है, और यह सटीकता है जो प्रत्येक रैखिक खंड की ढलान निर्धारित करती है।
अंकगणित
जोड़
ग्राफ़िक 6 बिट्स के साथ और भी छोटे (1.3.2.3)-मिनीफ़्लोट्स को जोड़ने को दर्शाता है। यह फ़्लोटिंग-पॉइंट सिस्टम IEEE 754 के नियमों का बिल्कुल पालन करता है। ऑपरेंड के रूप में NaN हमेशा NaN परिणाम उत्पन्न करता है। Inf − Inf और (−Inf) + Inf का परिणाम NaN (हरित क्षेत्र) भी होता है। Inf को बिना किसी परिवर्तन के परिमित मानों द्वारा बढ़ाया और घटाया जा सकता है। परिमित ऑपरेंड वाले योग अनंत परिणाम दे सकते हैं (अर्थात 14.0 + 3.0 = +Inf परिणामस्वरूप सियान क्षेत्र है, −Inf मैजेंटा क्षेत्र है)। परिमित ऑपरेंड की सीमा वक्र x + y = c से भरी होती है, जहां c हमेशा प्रतिनिधित्व योग्य फ्लोट मानों में से एक होता है (सकारात्मक और नकारात्मक परिणामों के लिए क्रमशः नीला और लाल)।
घटाव, गुणा और भाग
अन्य अंकगणितीय संक्रियाओं को इसी तरह चित्रित किया जा सकता है:
- MinifloatSubtraction 1 3 2 3 72.png
घटाव
- MinifloatMultiplication 1 3 2 3 72.png
गुणा
- MinifloatDivision 1 3 2 3 72.png
विभाजन
एम्बेडेड उपकरणों में
मिनीफ़्लोट्स का उपयोग आमतौर पर एम्बेडेड उपकरणों में भी किया जाता है,[citation needed] विशेष रूप से माइक्रोकंट्रोलर्स पर जहां फ्लोटिंग-पॉइंट को सॉफ़्टवेयर में अनुकरण करने की आवश्यकता होगी। गणना को गति देने के लिए, मंटिसा आम तौर पर बिट्स के बिल्कुल आधे हिस्से पर कब्जा कर लेता है, इसलिए रजिस्टर सीमा स्वचालित रूप से बिना किसी बदलाव के भागों को संबोधित करती है।
यह भी देखें
- निश्चित-बिंदु अंकगणित
- अर्ध-परिशुद्धता फ़्लोटिंग-पॉइंट प्रारूप
- bfloat16 फ़्लोटिंग-पॉइंट प्रारूप
- जी.711#ए-कानून|जी.711 ए-कानून
संदर्भ
- ↑ Mocerino, Luca; Calimera, Andrea (24 November 2021). "AxP: A HW-SW Co-Design Pipeline for Energy-Efficient Approximated ConvNets via Associative Matching". Applied Sciences. 11 (23): 11164. doi:10.3390/app112311164.
- ↑ Buck, Ian (13 March 2005), "Chapter 32. Taking the Plunge into GPU Computing", in Pharr, Matt (ed.), GPU Gems, ISBN 0-321-33559-7, retrieved 5 April 2018.
- Munafo, Robert (15 May 2016). "Survey of Floating-Point Formats". Retrieved 8 August 2016.
अग्रिम पठन
- Khronos Vulkan unsigned 11-bit floating point format
- Khronos Vulkan unsigned 10-bit floating point format