Bfloat16 फ़्लोटिंग-पॉइंट प्रारूप: Difference between revisions
No edit summary |
No edit summary |
||
(6 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
{{Confuse|text = [[अर्ध-परिशुद्धता फ़्लोटिंग-पॉइंट प्रारूप|बाइनरी16]], | {{Confuse|text = [[अर्ध-परिशुद्धता फ़्लोटिंग-पॉइंट प्रारूप|बाइनरी16]], भिन्न 16-बिट फ़्लोटिंग-पॉइंट प्रारूप}} | ||
{{Short description|Floating-point number format used in computer processors}} | {{Short description|Floating-point number format used in computer processors}} | ||
{{Floating-point}} | {{Floating-point}} | ||
Bfloat16 (मस्तिष्क फ़्लोटिंग पॉइंट)<ref>{{cite web |url=https://www.nextplatform.com/2018/05/10/tearing-apart-googles-tpu-3-0-ai-coprocessor/ |title=Tearing Apart Google's TPU 3.0 AI Coprocessor |last=Teich |first=Paul |date=2018-05-10 |website=The Next Platform |access-date=2020-08-11 |quote=Google invented its own internal floating point format called “bfloat” for “brain floating point” (after Google Brain).}}</ref><ref>{{cite web |url=https://cloud.google.com/blog/products/ai-machine-learning/bfloat16-the-secret-to-high-performance-on-cloud-tpus |title=BFloat16: The secret to high performance on Cloud TPUs |last1=Wang |first1=Shibo |last2=Kanwar |first2=Pankaj |date=2019-08-23 |website=Google Cloud |access-date=2020-08-11 |quote=This custom floating point format is called “Brain Floating Point Format,” or “bfloat16” for short. The name flows from “Google Brain”, which is an artificial intelligence research group at Google where the idea for this format was conceived.}}</ref> '''फ़्लोटिंग-पॉइंट प्रारूप''' [[कंप्यूटर नंबर प्रारूप]] है जो [[ स्मृति | | '''Bfloat16''' (मस्तिष्क फ़्लोटिंग पॉइंट)<ref>{{cite web |url=https://www.nextplatform.com/2018/05/10/tearing-apart-googles-tpu-3-0-ai-coprocessor/ |title=Tearing Apart Google's TPU 3.0 AI Coprocessor |last=Teich |first=Paul |date=2018-05-10 |website=The Next Platform |access-date=2020-08-11 |quote=Google invented its own internal floating point format called “bfloat” for “brain floating point” (after Google Brain).}}</ref><ref>{{cite web |url=https://cloud.google.com/blog/products/ai-machine-learning/bfloat16-the-secret-to-high-performance-on-cloud-tpus |title=BFloat16: The secret to high performance on Cloud TPUs |last1=Wang |first1=Shibo |last2=Kanwar |first2=Pankaj |date=2019-08-23 |website=Google Cloud |access-date=2020-08-11 |quote=This custom floating point format is called “Brain Floating Point Format,” or “bfloat16” for short. The name flows from “Google Brain”, which is an artificial intelligence research group at Google where the idea for this format was conceived.}}</ref> '''फ़्लोटिंग-पॉइंट प्रारूप''' [[कंप्यूटर नंबर प्रारूप]] होता है जो [[ स्मृति |कंप्यूटर मेमोरी]] में [[16-बिट]] रखता है, यह [[तैरनेवाला स्थल|फ़्लोटिंग मूलांक]] बिंदु का उपयोग करके संख्यात्मक मानों की विस्तृत गतिशील श्रृंखला का प्रतिनिधित्व करता है। यह प्रारूप [[ हार्डवेयर एक्सिलरेशन |मशीन लर्निंग]] और [[ बुद्धिमान सेंसर |निकट-सेंसर]] कंप्यूटिंग में तेजी लाने के इरादे से 32-बिट आईईईई 754 एकल-परिशुद्धता फ़्लोटिंग-पॉइंट प्रारूप (बाइनरी 32) का छोटा (16-बिट) संस्करण है। इस प्रकार<ref>{{Cite book |doi=10.23919/DATE.2018.8342167|chapter=A transprecision floating-point platform for ultra-low power computing|title=2018 Design, Automation & Test in Europe Conference & Exhibition (DATE)|pages=1051–1056|year=2018|last1=Tagliavini|first1=Giuseppe|last2=Mach|first2=Stefan|last3=Rossi|first3=Davide|last4=Marongiu|first4=Andrea|last5=Benin|first5=Luca|isbn=978-3-9819263-0-9|arxiv=1711.10374|s2cid=5067903}}</ref> यह 8 एक्सपोनेंट बिट्स को बनाए रखते हुए 32-बिट फ्लोटिंग-पॉइंट नंबरों की अनुमानित गतिशील सीमा को संरक्षित करता है, किन्तु बाइनरी32 प्रारूप के 24-बिट [[महत्व]] के अतिरिक्त केवल 8-बिट परिशुद्धता का समर्थन करता है। अतः एकल-परिशुद्धता 32-बिट फ़्लोटिंग-पॉइंट संख्याओं से अधिक, bfloat16 संख्याएँ पूर्णांक गणना के लिए अनुपयुक्त हैं, किन्तु यह उनका इच्छित उपयोग नहीं होता है। इस प्रकार Bfloat16 का उपयोग भंडारण आवश्यकताओं को कम करने और मशीन लर्निंग एल्गोरिदम की गणना गति को बढ़ाने के लिए किया जाता है।<ref name="Why">{{Cite web | title = Intel': Cooper lake Plans: Why is BF16 Important? | author = Dr. Ian Cutress | date = 2020-03-17 | access-date = 2020-05-12 | url = https://www.anandtech.com/show/15631/intels-cooper-lake-plans-the-chip-that-wasnt-meant-to-exist-dies-for-you | quote = The bfloat16 standard is a targeted way of representing numbers that give the range of a full 32-bit number, but in the data size of a 16-bit number, keeping the accuracy close to zero but being a bit more loose with the accuracy near the limits of the standard. The bfloat16 standard has a lot of uses inside machine learning algorithms, by offering better accuracy of values inside the algorithm while affording double the data in any given dataset (or doubling the speed in those calculation sections). }}</ref> | ||
Bfloat16 प्रारूप गूगल ब्रेन द्वारा विकसित किया गया था, जो गूगल का कृत्रिम बुद्धिमत्ता अनुसंधान समूह है। इसका उपयोग | Bfloat16 प्रारूप गूगल ब्रेन द्वारा विकसित किया गया था, जो गूगल का कृत्रिम बुद्धिमत्ता अनुसंधान समूह होता है। इसका उपयोग इंटेल एआई प्रोसेसर में किया जाता है, जैसे [[Nervana Systems|नर्वाना]] एनएनपेन-एल1000, [[Xeon|जिऑन]] प्रोसेसर ([[AVX-512|एवीएक्स-512]] बीएफ16 एक्सटेंशन), और इंटेल [[FPGA|एफपीजीएएस]],<ref name="vent_Inte">{{Cite web | title = इंटेल ने त्वरित एआई प्रशिक्षण के लिए नर्वाना न्यूरल नेट एल-1000 का अनावरण किया| author = Khari Johnson | work = VentureBeat | date = 2018-05-23 | access-date = 2018-05-23 | url = https://venturebeat.com/2018/05/23/intel-unveils-nervana-neural-net-l-1000-for-accelerated-ai-training/ |quote = ...इंटेल हमारे AI उत्पाद श्रृंखलाओं में bfloat16 समर्थन का विस्तार करेगा, जिसमें Intel Xeon प्रोसेसर और Intel FPGAs शामिल हैं।}}</ref><ref name="top5_Inte">{{Cite web | title = इंटेल ने एआई पोर्टफोलियो के लिए नया रोडमैप पेश किया| author = Michael Feldman | work = TOP500 Supercomputer Sites | date = 2018-05-23 | access-date = 2018-05-23 | url = https://www.top500.org/news/intel-lays-out-new-roadmap-for-ai-portfolio/ | quote = इंटेल ने Xeon और FPGA लाइनों सहित अपने सभी AI उत्पादों में इस प्रारूप का समर्थन करने की योजना बनाई है}}</ref><ref name="toms_Inte">{{Cite web | title = इंटेल 2019 में अपना पहला न्यूरल नेटवर्क प्रोसेसर स्प्रिंग क्रेस्ट लॉन्च करेगा| author = Lucian Armasu | work = Tom's Hardware | date = 2018-05-23 | access-date = 2018-05-23 | url = https://www.tomshardware.com/news/intel-neural-network-processor-lake-crest,37105.html | quote = इंटेल ने कहा कि एनएनपी-एल1000 बीफ्लोट16 को भी सपोर्ट करेगा, जो एक संख्यात्मक प्रारूप है जिसे तंत्रिका नेटवर्क के लिए सभी एमएल उद्योग खिलाड़ियों द्वारा अपनाया जा रहा है। कंपनी अपने FPGAs, Xeons और अन्य ML उत्पादों में bfloat16 का भी समर्थन करेगी। नर्वाना एनएनपी-एल1000 2019 में रिलीज के लिए निर्धारित है।}}</ref> गूगल क्लाउड टेन्सर प्रोसेसिंग इकाइयाँ (टीपीयू),<ref name="clou_Avai">{{Cite web | title = उपलब्ध TensorFlow ऑप्स {{!}} क्लाउड TPU {{!}} Google क्लाउड| work = Google Cloud | access-date = 2018-05-23 | url = https://cloud.google.com/tpu/docs/tensorflow-ops | quote = यह पृष्ठ क्लाउड टीपीयू पर उपलब्ध टेन्सरफ्लो पायथन एपीआई और ग्राफ़ ऑपरेटरों को सूचीबद्ध करता है।}}</ref><ref name="blog_Comp">{{Cite web | title = ResNet-50 पर Google के TPUv2 की Nvidia के V100 से तुलना करना| author = Elmar Haußmann | work = RiseML Blog | date = 2018-04-26 | access-date = 2018-05-23 | url = https://blog.riseml.com/comparing-google-tpuv2-against-nvidia-v100-on-resnet-50-c2bbb6a51e5e | quote = क्लाउड टीपीयू के लिए, Google ने अनुशंसा की है कि हम TensorFlow 1.7.0 के साथ आधिकारिक TPU रिपॉजिटरी से bfloat16 कार्यान्वयन का उपयोग करें। टीपीयू और जीपीयू दोनों कार्यान्वयन संबंधित आर्किटेक्चर पर मिश्रित-सटीक गणना का उपयोग करते हैं और अधिकांश टेंसर को आधी-सटीकता के साथ संग्रहीत करते हैं।| archive-url = https://web.archive.org/web/20180426200043/https://blog.riseml.com/comparing-google-tpuv2-against-nvidia-v100-on-resnet-50-c2bbb6a51e5e | archive-date = 2018-04-26 | url-status = dead }}</ref><ref name="gith_tens">{{Cite web | title = ResNet-50 TPU पर BFloat16 का उपयोग कर रहा है| author = Tensorflow Authors | work = Google | date = 2018-07-23 | access-date = 2018-11-06 | url = https://github.com/tensorflow/tpu/tree/0ece10f6f4e523eab79aba0247b513fe57d38ae6/models/experimental/resnet_bfloat16 }}</ref> और [[TensorFlow|टेन्सरफ्लो]]।<ref name="gith_tens" /><ref name="arxiv_1711.10604">{{cite report |title= टेंसरफ़्लो वितरण|author= Joshua V. Dillon, Ian Langmore, Dustin Tran, Eugene Brevdo, Srinivas Vasudevan, Dave Moore, Brian Patton, Alex Alemi, Matt Hoffman, Rif A. Saurous |date= 2017-11-28 |id= Accessed 2018-05-23 |arxiv= 1711.10604 |quote= All operations in टेंसरफ़्लो वितरणare numerically stable across half, single, and double floating-point precisions (as TensorFlow dtypes: tf.bfloat16 (truncated floating point), tf.float16, tf.float32, tf.float64). Class constructors have a validate_args flag for numerical asserts |bibcode= 2017arXiv171110604D }}</ref> एआरएमवी8.6-ए, [[AMD|एएमडी]] आरओसीएम, सीयूडीए, [[Apple M2|एप्पल एम2]] और इसलिए [[Apple A15|एप्पल ए15]] चिप्स और पश्चात् में, bfloat16 प्रारूप का भी समर्थन करते हैं। इस प्रकार इन प्लेटफार्मों पर, bfloat16 का उपयोग मिश्रित-त्रुटिहीन अंकगणित में भी किया जा सकता है, जहां bfloat16 संख्याओं को संचालित किया जा सकता है और व्यापक डेटा प्रकारों तक विस्तारित किया जा सकता है। | ||
== bfloat16 फ़्लोटिंग-पॉइंट प्रारूप == | == bfloat16 फ़्लोटिंग-पॉइंट प्रारूप == | ||
bfloat16 में निम्नलिखित प्रारूप है: | '''bfloat16''' में निम्नलिखित प्रारूप है: | ||
* [[साइन बिट]]: 1 बिट | * [[साइन बिट]]: 1 बिट | ||
* घातांक चौड़ाई: 8 बिट्स | * घातांक चौड़ाई: 8 बिट्स | ||
* महत्वपूर्ण [[परिशुद्धता (अंकगणित)]]: 8 बिट्स (7 स्पष्ट रूप से संग्रहीत, [[अंतर्निहित अग्रणी बिट]] के साथ), | * महत्वपूर्ण [[परिशुद्धता (अंकगणित)]]: 8 बिट्स (7 स्पष्ट रूप से संग्रहीत, [[अंतर्निहित अग्रणी बिट]] के साथ), मौलिक एकल-परिशुद्धता फ़्लोटिंग-पॉइंट प्रारूप में 24 बिट्स के विपरीत | ||
Bfloat16 प्रारूप, छोटा | Bfloat16 प्रारूप, छोटा आईईईई 754 एकल-परिशुद्धता 32-बिट फ़्लोट होने के कारण, आईईईई 754 एकल-परिशुद्धता 32-बिट फ़्लोट से तेज़ प्रकार के रूपांतरण की अनुमति देता है। इस प्रकार Bfloat16 प्रारूप में रूपांतरण में, घातांक बिट्स को संरक्षित किया जाता है, जबकि [[NaN|एनएएन]] विशेष स्थितियों को अनदेखा करते हुए महत्व क्षेत्र को काट-छाँट (इस प्रकार 0 की ओर गोल करने के लिए ) द्वारा कम किया जा सकता है। अतः [[ प्रतिपादक |प्रतिपादक]] बिट्स को संरक्षित करने से 32-बिट फ्लोट की सीमा ≈ 10<sup>−38</sup> से ≈ 3 × 10<sup>38</sup> तक बनी रहती है।<ref name="googleio18-day1-time2575">{{Cite web | title = Livestream Day 1: Stage 8 (Google I/O '18) - YouTube | work = Google | date = 2018-05-08 | access-date = 2018-05-23 | url = https://www.youtube.com/watch?v=vm67WcLzfvc&t=2555 | quote = In many models this is a drop-in replacement for float-32 }}</ref> | ||
बिट्स को इस प्रकार रखा गया है: | बिट्स को इस प्रकार रखा गया है: | ||
{| class="wikitable" style="text-align:center; border-width:0;" | {| class="wikitable" style="text-align:center; border-width:0;" | ||
|+ [[Half-precision floating-point format|आईईईई | |+ [[Half-precision floating-point format|आईईईई अर्ध परिशुद्धता]] 16-बिट फ्लोट | ||
|- style="line-height:70%;" | |- style="line-height:70%;" | ||
| colspan="2" style="border-width:0; background:#FFFFFF;" | | | colspan="2" style="border-width:0; background:#FFFFFF;" | संकेत | ||
| colspan="5" style="border-width:0; background:#FFFFFF;" | | | colspan="5" style="border-width:0; background:#FFFFFF;" | प्रतिपादक (5 बिट) | ||
| colspan="10" style="border-width:0; background:#FFFFFF;" | | | colspan="10" style="border-width:0; background:#FFFFFF;" | फलन (10 बिट) | ||
|- style="line-height:70%;" | |- style="line-height:70%;" | ||
| colspan="2" style="border-width:0; background:#FFFFFF;" | ┃ | | colspan="2" style="border-width:0; background:#FFFFFF;" | ┃ | ||
Line 38: | Line 38: | ||
|+ [[Single-precision floating-point format|आईईईई 754 एकल परिशुद्धता]] 32-बिट फ्लोट | |+ [[Single-precision floating-point format|आईईईई 754 एकल परिशुद्धता]] 32-बिट फ्लोट | ||
|- style="line-height:70%;" | |- style="line-height:70%;" | ||
| colspan="2" style="border-width:0; background:#FFFFFF;" | | | colspan="2" style="border-width:0; background:#FFFFFF;" | संकेत | ||
| colspan="8" style="border-width:0; background:#FFFFFF;" | | | colspan="8" style="border-width:0; background:#FFFFFF;" | प्रतिपादक (8 बिट) | ||
| colspan="23" style="border-width:0; background:#FFFFFF;" | | | colspan="23" style="border-width:0; background:#FFFFFF;" | फलन (23 बिट) | ||
|- style="line-height:70%;" | |- style="line-height:70%;" | ||
| colspan="2" style="border-width:0; background:#FFFFFF;" | ┃ | | colspan="2" style="border-width:0; background:#FFFFFF;" | ┃ | ||
Line 54: | Line 54: | ||
|+ bfloat16 | |+ bfloat16 | ||
|- style="line-height:70%;" | |- style="line-height:70%;" | ||
| colspan="2" style="border-width:0; background:#FFFFFF;" | | | colspan="2" style="border-width:0; background:#FFFFFF;" | संकेत | ||
| colspan="8" style="border-width:0; background:#FFFFFF;" | | | colspan="8" style="border-width:0; background:#FFFFFF;" | प्रतिपादक (8 बिट) | ||
| colspan="7" style="border-width:0; background:#FFFFFF;" | | | colspan="7" style="border-width:0; background:#FFFFFF;" | फलन (7 बिट) | ||
|- style="line-height:70%;" | |- style="line-height:70%;" | ||
| colspan="2" style="border-width:0; background:#FFFFFF;" | ┃ | | colspan="2" style="border-width:0; background:#FFFFFF;" | ┃ | ||
Line 68: | Line 68: | ||
{| class="wikitable" style="text-align:center; border-width:0;" | {| class="wikitable" style="text-align:center; border-width:0;" | ||
|+ | |+ '''एनवीडिया का टेन्सरफ्लोट''' | ||
|- style="line-height:70%;" | |- style="line-height:70%;" | ||
| colspan="2" style="border-width:0; background:#FFFFFF;" | | | colspan="2" style="border-width:0; background:#FFFFFF;" | संकेत | ||
| colspan="8" style="border-width:0; background:#FFFFFF;" | | | colspan="8" style="border-width:0; background:#FFFFFF;" | प्रतिपादक (8 बिट) | ||
| colspan="10" style="border-width:0; background:#FFFFFF;" | | | colspan="10" style="border-width:0; background:#FFFFFF;" | फलन (10 बिट) | ||
|- style="line-height:70%;" | |- style="line-height:70%;" | ||
| colspan="2" style="border-width:0; background:#FFFFFF;" | ┃ | | colspan="2" style="border-width:0; background:#FFFFFF;" | ┃ | ||
Line 84: | Line 84: | ||
{| class="wikitable" style="text-align:center; border-width:0;" | {| class="wikitable" style="text-align:center; border-width:0;" | ||
|+ | |+ एएमडी का एफपी24 प्रारूप | ||
|- style="line-height:70%;" | |- style="line-height:70%;" | ||
| colspan="2" style="border-width:0; background:#FFFFFF;" | | | colspan="2" style="border-width:0; background:#FFFFFF;" | संकेत | ||
| colspan="7" style="border-width:0; background:#FFFFFF;" | | | colspan="7" style="border-width:0; background:#FFFFFF;" | प्रतिपादक (7 बिट) | ||
| colspan="16" style="border-width:0; background:#FFFFFF;" | | | colspan="16" style="border-width:0; background:#FFFFFF;" | फलन (16 बिट) | ||
|- style="line-height:70%;" | |- style="line-height:70%;" | ||
| colspan="2" style="border-width:0; background:#FFFFFF;" | ┃ | | colspan="2" style="border-width:0; background:#FFFFFF;" | ┃ | ||
Line 100: | Line 100: | ||
{| class="wikitable" style="text-align:center; border-width:0;" | {| class="wikitable" style="text-align:center; border-width:0;" | ||
|+ | |+ पिक्सर का पीएक्सआर24 प्रारूप | ||
|- style="line-height:70%;" | |- style="line-height:70%;" | ||
| colspan="2" style="border-width:0; background:#FFFFFF;" | | | colspan="2" style="border-width:0; background:#FFFFFF;" | संकेत | ||
| colspan="8" style="border-width:0; background:#FFFFFF;" | | | colspan="8" style="border-width:0; background:#FFFFFF;" | प्रतिपादक (8 बिट) | ||
| colspan="15" style="border-width:0; background:#FFFFFF;" | | | colspan="15" style="border-width:0; background:#FFFFFF;" | फलन (15 बिट) | ||
|- style="line-height:70%;" | |- style="line-height:70%;" | ||
| colspan="2" style="border-width:0; background:#FFFFFF;" | ┃ | | colspan="2" style="border-width:0; background:#FFFFFF;" | ┃ | ||
Line 150: | Line 150: | ||
| style="background: #ccc; width: 16pt;" | f | | style="background: #ccc; width: 16pt;" | f | ||
|} | |} | ||
==== | ====आदर्श लेख==== | ||
* {{Legend|#f99| | * {{Legend|#f99|एस: [[sign bit|संकेत]]}} | ||
* {{Legend|#9f9| | * {{Legend|#9f9|ई: [[प्रतिपादक]]}} | ||
* {{Legend|#99f|एफ: अंश (दोनों प्रारूपों में [[महत्वपूर्ण]] से पीछे)।}} | * {{Legend|#99f|एफ: अंश (दोनों प्रारूपों में [[महत्वपूर्ण]] से पीछे)।}} | ||
* {{Legend|#ccc|एफ: 32-बिट में अंश (अनुगामी महत्व) [[एकल परिशुद्धता]] (तुलनात्मक)}} | * {{Legend|#ccc|एफ: 32-बिट में अंश (अनुगामी महत्व) [[एकल परिशुद्धता]] (तुलनात्मक)}} | ||
=== घातांक एन्कोडिंग === | === घातांक एन्कोडिंग === | ||
Bfloat16 बाइनरी फ्लोटिंग-पॉइंट एक्सपोनेंट को | Bfloat16 बाइनरी फ्लोटिंग-पॉइंट एक्सपोनेंट को ऑफसेट-बाइनरी प्रतिनिधित्व का उपयोग करके एन्कोड किया गया है, जिसमें शून्य ऑफसेट 127 है, अतः आईईईई 754 मानक में प्रतिपादक पूर्वाग्रह के रूप में भी जाना जाता है। | ||
* | * ई<sub>मिन</sub> = 01<sub>एच</sub>−7एफ<sub>एच</sub> = −126 | ||
* | * ई<sub>मैक्स</sub> = एफई<sub>एच</sub>−7एफ<sub>एच</sub> = 127 | ||
* घातांक पूर्वाग्रह = | * घातांक पूर्वाग्रह = 7एफ<sub>एच</sub> = 127 | ||
इस प्रकार, ऑफसेट-बाइनरी प्रतिनिधित्व द्वारा परिभाषित वास्तविक प्रतिपादक प्राप्त करने के लिए, 127 के ऑफसेट को प्रतिपादक क्षेत्र के मूल्य से घटाना | इस प्रकार, ऑफसेट-बाइनरी प्रतिनिधित्व द्वारा परिभाषित वास्तविक प्रतिपादक प्राप्त करने के लिए, 127 के ऑफसेट को प्रतिपादक क्षेत्र के मूल्य से घटाना होता है। | ||
घातांक | घातांक क्षेत्र का न्यूनतम और अधिकतम मान (ओओ)<sub>एच</sub> और (एफएफ)<sub>एच</sub> की विशेष रूप से व्याख्या की जाती है, जैसे आईईईई 754 मानक प्रारूपों में। | ||
{| class="wikitable" style="text-align:center" | {| class="wikitable" style="text-align:center" | ||
!प्रतिपादक | !प्रतिपादक | ||
Line 171: | Line 171: | ||
!समीकरण | !समीकरण | ||
|- | |- | ||
| | |ओओ<sub>एच</sub> | ||
| | |शुन्य, [[−0]] | ||
|[[subnormal number|असामान्य संख्याएँ]] | |[[subnormal number|असामान्य संख्याएँ]] | ||
|(−1)<sup>signbit</sup>×2<sup>−126</sup>× 0.significandbits | |(−1)<sup>signbit</sup>×2<sup>−126</sup>× 0.significandbits | ||
|- | |- | ||
|01<sub> | |01<sub>एच</sub>, ..., एफई<sub>एच</sub> | ||
| colspan="2" |सामान्यीकृत मूल्य | | colspan="2" |सामान्यीकृत मूल्य | ||
|(−1)<sup>signbit</sup>×2<sup>exponentbits−127</sup>× 1.significandbits | |(−1)<sup>signbit</sup>×2<sup>exponentbits−127</sup>× 1.significandbits | ||
|- | |- | ||
| | |एफएफ<sub>एच</sub> | ||
|±[[infinity]] | |±[[infinity|अनंतता]] | ||
|[[NaN]] (शांत, संकेत) | |[[NaN|एनएएन]] (शांत, संकेत) | ||
| | | | ||
|} | |} | ||
न्यूनतम | न्यूनतम धनात्मक सामान्य मान 2<sup>−126</sup> ≈ 1.18 × 10<sup>−38</sup> है और न्यूनतम धनात्मक (असामान्य) मान 2<sup>−126−7</sup> = 2<sup>−133</sup> ≈9.2 × 10<sup>−41</sup> है। | ||
== विशेष मानों का एन्कोडिंग == | == विशेष मानों का एन्कोडिंग == | ||
=== | === धनात्मक और ऋणात्मक अनंत === | ||
जैसे [[IEEE 754|आईईईई 754]] में, | जैसे कि [[IEEE 754|आईईईई 754]] में, धनात्मक और ऋणात्मक अनंत को उनके संबंधित साइन बिट्स, सभी 8 एक्सपोनेंट बिट्स समूह (एफएफ<sub>हेक्स</sub>) और सभी महत्वपूर्ण बिट्स शून्य के साथ दर्शाया जाता है। स्पष्ट रूप से,<syntaxhighlight lang="text"> | ||
val s_exponent_signcnd | val s_exponent_signcnd | ||
+inf = 0_11111111_0000000 | +inf = 0_11111111_0000000 | ||
Line 196: | Line 196: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== कोई संख्या नहीं === | === कोई संख्या नहीं === | ||
जैसे आईईईई 754 में, | जैसे आईईईई 754 में, एनएएन मानों को या तो साइन बिट, सभी 8 एक्सपोनेंट बिट्स समूह (एफएफ<sub>हेक्स</sub>) के साथ दर्शाया जाता है, और सभी महत्वपूर्ण बिट्स शून्य नहीं होता हैं। स्पष्ट रूप से,<syntaxhighlight lang="text"> | ||
val s_exponent_signcnd | val s_exponent_signcnd | ||
+NaN = 0_11111111_klmnopq | +NaN = 0_11111111_klmnopq | ||
-NaN = 1_11111111_klmnopq | -NaN = 1_11111111_klmnopq | ||
</syntaxhighlight>जहां | </syntaxhighlight>जहां के, आई, एम, एन, ओ, पी, या क्यू में से कम से कम 1 होता है। इस प्रकार आईईईई 754 की भांति, एनएएन मान शांत या सिग्नलिंग हो सकते हैं, चूंकि सितंबर, सन्न 2018 तक bfloat16 एनएएनएस सिग्नलिंग का कोई ज्ञात उपयोग नहीं होता है। | ||
== सीमा और परिशुद्धता == | == सीमा और परिशुद्धता == | ||
Bfloat16 को 32-बिट | Bfloat16 को 32-बिट आईईईई 754 सिंगल-प्रिसिजन फ़्लोटिंग-पॉइंट प्रारूप (बाइनरी 32) से संख्या सीमा बनाए रखने के लिए डिज़ाइन किया गया है, जबकि परिशुद्धता को 24 बिट्स से घटाकर 8 बिट्स किया गया है। इसका तात्पर्य यह है कि परिशुद्धता दो और तीन दशमलव अंकों के मध्य होती है, और bfloat16 लगभग 3.4 × 10<sup>38</sup> तक परिमित मानों का प्रतिनिधित्व कर सकता है। | ||
== उदाहरण == | == उदाहरण == | ||
यह उदाहरण फ्लोटिंग-पॉइंट मान के [[हेक्साडेसिमल]] और [[ बाइनरी संख्या |बाइनरी संख्या]] में बिट प्रतिनिधित्व में दिए गए हैं। इसमें संकेत, (पक्षपातपूर्ण) प्रतिपादक और महत्व सम्मिलित होता हैं। | |||
3f80 = 0 01111111 0000000 = 1 | 3f80 = 0 01111111 0000000 = 1 | ||
c000 = 1 10000000 0000000 = −2 | c000 = 1 10000000 0000000 = −2 | ||
7f7f = 0 11111110 1111111 = (2<sup>8</sup> − 1)×2<sup>−7</sup>×2<sup>127</sup> ≈ 3.38953139 × 10<sup>38</sup> (bfloat16 परिशुद्धता में अधिकतम परिमित | 7f7f = 0 11111110 1111111 = (2<sup>8</sup> − 1)×2<sup>−7</sup>×2<sup>127</sup> ≈ 3.38953139 × 10<sup>38</sup> (bfloat16 परिशुद्धता में अधिकतम परिमित धनात्मक मान) | ||
0080 = 0 00000001 000000 = 2<sup>−126</sup> ≈ 1.175494351 × 10<sup>−38</sup> (bfloat16 परिशुद्धता और एकल-परिशुद्धता फ़्लोटिंग बिंदु में न्यूनतम सामान्यीकृत | 0080 = 0 00000001 000000 = 2<sup>−126</sup> ≈ 1.175494351 × 10<sup>−38</sup> (bfloat16 परिशुद्धता और एकल-परिशुद्धता फ़्लोटिंग बिंदु में न्यूनतम सामान्यीकृत धनात्मक मान) | ||
यह सामान्य bfloat16 संख्या का अधिकतम धनात्मक परिमित मान 3.38953139 × 10<sup>38</sup> है, जो (2<sup>24</sup> − 1)×2<sup>−23</sup>×2<sup>127</sup> = 3.402823466 × 10<sup>38</sup> से थोड़ा नीचे होता है, अतः एकल परिशुद्धता में प्रतिनिधित्व करने योग्य अधिकतम परिमित धनात्मक मान होता है। | |||
=== शून्य और अनंत === | === शून्य और अनंत === | ||
Line 227: | Line 227: | ||
3eab = 0 01111101 0101011 = 0.333984375 ≈ 1/3 | 3eab = 0 01111101 0101011 = 0.333984375 ≈ 1/3 | ||
=== | === एनएएनएस === | ||
ffc1 = x 11111111 1000001 => | ffc1 = x 11111111 1000001 => qएनएएन | ||
ff81 = x 11111111 0000001 => | ff81 = x 11111111 0000001 => sएनएएन | ||
== यह भी देखें == | == यह भी देखें == | ||
* [[अर्ध-परिशुद्धता फ़्लोटिंग-पॉइंट प्रारूप]]: 16-बिट फ़्लोट | * [[अर्ध-परिशुद्धता फ़्लोटिंग-पॉइंट प्रारूप]]: 16-बिट फ़्लोट डब्लू/1-बिट साइन, 5-बिट एक्सपोनेंट, और 11-बिट महत्व, जैसा कि आईईईई 754 द्वारा परिभाषित किया गया है | ||
* आईएसओ/आईईसी 10967, भाषा स्वतंत्र अंकगणित | * आईएसओ/आईईसी 10967, भाषा स्वतंत्र अंकगणित | ||
* [[आदिम डेटा प्रकार]] | * [[आदिम डेटा प्रकार]] | ||
Line 241: | Line 241: | ||
{{Reflist}} | {{Reflist}} | ||
{{DEFAULTSORT:bfloat16 floating-point format}} | {{DEFAULTSORT:bfloat16 floating-point format}} | ||
[[Category: | [[Category:CS1 maint]] | ||
[[Category:Created On 11/07/2023]] | [[Category:Created On 11/07/2023|bfloat16 floating-point format]] | ||
[[Category:Lua-based templates|bfloat16 floating-point format]] | |||
[[Category:Machine Translated Page|bfloat16 floating-point format]] | |||
[[Category:Pages with script errors|bfloat16 floating-point format]] | |||
[[Category:Templates Vigyan Ready|bfloat16 floating-point format]] | |||
[[Category:Templates that add a tracking category|bfloat16 floating-point format]] | |||
[[Category:Templates that generate short descriptions|bfloat16 floating-point format]] | |||
[[Category:Templates using TemplateData|bfloat16 floating-point format]] | |||
[[Category:फ़्लोटिंग पॉइंट प्रकार|bfloat16 floating-point format]] | |||
[[Category:बाइनरी अंकगणित|bfloat16 floating-point format]] |
Latest revision as of 09:55, 28 July 2023
Floating-point formats |
---|
IEEE 754 |
|
Other |
Bfloat16 (मस्तिष्क फ़्लोटिंग पॉइंट)[1][2] फ़्लोटिंग-पॉइंट प्रारूप कंप्यूटर नंबर प्रारूप होता है जो कंप्यूटर मेमोरी में 16-बिट रखता है, यह फ़्लोटिंग मूलांक बिंदु का उपयोग करके संख्यात्मक मानों की विस्तृत गतिशील श्रृंखला का प्रतिनिधित्व करता है। यह प्रारूप मशीन लर्निंग और निकट-सेंसर कंप्यूटिंग में तेजी लाने के इरादे से 32-बिट आईईईई 754 एकल-परिशुद्धता फ़्लोटिंग-पॉइंट प्रारूप (बाइनरी 32) का छोटा (16-बिट) संस्करण है। इस प्रकार[3] यह 8 एक्सपोनेंट बिट्स को बनाए रखते हुए 32-बिट फ्लोटिंग-पॉइंट नंबरों की अनुमानित गतिशील सीमा को संरक्षित करता है, किन्तु बाइनरी32 प्रारूप के 24-बिट महत्व के अतिरिक्त केवल 8-बिट परिशुद्धता का समर्थन करता है। अतः एकल-परिशुद्धता 32-बिट फ़्लोटिंग-पॉइंट संख्याओं से अधिक, bfloat16 संख्याएँ पूर्णांक गणना के लिए अनुपयुक्त हैं, किन्तु यह उनका इच्छित उपयोग नहीं होता है। इस प्रकार Bfloat16 का उपयोग भंडारण आवश्यकताओं को कम करने और मशीन लर्निंग एल्गोरिदम की गणना गति को बढ़ाने के लिए किया जाता है।[4]
Bfloat16 प्रारूप गूगल ब्रेन द्वारा विकसित किया गया था, जो गूगल का कृत्रिम बुद्धिमत्ता अनुसंधान समूह होता है। इसका उपयोग इंटेल एआई प्रोसेसर में किया जाता है, जैसे नर्वाना एनएनपेन-एल1000, जिऑन प्रोसेसर (एवीएक्स-512 बीएफ16 एक्सटेंशन), और इंटेल एफपीजीएएस,[5][6][7] गूगल क्लाउड टेन्सर प्रोसेसिंग इकाइयाँ (टीपीयू),[8][9][10] और टेन्सरफ्लो।[10][11] एआरएमवी8.6-ए, एएमडी आरओसीएम, सीयूडीए, एप्पल एम2 और इसलिए एप्पल ए15 चिप्स और पश्चात् में, bfloat16 प्रारूप का भी समर्थन करते हैं। इस प्रकार इन प्लेटफार्मों पर, bfloat16 का उपयोग मिश्रित-त्रुटिहीन अंकगणित में भी किया जा सकता है, जहां bfloat16 संख्याओं को संचालित किया जा सकता है और व्यापक डेटा प्रकारों तक विस्तारित किया जा सकता है।
bfloat16 फ़्लोटिंग-पॉइंट प्रारूप
bfloat16 में निम्नलिखित प्रारूप है:
- साइन बिट: 1 बिट
- घातांक चौड़ाई: 8 बिट्स
- महत्वपूर्ण परिशुद्धता (अंकगणित): 8 बिट्स (7 स्पष्ट रूप से संग्रहीत, अंतर्निहित अग्रणी बिट के साथ), मौलिक एकल-परिशुद्धता फ़्लोटिंग-पॉइंट प्रारूप में 24 बिट्स के विपरीत
Bfloat16 प्रारूप, छोटा आईईईई 754 एकल-परिशुद्धता 32-बिट फ़्लोट होने के कारण, आईईईई 754 एकल-परिशुद्धता 32-बिट फ़्लोट से तेज़ प्रकार के रूपांतरण की अनुमति देता है। इस प्रकार Bfloat16 प्रारूप में रूपांतरण में, घातांक बिट्स को संरक्षित किया जाता है, जबकि एनएएन विशेष स्थितियों को अनदेखा करते हुए महत्व क्षेत्र को काट-छाँट (इस प्रकार 0 की ओर गोल करने के लिए ) द्वारा कम किया जा सकता है। अतः प्रतिपादक बिट्स को संरक्षित करने से 32-बिट फ्लोट की सीमा ≈ 10−38 से ≈ 3 × 1038 तक बनी रहती है।[12]
बिट्स को इस प्रकार रखा गया है:
संकेत | प्रतिपादक (5 बिट) | फलन (10 बिट) | ||||||||||||||
┃ | ┌───────┐ | ┌─────────────────┐ | ||||||||||||||
0 | 0 | 1 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |
15 | 14 | 10 | 9 | 0 |
संकेत | प्रतिपादक (8 बिट) | फलन (23 बिट) | ||||||||||||||||||||||||||||||
┃ | ┌─────────────┐ | ┌───────────────────────────────────────────┐ | ||||||||||||||||||||||||||||||
0 | 0 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |
31 | 30 | 23 | 22 | 0 |
संकेत | प्रतिपादक (8 बिट) | फलन (7 बिट) | ||||||||||||||
┃ | ┌─────────────┐ | ┌───────────┐ | ||||||||||||||
0 | 0 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | |
15 | 14 | 7 | 6 | 0 |
संकेत | प्रतिपादक (8 बिट) | फलन (10 बिट) | |||||||||||||||||
┃ | ┌─────────────┐ | ┌─────────────────┐ | |||||||||||||||||
0 | 0 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |
18 | 17 | 10 | 9 | 0 |
संकेत | प्रतिपादक (7 बिट) | फलन (16 बिट) | ||||||||||||||||||||||
┃ | ┌───────────┐ | ┌─────────────────────────────┐ | ||||||||||||||||||||||
0 | 0 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |
23 | 22 | 16 | 15 | 0 |
संकेत | प्रतिपादक (8 बिट) | फलन (15 बिट) | ||||||||||||||||||||||
┃ | ┌─────────────┐ | ┌───────────────────────────┐ | ||||||||||||||||||||||
0 | 0 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |
23 | 22 | 15 | 14 | 0 |
bfloat16 और एकल परिशुद्धता के साथ तुलना करें
S | E | E | E | E | E | E | E | E | F | F | F | F | F | F | F | f | f | f | f | f | f | f | f | f | f | f | f | f | f | f | f |
आदर्श लेख
- एस: संकेत
- ई: प्रतिपादक
- एफ: अंश (दोनों प्रारूपों में महत्वपूर्ण से पीछे)।
- एफ: 32-बिट में अंश (अनुगामी महत्व) एकल परिशुद्धता (तुलनात्मक)
घातांक एन्कोडिंग
Bfloat16 बाइनरी फ्लोटिंग-पॉइंट एक्सपोनेंट को ऑफसेट-बाइनरी प्रतिनिधित्व का उपयोग करके एन्कोड किया गया है, जिसमें शून्य ऑफसेट 127 है, अतः आईईईई 754 मानक में प्रतिपादक पूर्वाग्रह के रूप में भी जाना जाता है।
- ईमिन = 01एच−7एफएच = −126
- ईमैक्स = एफईएच−7एफएच = 127
- घातांक पूर्वाग्रह = 7एफएच = 127
इस प्रकार, ऑफसेट-बाइनरी प्रतिनिधित्व द्वारा परिभाषित वास्तविक प्रतिपादक प्राप्त करने के लिए, 127 के ऑफसेट को प्रतिपादक क्षेत्र के मूल्य से घटाना होता है।
घातांक क्षेत्र का न्यूनतम और अधिकतम मान (ओओ)एच और (एफएफ)एच की विशेष रूप से व्याख्या की जाती है, जैसे आईईईई 754 मानक प्रारूपों में।
प्रतिपादक | महत्व शून्य | सार्थकतथा गैर-शून्य | समीकरण |
---|---|---|---|
ओओएच | शुन्य, −0 | असामान्य संख्याएँ | (−1)signbit×2−126× 0.significandbits |
01एच, ..., एफईएच | सामान्यीकृत मूल्य | (−1)signbit×2exponentbits−127× 1.significandbits | |
एफएफएच | ±अनंतता | एनएएन (शांत, संकेत) |
न्यूनतम धनात्मक सामान्य मान 2−126 ≈ 1.18 × 10−38 है और न्यूनतम धनात्मक (असामान्य) मान 2−126−7 = 2−133 ≈9.2 × 10−41 है।
विशेष मानों का एन्कोडिंग
धनात्मक और ऋणात्मक अनंत
जैसे कि आईईईई 754 में, धनात्मक और ऋणात्मक अनंत को उनके संबंधित साइन बिट्स, सभी 8 एक्सपोनेंट बिट्स समूह (एफएफहेक्स) और सभी महत्वपूर्ण बिट्स शून्य के साथ दर्शाया जाता है। स्पष्ट रूप से,
val s_exponent_signcnd
+inf = 0_11111111_0000000
-inf = 1_11111111_0000000
कोई संख्या नहीं
जैसे आईईईई 754 में, एनएएन मानों को या तो साइन बिट, सभी 8 एक्सपोनेंट बिट्स समूह (एफएफहेक्स) के साथ दर्शाया जाता है, और सभी महत्वपूर्ण बिट्स शून्य नहीं होता हैं। स्पष्ट रूप से,
val s_exponent_signcnd
+NaN = 0_11111111_klmnopq
-NaN = 1_11111111_klmnopq
जहां के, आई, एम, एन, ओ, पी, या क्यू में से कम से कम 1 होता है। इस प्रकार आईईईई 754 की भांति, एनएएन मान शांत या सिग्नलिंग हो सकते हैं, चूंकि सितंबर, सन्न 2018 तक bfloat16 एनएएनएस सिग्नलिंग का कोई ज्ञात उपयोग नहीं होता है।
सीमा और परिशुद्धता
Bfloat16 को 32-बिट आईईईई 754 सिंगल-प्रिसिजन फ़्लोटिंग-पॉइंट प्रारूप (बाइनरी 32) से संख्या सीमा बनाए रखने के लिए डिज़ाइन किया गया है, जबकि परिशुद्धता को 24 बिट्स से घटाकर 8 बिट्स किया गया है। इसका तात्पर्य यह है कि परिशुद्धता दो और तीन दशमलव अंकों के मध्य होती है, और bfloat16 लगभग 3.4 × 1038 तक परिमित मानों का प्रतिनिधित्व कर सकता है।
उदाहरण
यह उदाहरण फ्लोटिंग-पॉइंट मान के हेक्साडेसिमल और बाइनरी संख्या में बिट प्रतिनिधित्व में दिए गए हैं। इसमें संकेत, (पक्षपातपूर्ण) प्रतिपादक और महत्व सम्मिलित होता हैं।
3f80 = 0 01111111 0000000 = 1 c000 = 1 10000000 0000000 = −2
7f7f = 0 11111110 1111111 = (28 − 1)×2−7×2127 ≈ 3.38953139 × 1038 (bfloat16 परिशुद्धता में अधिकतम परिमित धनात्मक मान) 0080 = 0 00000001 000000 = 2−126 ≈ 1.175494351 × 10−38 (bfloat16 परिशुद्धता और एकल-परिशुद्धता फ़्लोटिंग बिंदु में न्यूनतम सामान्यीकृत धनात्मक मान)
यह सामान्य bfloat16 संख्या का अधिकतम धनात्मक परिमित मान 3.38953139 × 1038 है, जो (224 − 1)×2−23×2127 = 3.402823466 × 1038 से थोड़ा नीचे होता है, अतः एकल परिशुद्धता में प्रतिनिधित्व करने योग्य अधिकतम परिमित धनात्मक मान होता है।
शून्य और अनंत
0000 = 0 00000000 0000000 = 0 8000 = 1 00000000 0000000 = −0
7f80 = 0 11111111 0000000 = infinity ff80 = 1 11111111 0000000 = −infinity
विशेष मान
4049 = 0 10000000 1001001 = 3.140625 ≈ π ( pi ) 3eab = 0 01111101 0101011 = 0.333984375 ≈ 1/3
एनएएनएस
ffc1 = x 11111111 1000001 => qएनएएन ff81 = x 11111111 0000001 => sएनएएन
यह भी देखें
- अर्ध-परिशुद्धता फ़्लोटिंग-पॉइंट प्रारूप: 16-बिट फ़्लोट डब्लू/1-बिट साइन, 5-बिट एक्सपोनेंट, और 11-बिट महत्व, जैसा कि आईईईई 754 द्वारा परिभाषित किया गया है
- आईएसओ/आईईसी 10967, भाषा स्वतंत्र अंकगणित
- आदिम डेटा प्रकार
- मिनीफ्लोट
- गूगल ब्रेन
संदर्भ
- ↑ Teich, Paul (2018-05-10). "Tearing Apart Google's TPU 3.0 AI Coprocessor". The Next Platform. Retrieved 2020-08-11.
Google invented its own internal floating point format called "bfloat" for "brain floating point" (after Google Brain).
- ↑ Wang, Shibo; Kanwar, Pankaj (2019-08-23). "BFloat16: The secret to high performance on Cloud TPUs". Google Cloud. Retrieved 2020-08-11.
This custom floating point format is called "Brain Floating Point Format," or "bfloat16" for short. The name flows from "Google Brain", which is an artificial intelligence research group at Google where the idea for this format was conceived.
- ↑ Tagliavini, Giuseppe; Mach, Stefan; Rossi, Davide; Marongiu, Andrea; Benin, Luca (2018). "A transprecision floating-point platform for ultra-low power computing". 2018 Design, Automation & Test in Europe Conference & Exhibition (DATE). pp. 1051–1056. arXiv:1711.10374. doi:10.23919/DATE.2018.8342167. ISBN 978-3-9819263-0-9. S2CID 5067903.
- ↑ Dr. Ian Cutress (2020-03-17). "Intel': Cooper lake Plans: Why is BF16 Important?". Retrieved 2020-05-12.
The bfloat16 standard is a targeted way of representing numbers that give the range of a full 32-bit number, but in the data size of a 16-bit number, keeping the accuracy close to zero but being a bit more loose with the accuracy near the limits of the standard. The bfloat16 standard has a lot of uses inside machine learning algorithms, by offering better accuracy of values inside the algorithm while affording double the data in any given dataset (or doubling the speed in those calculation sections).
- ↑ Khari Johnson (2018-05-23). "इंटेल ने त्वरित एआई प्रशिक्षण के लिए नर्वाना न्यूरल नेट एल-1000 का अनावरण किया". VentureBeat. Retrieved 2018-05-23.
...इंटेल हमारे AI उत्पाद श्रृंखलाओं में bfloat16 समर्थन का विस्तार करेगा, जिसमें Intel Xeon प्रोसेसर और Intel FPGAs शामिल हैं।
- ↑ Michael Feldman (2018-05-23). "इंटेल ने एआई पोर्टफोलियो के लिए नया रोडमैप पेश किया". TOP500 Supercomputer Sites. Retrieved 2018-05-23.
इंटेल ने Xeon और FPGA लाइनों सहित अपने सभी AI उत्पादों में इस प्रारूप का समर्थन करने की योजना बनाई है
- ↑ Lucian Armasu (2018-05-23). "इंटेल 2019 में अपना पहला न्यूरल नेटवर्क प्रोसेसर स्प्रिंग क्रेस्ट लॉन्च करेगा". Tom's Hardware. Retrieved 2018-05-23.
इंटेल ने कहा कि एनएनपी-एल1000 बीफ्लोट16 को भी सपोर्ट करेगा, जो एक संख्यात्मक प्रारूप है जिसे तंत्रिका नेटवर्क के लिए सभी एमएल उद्योग खिलाड़ियों द्वारा अपनाया जा रहा है। कंपनी अपने FPGAs, Xeons और अन्य ML उत्पादों में bfloat16 का भी समर्थन करेगी। नर्वाना एनएनपी-एल1000 2019 में रिलीज के लिए निर्धारित है।
- ↑ "उपलब्ध TensorFlow ऑप्स | क्लाउड TPU | Google क्लाउड". Google Cloud. Retrieved 2018-05-23.
यह पृष्ठ क्लाउड टीपीयू पर उपलब्ध टेन्सरफ्लो पायथन एपीआई और ग्राफ़ ऑपरेटरों को सूचीबद्ध करता है।
- ↑ Elmar Haußmann (2018-04-26). "ResNet-50 पर Google के TPUv2 की Nvidia के V100 से तुलना करना". RiseML Blog. Archived from the original on 2018-04-26. Retrieved 2018-05-23.
क्लाउड टीपीयू के लिए, Google ने अनुशंसा की है कि हम TensorFlow 1.7.0 के साथ आधिकारिक TPU रिपॉजिटरी से bfloat16 कार्यान्वयन का उपयोग करें। टीपीयू और जीपीयू दोनों कार्यान्वयन संबंधित आर्किटेक्चर पर मिश्रित-सटीक गणना का उपयोग करते हैं और अधिकांश टेंसर को आधी-सटीकता के साथ संग्रहीत करते हैं।
- ↑ 10.0 10.1 Tensorflow Authors (2018-07-23). "ResNet-50 TPU पर BFloat16 का उपयोग कर रहा है". Google. Retrieved 2018-11-06.
- ↑ Joshua V. Dillon, Ian Langmore, Dustin Tran, Eugene Brevdo, Srinivas Vasudevan, Dave Moore, Brian Patton, Alex Alemi, Matt Hoffman, Rif A. Saurous (2017-11-28). टेंसरफ़्लो वितरण (Report). arXiv:1711.10604. Bibcode:2017arXiv171110604D. Accessed 2018-05-23.
All operations in टेंसरफ़्लो वितरणare numerically stable across half, single, and double floating-point precisions (as TensorFlow dtypes: tf.bfloat16 (truncated floating point), tf.float16, tf.float32, tf.float64). Class constructors have a validate_args flag for numerical asserts
{{cite report}}
: CS1 maint: multiple names: authors list (link) - ↑ "Livestream Day 1: Stage 8 (Google I/O '18) - YouTube". Google. 2018-05-08. Retrieved 2018-05-23.
In many models this is a drop-in replacement for float-32