Unum (تنسيق الأرقام)
Unums ( الأعداد العالمية [1] ) هي عائلة من تنسيقات الأرقام والحساب لتنفيذ الأعداد الحقيقية على الكمبيوتر، اقترحها جون إل. جوستافسون في عام 2015. [2] وهي مصممة كبديل لمعيار IEEE 754 للفاصلة العائمة . يُعرف أحدث إصدار باسم posits . [3]
النوع الأول Unum
تم تقديم الإصدار الأول من unums، والمعروف رسميًا باسم النوع الأول unum، في كتاب جوستافسون The End of Error كمجموعة فرعية من تنسيق الفاصلة العائمة IEEE-754. [2] السمات المميزة لتنسيق النوع الأول unum هي:
- تنسيق تخزين بعرض متغير لكل من الدلالة والأس ، و
- بت- u ، والذي يحدد ما إذا كان unum يتوافق مع عدد دقيق ( u = 0)، أو فاصل بين unums دقيقة متتالية ( u = 1). بهذه الطريقة، تغطي unums خط الأعداد الحقيقية الممتد بالكامل [−∞,+∞].
لإجراء العمليات الحسابية باستخدام هذا التنسيق، اقترح جوستافسون استخدام حساب الفاصل الزمني مع زوج من unums، وهو ما أسماه ubound ، مما يوفر ضمانًا بأن الفاصل الزمني الناتج يحتوي على الحل الدقيق.
ناقش ويليام م. كاهان وغوستافسون مسألة الأعداد غير المتجانسة في مؤتمر أريث23 . [4] [5] [6] [7]
النوع الثاني Unum
تم تقديم Unums من النوع الثاني في عام 2016 [8] كإعادة تصميم لـ Unums والتي كسرت توافق IEEE-754.
هذا القسم يحتاج إلى التوسعة ، يمكنك المساعدة بإضافة المزيد إليه. ( يونيو 2021 ) |
وضعية (نوع ثالث Unum)
في فبراير 2017، قدم جوستافسون رسميًا وحدات النوع الثالث (الموضعية)، للقيم الثابتة الشبيهة بالفاصلة العائمة والصالحة لحسابات الفواصل . [3] في مارس 2022، تم التصديق على معيار ونشره من قبل مجموعة عمل الموضعية. [9]
تعتبر المواضع [3] [10] [11] نسخة صديقة للأجهزة من unum حيث يتم حل الصعوبات التي تواجهها unum من النوع الأول الأصلي بسبب حجمها المتغير. بالمقارنة مع العوامات IEEE 754 ذات الحجم المماثل، توفر المواضع نطاقًا ديناميكيًا أكبر وعددًا أكبر من بتات الكسور للقيم ذات المقدار بالقرب من 1 (ولكن عددًا أقل من بتات الكسور للقيم الكبيرة جدًا أو الصغيرة جدًا)، ويدعي جوستافسون أنها توفر دقة أفضل. [12] [13] تؤكد الدراسات [14] [15] أنه بالنسبة لبعض التطبيقات، تتفوق المواضع ذات الركيزة على العوامات في الدقة. تتمتع المواضع بدقة فائقة في النطاق القريب من واحد، حيث تحدث معظم العمليات الحسابية. هذا يجعلها جذابة للغاية للاتجاه الحالي في التعلم العميق لتقليل عدد البتات المستخدمة. من المحتمل أن يساعد أي تطبيق على التسارع من خلال تمكين استخدام عدد أقل من البتات (نظرًا لأنه يحتوي على عدد أكبر من بتات الكسور للدقة) مما يقلل من متطلبات عرض النطاق الترددي للشبكة والذاكرة والطاقة.
يتم إعطاء تنسيق الموضع المكون من n بت تسمية "posit" متبوعة بالأرقام العشرية لـ n (على سبيل المثال، تنسيق الموضع المكون من 16 بت هو "posit16") ويتكون من أربعة حقول متسلسلة:
- العلامة : 1 بت، تمثل عددًا صحيحًا غير موقّع s
- النظام: 2 بت على الأقل وحتى ( n − 1)، يمثل عددًا صحيحًا غير موقّع r كما هو موضح أدناه
- الأس : ما يصل إلى 2 بت كما هو متاح بعد النظام، يمثل عددًا صحيحًا غير موقّع
- الكسر : كل البتات المتبقية المتاحة بعد الأس، والتي تمثل عددًا ثنائيًا حقيقيًا غير سلبيًا أقل من 1
يستخدم حقل النظام ترميزًا أحاديًا لـ k بت متطابق، يتبعه بت بقيمة معاكسة إذا توفرت أي بتات متبقية، لتمثيل عدد صحيح غير موقّع r يكون − k إذا كان البت الأول 0 أو k − 1 إذا كان البت الأول 1. حقول الإشارة والأس والكسر مماثلة لحقول إشارة IEEE 754 والأس والدلالة (على التوالي)، باستثناء أن حقول الأس الموجب والكسر قد تكون غائبة أو مقطوعة وممتدة ضمناً بالأصفار - يتم التعامل مع الأس الغائب على أنه 002 (يمثل 0)، ويتم التعامل مع الأس أحادي البت E 1 على أنه 2 (يمثل العدد الصحيح 0 إذا كان E 1 يساوي 0 أو 2 إذا كان E 1 يساوي 1)، ويتم التعامل مع الكسر الغائب على أنه 0.
E10
إن التشفيرين اللذين تكون فيهما جميع البتات غير ذات الإشارة تساوي 0 لهما تفسيرات خاصة:
- إذا كان بت الإشارة هو 1، فإن القيمة الإيجابية هي
NaR("ليس حقيقيًا") - إذا كان بت الإشارة هو 0، فإن القيمة الإيجابية هي 0 (وهي غير موقعة والقيمة الوحيدة التي
signترجع لها الدالة 0)
بخلاف ذلك، تكون القيمة الإيجابية مساوية لـ ، حيث يتناسب r مع قوى 16، ويتناسب e مع قوى 2، ويوزع f القيم بشكل موحد بين التركيبات المتجاورة لـ ( r ، e )، ويضبط s الإشارة بشكل متماثل حول 0.
أمثلة
| النوع (الموضع n ) |
ثنائي | قيمة | ملحوظات |
|---|---|---|---|
| أي | 1 0…
|
NaR
|
أي شيء لا يمكن تعريفه رياضيا كعدد حقيقي فريد [9] |
| أي | 0 0…
|
0 | |
| أي | 0 10…
|
1 | |
| أي | 1 10…
|
-1 | |
| أي | 0 01 11 0…
|
0.5 | |
| أي | 0 0…1
|
أصغر قيمة موجبة | |
| أي | 0 1…
|
أكبر قيمة إيجابية | |
| وضع 8 | 0 0000001
|
أصغر قيمة موجبة | |
| وضع 8 | 0 1111111
|
أكبر قيمة إيجابية | |
| وضع 16 | 0 000000000000001
|
أصغر قيمة موجبة | |
| وضع 16 | 0 111111111111111
|
أكبر قيمة إيجابية | |
| وضع 32 | 0 0000000000000000000000000000001
|
أصغر قيمة موجبة | |
| وضع 32 | 0 1111111111111111111111111111111
|
أكبر قيمة إيجابية |
ملاحظة : من المتوقع أن يكون الوضع 32 بت كافيًا لحل جميع فئات التطبيقات تقريبًا [ بحاجة لمصدر ] .
كرسى
لكل موضع n نوع من الدقة ، يحدد المعيار نوع "موضع" مطابق موضع n من الدقة ، يستخدم لتجميع المبالغ الدقيقة لمنتجات تلك المواضع دون تقريب أو تجاوز في منتجات النقاط للمتجهات التي يصل عددها إلى 2 31 عنصرًا أو أكثر (الحد الدقيق هو ). تنسيق الموضع هو عدد صحيح موقّع مكمل لاثنين ، يتم تفسيره كمضاعف لوحدات المقدار باستثناء القيمة الخاصة ذات البت الرئيسي 1 وجميع البتات الأخرى تساوي 0 (والتي تمثل ). تعتمد المواضع على عمل أولريش دبليو كوليش وويلارد إل ميرانكر . [16]NaR
صالح
يتم وصف العناصر الصالحة على أنها وضع Unum من النوع الثالث الذي يحدد النتائج في نطاق معين. [3]
التنفيذات
تطبق العديد من حلول البرامج والأجهزة حسابات موجبة. [14] [17] [18] [19] [20] تم اقتراح أول مولد حسابي موجب كامل المعلمات في عام 2018. [21]
تم استكشاف تنفيذات Unum في Julia [22] [23] [24] [25] [26] [27] و MATLAB . [28] [29] يتوفر إصدار C++ [30] مع دعم لأي أحجام موضعية مقترنة بأي عدد من بتات الأس. يضيف تنفيذ سريع بلغة C، SoftPosit، [31] قدمه فريق بحث NGA استنادًا إلى Berkeley SoftFloat إلى تنفيذات البرامج المتاحة.
| مشروع
مؤلف |
يكتب | الدقة | كرسى
يدعم؟ |
سرعة | الاختبار | ملحوظات |
|---|---|---|---|---|---|---|
| وحدة معالجة الرسومات (GPU)
فيفيدسباركس |
أول FPGA GPGPU في العالم | 32 | نعم | ~3.2 تي بوبس | شامل ولا توجد أخطاء معروفة. | تحتوي وحدة معالجة الرسومات RacEr GP-GPU على 512 نواة |
| سوفتبوزيت
أ*ستار |
مكتبة C مبنية على Berkeley SoftFloat
غلاف C++ لتجاوز المشغلات غلاف Python باستخدام SWIG من SoftPosit |
8، 16، 32 نشرت وكاملة؛ | نعم | ~60 إلى 110 ميجابايت في الثانية على نواة x86 (Broadwell) | 8: شامل؛
16: شامل باستثناء FMA، الشرط 32: لا يزال الاختبار الشامل قيد التنفيذ. لا توجد أخطاء معروفة. |
رخصة مفتوحة المصدر. أسرع مكتبة C وأكثرها شمولاً للوضعيات في الوقت الحالي. مصممة لمقارنة المكونات الإضافية للعوامات والوضعيات وفقًا لمعايير IEEE. |
| posit4.nb
أ*ستار |
دفتر الرياضيات | الجميع | نعم | < 80 كوريابوب | شامل للدقة المنخفضة. لا توجد أخطاء معروفة. | مفتوح المصدر (رخصة معهد ماساتشوستس للتكنولوجيا). التعريف الأصلي والنموذج الأولي. البيئة الأكثر اكتمالاً لمقارنة العوامات والوضعيات وفقًا لمعايير معهد مهندسي الكهرباء والإلكترونيات. العديد من أمثلة الاستخدام، بما في ذلك الحلول الخطية |
| وضع جافا سكريبت
أ*ستار |
أداة جافا سكريبت | تحويل الأعداد العشرية إلى المواضع 6، 8، 16، 32؛ إنشاء الجداول 2-17 باستخدام المواضع 1-4. | غير متاح | غير متوفر؛ أداة تفاعلية |
تم اختباره بالكامل | مولد الجدول والتحويل |
| عالمي
ستيلووتر للحوسبة الفائقة |
مكتبة قوالب C++
مكتبة C مكتبة Python مكتبة Golang |
دقة تعسفية تضع تعويمًا صالحًا (ص)
نوع أونوم 1 (ع) نوع أونوم 2 (ع) |
تكوينات عشوائية مع سعة قابلة للبرمجة | وضع <4,0> 1 GPOPS
وضع <8,0> 130 MPOPS وضع <16,1> 115 MPOPS وضع <32,2> 105 MPOPS وضع <64,3> 50 MPOPS وضع <128,4> 1 MPOPS وضع <256,5> 800 KPOPS |
مجموعة التحقق الكاملة للمواقف التعسفية
عناصر عشوائية لتكوينات الوضعيات الكبيرة. يستخدم الاستدلال لإثبات صحة nbits+1 ولا توجد أخطاء معروفة |
مفتوح المصدر. رخصة MIT.
متكامل تمامًا مع أنواع C/C++ والتحويلات التلقائية. يدعم مكتبة الرياضيات الكاملة بلغة C++ (الأصلية والتحويل من/إلى IEEE). التكاملات وقت التشغيل: MTL4/MTL5، Eigen، Trilinos، HPR-BLAS. تكاملات التطبيقات: G+SMO، FDBB، FEniCS، ODEintV2، TVM.ai. تكامل مسرعات الأجهزة (Xilinx، Intel، Achronix). |
| سبيدوجو
تشونغ شين يي |
مكتبة بايثون | الجميع | لا | ~20 ميجابايت في الثانية | واسع النطاق؛ لا توجد أخطاء معروفة | المصدر المفتوح (رخصة معهد ماساتشوستس للتكنولوجيا) |
| سوفتبوزيت-ركت
ديفيد ثين |
روابط SoftPosit للمضارب | الجميع | نعم | مجهول | مجهول | |
| إس إف بي آي
بيل زورن |
روابط SoftPosit لـ Python | الجميع | نعم | ~20–45 ميجا بايت في الثانية على نواة Skylake بسرعة 4.9 جيجاهرتز | مجهول | |
| إيجابي
دييغو كويلو |
تنفيذ الأوكتاف | الجميع | لا | مجهول | اختبار محدود؛ لا توجد أخطاء معروفة | رخصة جنو العمومية |
| أرقام سيجمايد
إسحاق يونيموتو |
مكتبة جوليا | الكل <32، الكل ES | نعم | مجهول | لا توجد أخطاء معروفة (وضعيات).
أخطاء التقسيم (الصالحة) |
يستفيد من مكتبة جوليا القياسية للرياضيات، ويمكنه إجراء عمليات المصفوفة والموتر والأعداد المركبة وتحويل فورييه السريع ومعادلة دالة ... |
| سيجمويد سريع
إسحاق يونيموتو |
جوليا ومكتبة C/C++ | 8، 16، 32، جميعها ES | لا | مجهول | خطأ معروف في عملية الضرب 32 بت | يستخدمه LLNL في دراسات الصدمة |
| سوفتبوزيت.جيه إل
ميلان كلوير |
مكتبة جوليا | على أساس سوفتبوزيت؛
8 بت (es=0..2) 16 بت (es=0..2) 24 بت (es=1..2) 32 بت (es=2) |
نعم | مماثل ل
A*STAR "SoftPosit" (سيرلين ليونج) |
نعم:
Posit (8,0)، Posit (16,1)، Posit (32,2) تفتقر التنسيقات الأخرى إلى الوظائف الكاملة |
مفتوح المصدر. القضايا والاقتراحات على GitHub.
تم تطوير هذا المشروع نظرًا لحقيقة أن SigmoidNumbers و FastSigmoid بواسطة Isaac Yonemoto لا يتم صيانتهما حاليًا. يدعم وظائف الجبر الخطي الأساسية في جوليا (ضرب المصفوفة، حل المصفوفة، تحلل Elgen، وما إلى ذلك). |
| باي سيجمويد
كين ميركادو |
مكتبة بايثون | الجميع | نعم | < 20 ميجابايت في الثانية | مجهول | مفتوح المصدر (رخصة معهد ماساتشوستس للتكنولوجيا). واجهة سهلة الاستخدام. مثال على الشبكة العصبية. دعم شامل للوظائف. |
| cppوضع
فيديريكو روسي، إيمانويل روفالدي |
مكتبة C++ | من 4 إلى 64 (أي قيمة es)؛ "إصدار القالب من 2 إلى 63 بت" | لا | مجهول | بعض الاختبارات الأساسية | 4 مستويات للعمليات التي تعمل مع المواضع. دعم خاص لأنواع NaN (غير قياسي) |
| bfp: ما وراء النقطة العائمة
كليمان جيرين |
مكتبة C++ | أي | لا | مجهول | تم العثور على أخطاء؛ حالة الإصلاحات غير معروفة | يدعم + – × ÷ √ مقلوب، نفي، مقارنة |
| فيريلوج.جيه إل
إسحاق يونيموتو |
جوليا وفيريلوج | 8، 16، 32، ES=0 | لا | مجهول | تم اختباره بشكل شامل لـ 8 بت، ولا توجد أخطاء معروفة | مخصص لتطبيقات التعلم العميق الجمع والطرح والضرب فقط. تم بناء مضاعف مصفوفة لإثبات المفهوم، ولكنه خارج المواصفات في دقته |
| حسابيات لومبيك
لومبيك تكنولوجيز |
C# مع Hastlayer لتوليد الأجهزة | 8، 16، 32.
(64 بت قيد التقدم) |
نعم | 10 ميجابايت
انقر هنا للمزيد |
جزئي | يتطلب واجهات برمجة تطبيقات Microsoft .Net |
| ديب فلوت جيف جونسون، فيسبوك | نظام فيريلوج | أي (نظام Verilog ذو المعلمات) | نعم | غير متاح
(RTL لتصاميم FPGA/ASIC) |
محدود | لا يتوافق بشكل صارم مع مواصفات الوضع.
يدعم +، -،/،*. ينفذ كلاً من الوضع اللوغاريتمي والوضع الطبيعي "الخطي" الترخيص: CC-BY-NC 4.0 في الوقت الحالي |
| طوكيو للتكنولوجيا | FPGA | 16، 32، قابلة للتمديد | لا | "2 جيجاهرتز"، غير مترجم إلى MPOPS | جزئي؛ أخطاء التقريب المعروفة | لم يتم فتح المصدر بعد |
| PACoGen: مولد أساسيات الرياضيات الموضعية مانيش كومار جايسوال | Verilog HDL للحسابات الاحتمالية | أي دقة.
القدرة على توليد أي مجموعة من حجم الكلمة (N) وحجم الأس (ES) |
لا | تعتمد سرعة التصميم على منصة الأجهزة الأساسية (ASIC/FPGA) | اختبارات شاملة لـ 8 بت إيجابي.
يتم إجراء ملايين الاختبارات العشوائية لما يصل إلى 32 بتًا مع مجموعات ES المختلفة |
يدعم طريقة التقريب إلى أقرب تقريب. |
| فيناي ساكسينا، مركز الأبحاث والتكنولوجيا، روبرت بوش، الهند (RTC-IN) وفرهاد ميرشانت، جامعة RWTH في آخن | مولد Verilog لـ VLSI وFPGA | الجميع | لا | مشابهة للعوامات ذات نفس حجم البت | ن=8
- ES=2 | N=7,8,9,10,11,12 تركيبات انتقائية (20000*65536) لـ - ES=1 | N=16 |
للاستخدام في المنتجات التجارية. على حد علمنا.
***أول دمج على الإطلاق للوضعيات في RISC-V*** |
| نواة RISC-V الممكّنة من الوضع
(سوغاندا تيواري، نيل غالا، تشيستر ريبيرو، في كاماكوتي، آي آي تي مادراس) |
تنفيذ BSV (نظام Bluespec Verilog) | موضع 32 بت مع (es=2) و (es=3) | لا | — | تم التحقق من ذلك باستخدام SoftPosit لـ (es=2) وتم اختباره باستخدام العديد من التطبيقات لـ (es=2) و(es=3). لا توجد أخطاء معروفة. | أول نواة RISC-V كاملة قادرة على العمل بشكل إيجابي. تدعم التبديل الديناميكي بين (es=2) و(es=3).
لمزيد من المعلومات هنا. |
| بيرسيفال
ديفيد مالاسين |
نواة Posit RISC-V مفتوحة المصدر مع إمكانية Quire | وضع <32,2> باستخدام استعلام 512 بت | نعم | تعتمد سرعة التصميم على منصة الأجهزة الأساسية (ASIC/FPGA) | اختبار وظيفة كل تعليمات الوضع. | نواة RISC-V قادرة على تنفيذ الأوامر على مستوى التطبيق استنادًا إلى CVA6 والتي يمكنها تنفيذ جميع أوامر الأوامر، بما في ذلك عمليات quire fused. PERCIVAL هو أول عمل يدمج posit ISA وquire بالكامل في الأجهزة. وهو يسمح بالتنفيذ الأصلي لأوامر الأوامر بالإضافة إلى أوامر الفاصلة العائمة القياسية في نفس الوقت. |
| ليببوزيت
كريس لومونت |
ملف واحد C# مرخص من MIT | أي حجم | لا | واسع النطاق؛ لا توجد أخطاء معروفة | العمليات: الحساب، المقارنات، الجذر التربيعي، الجيب، جيب التمام، الظل، أكوس، أسين، أتان، قوة، إكسب، لوغاريتم | |
| أونومجل
الحوسبة REX |
إصدار FPGA من معالج "Neo" VLIW مع وحدة رقمية إيجابية | 32 | لا | ~1.2 جيجابوبس | واسع النطاق؛ لا توجد أخطاء معروفة | لا يوجد قسمة أو جذر تربيعي. أول تصميم للمعالج الكامل لاستبدال العوامات بالمواضع. |
| PNU: وحدة رقمية موضعية
كاليجو تيك |
|
|
نعم - مدعوم بالكامل. | 500 ميجا هرتز * 8 نواة | تم الانتهاء من الاختبارات الشاملة لـ 32 بت و 64 بت مع دعم Quire.
التطبيقات التي تم اختبارها وإتاحتها للاستخدام السلس www.calligotech.com |
متكامل تمامًا مع أنواع C/C++ والتحويلات التلقائية. يدعم مكتبة الرياضيات الكاملة بلغة C++ (الأصلية والتحويل من/إلى IEEE). التكاملات وقت التشغيل: GNU Utils وOpenBLAS وCBLAS. تكاملات التطبيقات: قيد التنفيذ. دعم المترجم الموسع: C/C++ وG++ وGFortran وLLVM (قيد التنفيذ). |
| آي بي إم-تاسك
جيانيو تشين |
FPGA ذات الأغراض المحددة | 32 | نعم | 16–64 نقطة من نقاط GPOPS | تم اختبار حالة واحدة فقط معروفة | هل يتم إجراء عملية ضرب مصفوفة 128 × 128 (SGEMM) باستخدام quire. |
| غربال عميق
راؤول موريلو |
مكتبة بايثون (برمجيات) | 8، 16، 32 | نعم | مجهول | مجهول | إطار عمل DNN باستخدام المواضع |
| جوسيت
جاب آرتس |
مكتبة Pure Go | 16/1 32/2 (يتضمن 32/ES عامًا لـ ES<32) [ يحتاج إلى توضيح ] | لا | 80 ميجابايت في الثانية لـ div32/2 والدوال الخطية المشابهة. أعلى بكثير لـ truncate وأقل بكثير لـ exp. | اختبار ضد C softposit مع الكثير من التكرارات لـ 16/1 و 32/2. تم العثور على حالات حافة اختبار صريحة. | (رخصة MIT) يتم إنشاء الكود في التطبيقات التي يكون فيها ES ثابتًا. يجب أن يكون المولد قادرًا على التوليد لجميع الأحجام {8،16،32} وES أقل من الحجم. ومع ذلك، فإن تلك التي لم يتم تضمينها في المكتبة بشكل افتراضي لا يتم اختبارها أو تشويشها أو دعمها. بالنسبة لبعض العمليات على 32/ES، من الممكن خلط ومطابقة ES. ومع ذلك، لا يتم اختبار ذلك. |
سوفتبوزيت
SoftPosit [31] هو تنفيذ برمجي للوضعيات يعتمد على Berkeley SoftFloat. [32] وهو يسمح بالمقارنة البرمجية بين الوضعيات والعوامات. وهو يدعم حاليًا
- يضيف
- طرح
- ضاعف
- تقسيم
- دمج - ضرب - إضافة
- منتج نقطة مندمجة (مع ركيزة)
- الجذر التربيعي
- تحويل الموضع إلى عدد صحيح موقّع وغير موقّع
- تحويل الأعداد الصحيحة الموقعة وغير الموقعة إلى موجب
- تحويل الوضع إلى حجم وضع آخر
- أقل من، يساوي، مقارنة أقل من المساواة
- التقريب إلى أقرب عدد صحيح
وظائف المساعدة
- تحويل مزدوج إلى موجب
- تحويل الوضع إلى وضع مزدوج
- تحويل عدد صحيح غير موقّع إلى موضع
يعمل هذا البرنامج مع مواضع 16 بت مع بت أس واحد وموضع 8 بت مع بت أس صفري. وينتظر التحقق من صحة دعم مواضع 32 بت والنوع المرن (2-32 بت مع بت أسين). ويدعم أنظمة x86_64. وقد تم اختباره على GNU gcc ( SUSE Linux ) 4.8.5 Apple LLVM الإصدار 9.1.0 (clang-902.0.39.2).
أمثلة
أضف مع posit8_t
#تضمين "softposit.h"
int main ( int argc ، char * argv []) { posit8_t pA ، pB ، pZ ؛ pA = castP8 ( 0xF2 )؛ pB = castP8 ( 0x23 )؛ pZ = p8_add ( pA ، pB )؛
// للتحقق من الإجابة عن طريق تحويلها إلى double
double dZ = convertP8ToDouble ( pZ ); printf ( "dZ: %.15f \n " , dZ );
// لطباعة النتيجة بالصيغة الثنائية (تحذير: الكود غير قابل للنقل)
uint8_t uiZ = castUI8 ( pZ ); printBinary (( uint64_t * ) & uiZ , 8 );
العودة 0 ؛ }
منتج نقطة مندمجة مع quire16_t
// تحويل مزدوج إلى وضع
posit16_t pA = convertDoubleToP16 ( 1.02783203125 ); posit16_t pB = convertDoubleToP16 ( 0.987060546875 ); posit16_t pC = convertDoubleToP16 ( 0.4998779296875 ); posit16_t pD = convertDoubleToP16 ( 0.8797607421875 );
quire16_t qZ ؛
// تعيين quire إلى 0
qZ = q16_clr ( qZ );
// تجميع المنتجات بدون تقريب
qZ = q16_fdp_add ( qZ , pA , pB ); qZ = q16_fdp_add ( qZ , pC , pD );
// تحويل مرة أخرى إلى الوضع
posit16_t pZ = q16_to_p16 ( qZ );
// للتحقق من الإجابة
double dZ = convertP16ToDouble ( pZ );
نقد
ينتقد ويليام م. كاهان، المهندس الرئيسي لـ IEEE 754-1985 ، وحدات unum من النوع الأول على الأسس التالية (يتم تناول بعضها في معايير النوع الثاني والنوع الثالث): [6] [33]
- يتجنب وصف unums استخدام حساب التفاضل والتكامل لحل المسائل الفيزيائية.
- يمكن أن تكون Unums مكلفة من حيث الوقت واستهلاك الطاقة.
- من المرجح أن يؤدي كل حساب في مساحة unum إلى تغيير طول البت في البنية. ويتطلب هذا إما فك ضغطها في مساحة ذات حجم ثابت، أو تخصيص البيانات، وإلغاء تخصيصها، وجمع القمامة أثناء عمليات unum، على غرار المشكلات المتعلقة بالتعامل مع السجلات ذات الطول المتغير في التخزين الشامل.
- توفر Unums نوعين فقط من الاستثناءات الرقمية، الهادئة والإشارية NaN (ليس رقمًا).
- قد يؤدي حساب Unum إلى تقديم حدود فضفاضة للغاية من خلال اختيار خوارزمية صحيحة جبريًا ولكنها غير مستقرة عدديًا.
- إن فوائد unum مقارنة بالنقطة العائمة ذات الدقة القصيرة للمشاكل التي تتطلب دقة منخفضة ليست واضحة.
- إن حل المعادلات التفاضلية وتقييم التكاملات باستخدام الأعداد غير المتناهية يضمن الحصول على إجابات صحيحة، ولكن قد لا يكون سريعًا مثل الطرق التي تعمل عادةً.
انظر أيضا
- الحساب الدقيق في كارلسروه (KAA)
- س (تنسيق الأرقام)
- شخصيات مهمة
- التخفيف من أخطاء النقطة العائمة
- كود جاما إلياس (γ)
- نقطة عائمة مدببة (TFP)
مراجع
- ^ Tichy, Walter F. (أبريل 2016). "نهاية الخطأ (العددي): مقابلة مع جون إل. جوستافسون". Ubiquity – Information Everywhere . 2016 (أبريل). Association for Computing Machinery (ACM): 1–14. doi : 10.1145/2913029 .
JG: كلمة "unum" هي اختصار لـ "universal number"، بنفس الطريقة التي تكون بها كلمة "bit" اختصارًا لـ "binary digit".
- ^ ab Gustafson, John L. (2016-02-04) [2015-02-05]. نهاية الخطأ: الحوسبة غير المحدودة. Chapman & Hall / CRC Computational Science . المجلد 24 (الطبعة الثانية المصححة، الطبعة الأولى). CRC Press . ISBN 978-1-4822-3986-7. تم الاسترجاع بتاريخ 2016-05-30 .[1] [2]
- ^ abcd Gustafson, John Leroy ; Yonemoto, Isaac (2017). "Beating Floating Point at its Own Game: Posit Arithmetic". Supercomputing Frontiers and Innovations . 4 (2). مركز النشر لجامعة جنوب الأورال الحكومية، تشيليابينسك، روسيا. doi : 10.14529/jsfi170206 . مؤرشف من الأصل في 2017-11-04 . تم الاسترجاع في 2017-11-04 .
- ^ "البرنامج: جلسة خاصة: المناقشة الكبرى: جون جوستافسون وويليام كاهان". Arith23 : ندوة معهد مهندسي الكهرباء والإلكترونيات الثالثة والعشرون حول الحساب الحاسوبي . وادي السليكون، الولايات المتحدة الأمريكية. 12 يوليو 2016. مؤرشف من الأصل في 30 مايو 2016. تم الاسترجاع في 30 مايو 2016 .
- ^ جوستافسون، جون إل .؛ كاهان، ويليام إم. (2016-07-12). المناقشة الكبرى @ARITH23: جون جوستافسون وويليام كاهان (1:34:41) (فيديو) . تم الاسترجاع في 2016-07-20 .
- ^ ab Kahan, William M. (2016-07-16) [2016-07-12]. "نقد كتاب جون إل. جوستافسون "نهاية الخطأ - حساب Unum" ومنهجه الجذري في الحساب باستخدام الأعداد الحقيقية" (PDF) . سانتا كلارا، كاليفورنيا، الولايات المتحدة الأمريكية: ندوة معهد مهندسي الكهرباء والإلكترونيات حول الحساب الحاسوبي ، ARITH 23. مؤرشف من الأصل (PDF) في 2016-07-25 . تم الاسترجاع في 2016-07-25 .[3]
- ^ جوستافسون، جون ل. (2016-07-12). ""المناقشة الكبرى": ورقة موقف حسابية Unum"" (PDF) . سانتا كلارا، كاليفورنيا، الولايات المتحدة الأمريكية: ندوة معهد مهندسي الكهرباء والإلكترونيات حول الحساب الحاسوبي ، ARITH 23. تم الاسترجاع في 2016-07-20 .[4]
- ^ Tichy, Walter F. (سبتمبر 2016). "Unums 2.0: مقابلة مع جون إل. جوستافسون". Ubiquity.ACM.org . تم الاسترجاع في 2017-01-30 .
بدأت في تسميتهم "unums 2.0"، والذي بدا أنه اسم جيد للمفهوم مثل أي اسم آخر، لكنه في الحقيقة ليس "أحدث إصدار" بقدر ما هو بديل.
- ^ ab Posit Working Group (2022-03-02). "Standard for Posit Arithmetic (2022)" (PDF) . مؤرشف (PDF) من الأصل في 2022-09-26 . تم الاسترجاع في 2022-12-21 .
- ^ جون إل. جوستافسون وإي. يونيموتو. (فبراير 2017) ما وراء النقطة العائمة: الجيل القادم من الحسابات الحاسوبية. [متاح على الإنترنت]: https://www.youtube.com/watch?v=aP0Y1uAA-2Y
- ^ جوستافسون، جون لوروي (2017-10-10). "Posit Arithmetic" (PDF) . مؤرشف من الأصل (PDF) في 2017-11-05 . تم استرجاعه في 2017-11-04 .
- ^ فيلدمان، مايكل (2019-07-08). "نهج جديد قد يغرق حساب النقطة العائمة". www.nextplatform.com . تم الاسترجاع في 2019-07-09 .
- ^ بايرن، مايكل (2016-04-24). "تنسيق رقمي جديد لأجهزة الكمبيوتر قد يقضي على أخطاء التقريب للأبد". Vice . تم الاسترجاع في 2019-07-09 .
- ^ ab Lindstrom, Peter; Lloyd, Scott; Hittinger, Jeffrey (مارس 2018). الترميز العالمي للأعداد الحقيقية: البدائل للنقطة العائمة IEEE . مؤتمر الجيل القادم من الحسابات. المادة 5. ACM. doi :10.1145/3190339.3190344.
- ^ ديفيد مالاسين؛ ألبرتو أ. ديل باريو؛ مانويل برييتو ماتياس (2023-05-11). "Big-PERCIVAL: استكشاف الاستخدام الأصلي للحسابات الاحتمالية ذات 64 بت في الحوسبة العلمية". arXiv : 2305.06946 [cs.AR].
- ^ كوليش، أولريش دبليو ؛ ميرانكر، ويلارد إل. (مارس 1986). "حسابات الحاسوب الرقمي: نهج جديد". مجلة سيام للمراجعة 28 (1). سيام : 1-40. doi :10.1137/1028001.
- ^ S. Chung، "حسابات مفترضة صحيحة يمكن إثباتها باستخدام عدد صحيح كبير بنقطة ثابتة." ACM، 2018.
- ^ J. Chen وZ. Al-Ars وH. Hofstee، "وحدة ضرب المصفوفة للوضعيات في المنطق القابل لإعادة التكوين باستخدام (Open)CAPI." ACM، 2018.
- ^ Z. Lehoczky وA. Szabo وB. Farkas، "تطبيقات برمجيات .NET عالية المستوى لـ Unum Type I وPosit مع تطبيق FPGA المتزامن باستخدام Hastlayer." ACM، 2018.
- ^ S. Langroudi وT. Pandit وD. Kudithipudi، "استدلال التعلم العميق على الأجهزة المضمنة: النقطة الثابتة مقابل النقطة الموضعية". في Energy Efficiency Machine Learning and Cognitive Computing for Embedded Applications (EMC)، 2018. [متاح على الإنترنت]. متاح على: https://sites.google.com/view/asplos-emc2/program
- ^ روهيت تشوراسيا، جون جوستافسون، راهول شريستا، جوناثان نيودورفر، سانجيث نامبيار، كاوستاف نيوجي، فرهاد ميرشانت، راينر لوبرز، “مولد الأجهزة الحسابية ذات المعلمات”. ICCD 2018: 334-341.
- ^ Byrne, Simon (2016-03-29). "تنفيذ Unums في Julia" . تم الاسترجاع في 2016-05-30 .
- ^ "حسابات Unum في جوليا: Unums.jl". GitHub . تم الاسترجاع في 2016-05-30 .
- ^ "تطبيق جوليا لـ Unums: README". GitHub . تم الاسترجاع في 2016-05-30 .
- ^ "أنواع وعمليات Unum (الرقم العالمي): Unums". GitHub . تم الاسترجاع في 2016-05-30 .
- ^ "jwmerrill/Pnums.jl". Github.com . تم الاسترجاع في 2017-01-30 .
- ^ "GitHub - ityonemo/Unum2: Pivot Unums". GitHub . 2019-04-29.
- ^ Ingole, Deepak; Kvasnica, Michal; De Silva, Himeshi; Gustafson, John L. "Reducing Memory Footprints in Explicit Model Predictive Control using Universal Numbers. Submitted to the IFAC World Congress 2017" . تم الاسترجاع في 2016-11-15 .
- ^ إنجول ، ديباك. كفاسنيتسا، ميشال؛ دي سيلفا، هيميشي؛ غوستافسون، جون إل. “نموذج MATLAB الأولي لـ unum (munum)” . تم الاسترجاع 2016/11/15 .
- ^ "GitHub - stillwater-sc/Universal: حساب الأعداد العالمية". GitHub . 2019-06-16.
- ^ من "Cerlane Leong / SoftPosit · GitLab". GitLab .
- ^ "Berkeley SoftFloat". www.jhauser.us .
- ^ كاهان، ويليام م. (2016-07-15). "تعليق البروفيسور دبليو كاهان على "نهاية الخطأ - الحوسبة غير المحدودة" بقلم جون إل. جوستافسون، (2015) مطبعة سي آر سي" (PDF) . مؤرشف (PDF) من الأصل في 2016-08-01 . تم الاسترجاع في 2016-08-01 .
قراءة إضافية
- جوستافسون، جون إل. (مارس 2013). "تحديد حجم الدقة: إطلاق العنان للحوسبة: الحاجة إلى تحديد حجم الدقة لتوفير الطاقة وعرض النطاق الترددي والتخزين والطاقة الكهربائية" (ملف PDF) . مؤرشف من الأصل (ملف PDF) في 2016-06-06 . تم الاسترجاع في 2016-06-06 .
- Brueckner, Rich (2015-03-02). "Slidecast: John Gustafson Explains Energy Efficient Unum Computing". تقرير ريتش . داخل الحوسبة عالية الأداء. مؤرشف من الأصل في 2016-07-10 . تم الاسترجاع في 2016-06-10 .
- جوستافسون، جون إل. (2015). "نهاية الخطأ العددي" (PDF) . مؤرشف من الأصل (PDF) في 2016-06-06 . تم الاسترجاع في 2016-06-06 .
- جوستافسون، جون إل . (2016-06-03) [2016-02-22]. "نهج جذري في الحساب باستخدام الأعداد الحقيقية – Unums الإصدار 2.0" (PPT). مؤرشف من الأصل في 2016-07-10 . تم الاسترجاع في 2016-07-10 .(ملاحظة: تأتي ملفات PDF بدون ملاحظات: [5] [6])
- جوستافسون، جون إل . (2016-06-06). "نهج موفر للطاقة ومتوازي بشكل كبير للأرقام الصحيحة" (PPT). ندوة OCRAR. مؤرشف من الأصل في 2016-07-10 . تم الاسترجاع في 2016-07-10 .[7] [8]
- جوستافسون، جون إل. (2016). "نهج جذري في الحساب بالأعداد الحقيقية" (PDF) . SuperFri.org. مؤرشف من الأصل (PDF) في 2016-07-10 . تم الاسترجاع في 2016-07-10 .
- كوليش، أولريش دبليو (2015). “حساب الفاصل الزمني الحديث من الفواصل الزمنية المغلقة إلى مجموعات متصلة من الأرقام الحقيقية” (PDF) (طبعة مسبقة). معهد الرياضيات والأرقام – معهد كارلسروه للتكنولوجيا (KIT)، ألمانيا. معرف 15/02. أرشفة (PDF) من النسخة الأصلية بتاريخ 2016-07-12 . تم الاسترجاع 2016/07/12 .
- Risse, Thomas (2016-03-10). "Unum – an expedient extension of IEEE 754" (PDF) (عرض تقديمي). جامعة لندن ساوث بانك (LSBU)، المملكة المتحدة: معهد المعلوماتية والأتمتة (IIA)، كلية الهندسة الكهربائية والإلكترونية وعلوم الكمبيوتر، جامعة بريمن للعلوم التطبيقية ، ألمانيا. مؤرشف (PDF) من الأصل في 2016-07-12 . تم الاسترجاع في 2016-07-12 .
- كاهان، ويليام م. (2016-07-15). "تعليقات البروفيسور دبليو كاهان على حسابات SORN" (PDF) . مؤرشف (PDF) من الأصل في 2016-08-01 . تم الاسترجاع في 2016-08-01 .
- Hunhold, Laslo (2016-11-08). تنسيق رقم Unum: الأسس الرياضية والتنفيذ والمقارنة مع أرقام الفاصلة العائمة IEEE 754 (PDF) (أطروحة بكالوريوس). جامعة كولونيا ، معهد الرياضيات. arXiv : 1701.00722v1 . مؤرشف من الأصل (PDF) في 2017-01-07 . تم الاسترجاع في 2016-10-23 .
- ستربينز، بات هـ. (1974-05-01). الحوسبة ذات النقطة العائمة . سلسلة برنتيس هول في الحوسبة الآلية (الطبعة الأولى). إنجلوود كليفس، نيوجيرسي، الولايات المتحدة الأمريكية: برنتيس هول . رقم ISBN 0-13-322495-3.
- Cave, Skip (2016-08-17). "J Programming Language Implementation of 3-bit, 4-bit, 8-bit and 16-bit Precision Unums" . تم الاسترجاع في 2017-05-03 .(رابط تحميل كتاب روجر ستوكس: [9])
- إنجول، ديباك (2017-09-28). التنفيذ المضمن للتحكم التنبؤي بالنموذج الصريح (أطروحة دكتوراه). جامعة سلوفاكيا للتكنولوجيا في براتيسلافا ، سلوفاكيا.
روابط خارجية
- "مؤتمر الجيل القادم للحسابات (CoNGA)". 2017. مؤرشف من الأصل في 2017-11-04 . تم الاسترجاع في 2017-11-04 .
- "SoftPosit". 2018. تم الاسترجاع في 2018-06-13 .
- "مساهمة المجتمع في الكود المصدري". 2018. تم الاسترجاع في 2018-06-13 .
- "تشريح عدد موجب". 2018-04-11 . تم الاسترجاع 2019-08-09 .
