मिनीफ्लोट: Difference between revisions
No edit summary |
No edit summary |
||
Line 28: | Line 28: | ||
{| class="wikitable" style="text-align: center" | {| class="wikitable" style="text-align: center" | ||
|+ | |+एक उदाहरण 8-बिट मिनीफ्लोट का लेआउट (1.4.3.−2) | ||
! width=12.5% | | ! width=12.5% | संकेत | ||
! width=50% colspan="4" | | ! width=50% colspan="4" | प्रतिपादक | ||
! width=37.5% colspan="3" | | ! width=37.5% colspan="3" | महत्व | ||
|- | |- | ||
| style="background: #d5ffff" | 0 | | style="background: #d5ffff" | 0 |
Revision as of 23:00, 18 July 2023
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 जीपीयू ने 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 इस स्थितियोंमें, यह मानते हुए कि आईईईई के अनुसार दो विशेष घातांक मानों का उपयोग किया जाता है।
(एस, ई, एम, बी) नोटेशन को फ़्लोटिंग-पॉइंट अंकगणित # फ़्लोटिंग-पॉइंट संख्याओं की रेंज | (बी, पी, एल, यू) प्रारूप में परिवर्तित किया जा सकता है (2, M + 1, B + 1, 2S - B) (घातांक के आईईईई उपयोग के साथ)।
उदाहरण
संकेत | प्रतिपादक | महत्व | |||||
---|---|---|---|---|---|---|---|
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
इस उदाहरण में, 1 साइन बिट, 4 एक्सपोनेंट बिट्स और 3 महत्वपूर्ण बिट्स (संक्षेप में, 1.4.3.−2 मिनीफ्लोट) के साथ 1 बाइट (8 बिट) में मिनीफ्लोट का उपयोग अभिन्न मूल्यों का प्रतिनिधित्व करने के लिए किया जाता है। सभी आईईईई 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 होना चाहिए, x का मान x = 3 होना चाहिए। इसलिए, पूर्वाग्रह -2 होना चाहिए; अर्थात्, संख्यात्मक घातांक प्राप्त करने के लिए प्रत्येक संग्रहीत घातांक को -2 से कम करना होगा या 2 से बढ़ाना होगा।
मानों की तालिका
यह फ़्लोट को आईईईई फ़्लोट के समान मानते समय पूर्वाग्रह 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)-मिनीफ़्लोट्स को जोड़ने को दर्शाता है। यह फ़्लोटिंग-पॉइंट प्रणाली आईईईई 754 के नियमों का बिल्कुल पालन करता है। ऑपरेंड के रूप में NaN सदैव NaN परिणाम उत्पन्न करता है। Inf − Inf और (−Inf) + Inf का परिणाम NaN (हरित क्षेत्र) भी होता है। Inf को बिना किसी परिवर्तन के परिमित मानों द्वारा बढ़ाया और घटाया जा सकता है। परिमित ऑपरेंड वाले योग अनंत परिणाम दे सकते हैं (अर्थात 14.0 + 3.0 = +Inf परिणामस्वरूप सियान क्षेत्र है, −Inf मैजेंटा क्षेत्र है)। परिमित ऑपरेंड की सीमा वक्र x + y = c से भरी होती है, जहां c सदैव प्रतिनिधित्व योग्य फ्लोट मानों में से होता है (धनात्मक और ऋणात्मक परिणामों के लिए क्रमशः नीला और लाल)।
घटाव, गुणा और भाग
अन्य अंकगणितीय संक्रियाओं को इसी तरह चित्रित किया जा सकता है:
एम्बेडेड उपकरणों में
मिनीफ़्लोट्स का उपयोग सामान्यतः एम्बेडेड उपकरणों में भी किया जाता है, विशेष रूप से माइक्रोकंट्रोलर्स पर जहां फ्लोटिंग-पॉइंट को सॉफ़्टवेयर में अनुकरण करने की आवश्यकता होगी। गणना को गति देने के लिए, मंटिसा सामान्यतः बिट्स के बिल्कुल आधे हिस्से पर कब्जा कर लेता है, इसलिए रजिस्टर सीमा स्वचालित रूप से बिना किसी बदलाव के भागों को संबोधित करती है।
यह भी देखें
- निश्चित-बिंदु अंकगणित
- अर्ध-परिशुद्धता फ़्लोटिंग-पॉइंट प्रारूप
- 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 (2005-03-13), "Chapter 32. Taking the Plunge into GPU Computing", in Pharr, Matt (ed.), GPU Gems, ISBN 0-321-33559-7, retrieved 2018-04-05.
- Munafo, Robert (15 May 2016). "Survey of Floating-Point Formats". Retrieved 8 August 2016.
अग्रिम पठन
- ख्रोनोस वल्कन ने 11-बिट फ़्लोटिंग पॉइंट प्रारूप को अहस्ताक्षरित किया
- ख्रोनोस वल्कन ने 10-बिट फ़्लोटिंग पॉइंट प्रारूप को अहस्ताक्षरित किया