Unum (формат числа)

Вариант чисел с плавающей точкой в ​​компьютерах

Unums ( универсальные числа [1] ) — это семейство числовых форматов и арифметики для реализации действительных чисел на компьютере, предложенное Джоном Л. Густафсоном в 2015 году . [2] Они разработаны как альтернатива повсеместному стандарту с плавающей точкой IEEE 754. Последняя версия известна как posit . [3]

Тип I Unum

Первая версия unums, официально известная как Type I unum, была представлена ​​в книге Густафсона «Конец ошибок» как надмножество формата с плавающей точкой IEEE-754. [2] Определяющими особенностями формата Type I unum являются:

  • формат хранения переменной ширины как для мантиссы , так и для экспоненты , и
  • u -бит , который определяет, соответствует ли unum точному числу ( u  = 0) или интервалу между последовательными точными unum ( u  = 1). Таким образом, unum покрывают всю расширенную вещественную числовую прямую [−∞,+∞].

Для вычислений в этом формате Густафсон предложил использовать интервальную арифметику с парой чисел unum, которую он назвал ubound , обеспечивая гарантию того, что полученный интервал содержит точное решение.

Уильям М. Кахан и Густафсон обсуждали unums на конференции Arith23 . [4] [5] [6] [7]

Тип II Unum

Unums типа II были введены в 2016 году [8] как переработанный вариант Unums, который нарушил совместимость с IEEE-754.

Позиция (Тип III Unum)

В феврале 2017 года Густафсон официально представил unums типа III (posit) для фиксированных значений с плавающей точкой и допустимых значений для интервальной арифметики . [3] В марте 2022 года стандарт был ратифицирован и опубликован рабочей группой Posit. [9]

Posits [3] [10] [11] — это аппаратно-дружественная версия unum, в которой решены трудности, с которыми сталкивался исходный тип I unum из-за его переменного размера. По сравнению с float IEEE 754 аналогичного размера, posit предлагают больший динамический диапазон и больше дробных бит для значений с величиной около 1 (но меньше дробных бит для очень больших или очень малых значений), и Густафсон утверждает, что они обеспечивают лучшую точность. [12] [13] Исследования [14] [15] подтверждают, что для некоторых приложений posit с quire превосходят float по точности. Posit имеют превосходную точность в диапазоне около единицы, где происходит большинство вычислений. Это делает его очень привлекательным для текущей тенденции в глубоком обучении, чтобы минимизировать количество используемых бит. Это потенциально помогает любому приложению ускориться, позволяя использовать меньше бит (так как у него больше дробных бит для точности), уменьшая пропускную способность сети и памяти, а также требования к питанию.

Формат n -битного posit обозначается меткой «posit», за которой следуют десятичные цифры n (например, 16-битный формат posit — «posit16») и состоит из четырех последовательных полей:

  1. знак : 1 бит, представляющий беззнаковое целое число s
  2. режим: не менее 2 бит и до ( n  − 1), представляющий беззнаковое целое число r, как описано ниже
  3. экспонента : до 2 бит, доступных после режима, представляющих беззнаковое целое число e
  4. дробь : все оставшиеся биты, доступные после экспоненты, представляющие неотрицательное вещественное двоичное рациональное число f меньше 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. ( ( 1 3 с ) + ф ) × 2 ( 1 2 с ) × ( 4 г + е + с ) {\textstyle ((1-3с)+е)\times 2^{(1-2с)\times (4р+е+с)}}

Примеры

тип
(полож. n )
ДвоичныйЦенитьПримечания
Любой1 0…NaRвсе, что математически не определяется как уникальное действительное число [9]
Любой0 0…0
Любой0 10…1
Любой1 10…−1
Любой0 01 11 0…0,5
Любой0 0…1 2 4 н + 8 {\textstyle 2^{-4n+8}} наименьшее положительное значение
Любой0 1… 2 4 н 8 {\textstyle 2^{4n-8}} наибольшее положительное значение
posit80 0000001 2 24 6.0 × 10 8 {\textstyle 2^{-24}\приблизительно 6,0\times 10^{-8}} наименьшее положительное значение
posit80 1111111 2 24 1.7 × 10 7 {\textstyle 2^{24}\приблизительно 1,7\times 10^{7}} наибольшее положительное значение
posit160 000000000000001 2 56 1.4 × 10 17 {\textstyle 2^{-56}\приблизительно 1,4\times 10^{-17}} наименьшее положительное значение
posit160 111111111111111 2 56 7.2 × 10 16 {\textstyle 2^{56}\приблизительно 7,2\times 10^{16}} наибольшее положительное значение
posit320 0000000000000000000000000000001 2 120 7.5 × 10 37 {\textstyle 2^{-120}\приблизительно 7,5\times 10^{-37}} наименьшее положительное значение
posit320 1111111111111111111111111111111 2 120 1.3 × 10 36 {\textstyle 2^{120}\приблизительно 1,3\times 10^{36}} наибольшее положительное значение

Примечание : ожидается, что 32-битного posit будет достаточно для решения практически всех классов приложений [ необходима ссылка ] .

Квайр

Для каждого типа posit n точности стандарт определяет соответствующий тип "quire" quire n точности , используемый для накопления точных сумм произведений этих posit без округления или переполнения в скалярных произведениях для векторов до 2 31 или более элементов (точный предел равен ). Формат quire представляет собой целое число со знаком в формате дополнения до двух , интерпретируемое как кратное единицам величины, за исключением специального значения с ведущим битом знака 1 и всеми остальными битами, равными 0 (что представляет ). Quire основаны на работе Ульриха В. Кулиша и Уилларда Л. Миранкера . [16] н {\textstyle н} 16 × н {\textstyle 16\умножить на n} 2 23 + 4 н {\displaystyle 2^{23+4n}} 2 16 8 н {\displaystyle 2^{16-8n}} NaR

Действительный

Допустимые значения описываются как режим Unum типа III, который ограничивает результаты заданным диапазоном. [3]

Реализации

Несколько программных и аппаратных решений реализуют posit. [14] [17] [18] [19] [20] Первый полностью параметризованный аппаратный генератор арифметики posit был предложен в 2018 году. [21]

Реализации Unum были исследованы в Julia [22] [23] [24] [25] [26] [27] и MATLAB . [28] [29] Доступна версия C++ [30] с поддержкой любых размеров posit в сочетании с любым количеством битов экспоненты. Быстрая реализация на языке C, SoftPosit, [31], предоставленная исследовательской группой NGA на основе Berkeley SoftFloat, дополняет доступные программные реализации.

Проект

автор

ТипТочностиКвайр

Поддерживать?

СкоростьТестированиеПримечания
ГП-ГПУ

VividSparks

Первый в мире FPGA GPGPU32Да~3,2 ТПОПСИсчерпывающий. Ошибок не обнаружено.RacEr GP-GPU имеет 512 ядер
SoftPosit

А*ЗВЕЗДА

Библиотека C на основе Berkeley SoftFloat

Обертка C++ для переопределения операторов Обертка Python с использованием SWIG SoftPosit

8, 16, 32 опубликованы и завершены;Да~60–110 MPOPS на ядре x86 (Broadwell)8: Исчерпывающий;

16: Исчерпывающий, за исключением FMA, quire 32: Исчерпывающий тест все еще продолжается. Известных ошибок нет.

Лицензия с открытым исходным кодом. Самая быстрая и полная библиотека C для posit на данный момент. Разработана для сравнения подключаемых модулей IEEE float и posit.
posit4.nb

А*ЗВЕЗДА

Блокнот MathematicaВсеДа< 80 КБОПИсчерпывающий для низких точностей. Ошибок не обнаружено.Открытый исходный код (лицензия MIT). Оригинальное определение и прототип. Наиболее полная среда для сравнения IEEE floats и posits. Множество примеров использования, включая линейные решатели
posit-javascript

А*ЗВЕЗДА

Виджет JavaScriptПреобразовать десятичную дробь в положительную 6, 8, 16, 32; создать таблицы 2–17 с помощью es 1–4.Н/ДN/A;
интерактивный виджет
Полностью протестированоГенератор таблиц и конвертация
Универсальный

Stillwater Supercomputing, Inc

Библиотека шаблонов C++

Библиотека C Обертка Python Библиотека Golang

Произвольная точность posit float допустима (p)

Унум тип 1 (п) Унум тип 2 (п)

Произвольные конфигурации печати с программируемой емкостьюposit<4,0> 1 ГПОПС

положение<8,0> 130 MPOPS положение<16,1> 115 MPOPS положение<32,2> 105 MPOPS положение<64,3> 50 MPOPS положение<128,4> 1 MPOPS положение<256,5> 800 KPOPS

Полный набор для проверки произвольных положений

Случайные значения для больших конфигураций posit. Использует индукцию для доказательства того, что nbits+1 является правильным, нет известных ошибок

Открытый исходный код. Лицензия MIT.

Полностью интегрирован с типами C/C++ и автоматическими преобразованиями. Поддерживает полную математическую библиотеку C++ (собственную и преобразование в/из IEEE). Интеграции среды выполнения: MTL4/MTL5, Eigen, Trilinos, HPR-BLAS. Интеграции приложений: G+SMO, FDBB, FEniCS, ODEintV2, TVM.ai. Интеграция с аппаратным ускорителем (Xilinx, Intel, Achronix).

Спидго

Чунг Шин Йи

Библиотека PythonВсеНет~20 МПОПСОбширный; нет известных ошибокОткрытый исходный код (лицензия MIT)
softposit-rkt

Дэвид Тьен

Крепления SoftPosit для ракеткиВсеДаНеизвестныйНеизвестный
sfpy

Билл Зорн

Привязки SoftPosit для PythonВсеДа~20–45 MPOPS на ядре Skylake 4,9 ГГцНеизвестный
позитивная октава

Диего Коэльо

Реализация октавыВсеНетНеизвестныйОграниченное тестирование; ошибок не обнаруженоGNU GPL
Сигмоидальные числа

Айзек Ёнемото

Библиотека ДжулииВсе <32, все ESДаНеизвестныйОшибок не обнаружено (позитивно).

Ошибки деления (действительны)

Использует стандартную библиотеку шаблонов математики Julia, может выполнять матричные и тензорные операции, комплексные числа, БПФ, DiffEQ. Поддержка валидных значений
FastSigmoid

Айзек Ёнемото

Julia и библиотека C/C++8, 16, 32, все ESНетНеизвестныйИзвестная ошибка в 32-битном умноженииИспользуется LLNL в исследованиях шока
SoftPosit.jl

Милан Клёвер

Библиотека ДжулииНа основе softposit;

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 Айзека Ёнемото в настоящее время не поддерживаются.

Поддерживает основные функции линейной алгебры в Julia (умножение матриц, решение матриц, разложение Элгена и т. д.)

ПиСигмовидная

Кен Меркадо

Библиотека PythonВсеДа< 20 МПОПСНеизвестныйОткрытый исходный код (лицензия MIT). Простой в использовании интерфейс. Пример нейронной сети. Поддержка комплексных функций.
cppPosit

Федерико Росси, Эмануэле Руффальди

библиотека С++4–64 (любое значение es); «Версия шаблона от 2 до 63 бит»НетНеизвестныйНесколько основных тестов4 уровня операций, работающих с posit. Специальная поддержка типов NaN (нестандартных)
bfp:За пределами плавающей точки

Клеман Герен

библиотека С++ЛюбойНетНеизвестныйНайдены ошибки; статус исправлений неизвестенПоддерживает + – × ÷ √ обратные, отрицательные, сравниваемые
Verilog.jl

Айзек Ёнемото

Джулия и Верилог8, 16, 32, ЭС=0НетНеизвестныйТщательно протестировано на 8-битной платформе, ошибок не обнаруженоПредназначено для приложений глубокого обучения Сложение, вычитание и умножение только. Была построена проверка концепции матричного умножителя, но ее точность не соответствует спецификации
Арифметика Ломбика

Технологии Ломбик

C# с Hastlayer для генерации оборудования8, 16, 32.

(64 бит в процессе)

Да10 МПОПС

Нажмите здесь для получения дополнительной информации

ЧастичныйТребуются API Microsoft .Net
Deepfloat Джефф Джонсон, FacebookСистемаVerilogЛюбой (параметризованный SystemVerilog)ДаН/Д

(RTL для проектов FPGA/ASIC)

ОграниченныйНе соответствует строго требованиям спецификации.

Поддерживает +,-,/,*. Реализует как логарифмическое позиционирование, так и нормальное, «линейное» позиционирование Лицензия: CC-BY-NC 4.0 в настоящее время

Токийский технологический институтПЛИС16, 32, выдвижнойНет"2 ГГц", не переведено в MPOPSЧастично; известные ошибки округленияПока еще не с открытым исходным кодом
PACoGen: Генератор ядра Posit Arthmetic Маниш Кумар ДжайсвалVerilog HDL для арифметики PositЛюбая точность.

Возможность генерировать любую комбинацию размера слова (N) и размера экспоненты (ES)

НетСкорость проектирования зависит от базовой аппаратной платформы (ASIC/FPGA)Исчерпывающие тесты для 8-битного posit.

Выполняются миллионы случайных тестов для 32-битных POSIT с различными комбинациями ES.

Поддерживает метод округления до ближайшего целого числа.
Винай Саксена, Центр исследований и технологий Роберта Боша, Индия (RTC-IN) и Фархад Мерчант, Рейнско-Вестфальский технический университет АхенаГенератор Verilog для СБИС, ПЛИСВсеНетАналогично числам с плавающей точкой одинакового размераН=8

- ES=2 | N=7,8,9,10,11,12 Выборочные (20000*65536) комбинации для - ES=1 | N=16

Для использования в коммерческих продуктах. Насколько нам известно.

***Первая интеграция posit в RISC-V***

Ядро RISC-V с поддержкой Posit

(Сугандха Тивари, Нил Гала, Честер Ребейро, В.Камакоти, ИИТ МАДРАС)

Реализация BSV (Bluespec System Verilog)32-битный posit с (es=2) и (es=3)НетПроверено с помощью SoftPosit для (es=2) и протестировано с несколькими приложениями для (es=2) и (es=3). Ошибок не обнаружено.Первое полное ядро ​​RISC-V с поддержкой posit. Поддерживает динамическое переключение между (es=2) и (es=3).

Более подробная информация здесь.

ПЕРСИВАЛЬ

Дэвид Малласен

Ядро Posit RISC-V с открытым исходным кодом и возможностью QuirePosit<32,2> с 512-битным наборомДаСкорость проектирования зависит от базовой аппаратной платформы (ASIC/FPGA)Тестирование функциональности каждой инструкции.Ядро RISC-V с поддержкой posit на уровне приложений на основе CVA6, которое может выполнять все инструкции posit, включая объединенные операции quire. PERCIVAL — это первая работа, которая интегрирует полный posit ISA и quire в аппаратное обеспечение. Она позволяет выполнять как собственные инструкции posit, так и стандартные инструкции с плавающей точкой одновременно.
LibPosit

Крис Ломонт

Отдельный файл C# Лицензия MITЛюбой размерНетОбширный; нет известных ошибокОперации: арифметика, сравнения, sqrt, sin, cos, tan, acos, asin, atan, pow, exp, log.
unumjl

REX-вычисления

Версия FPGA процессора VLIW "Neo" с положительным числовым модулем32Нет~1,2 ГПОПСОбширный; нет известных ошибокНикакого деления или квадратного корня. Первая полноценная разработка процессора для замены float на posit.
PNU: Позитивная числовая единица

Каллиго Тех

  • Первая в мире ASIC с поддержкой POSIT, восьмиядерным процессором RISC-V и реализованной технологией Quire.
  • Плата ускорителя PCIe с этим чипом будет готова в июне 2024 г.
  • Полностью программный стек с компиляторами, отладчиком, средой IDE и математическими библиотеками для приложений. Поддерживаются языки C, C++, Python
  • Приложения успешно протестированы — сжатие изображений и видео, ожидается продолжение
  • <32, 2> с поддержкой Quire 512 бит.
  • <64, 3>
Да — полностью поддерживается.500 МГц * 8 ядерЗавершены исчерпывающие тесты для 32- и 64-битных платформ с поддержкой Quire.

Приложения протестированы и доступны для беспрепятственного внедрения www.calligotech.com

Полностью интегрирован с типами C/C++ и автоматическими преобразованиями. Поддерживает полную математическую библиотеку C++ (собственную и преобразование в/из IEEE). Интеграции среды выполнения: GNU Utils, OpenBLAS, CBLAS. Интеграции приложений: в процессе. Расширенная поддержка компиляторов: C/C++, G++, GFortran и LLVM (в процессе).
IBM-TACC

Цзяньюй Чэнь

Специализированная ПЛИС32Да16–64 ГПОПСТолько один известный проверенный случайВыполняет умножение матриц размером 128 на 128 (SGEMM) с использованием quire.
Глубокий PeNSieve

Рауль Мурильо

Библиотека Python (программное обеспечение)8, 16, 32ДаНеизвестныйНеизвестныйСтруктура DNN с использованием posits
Госит

Яап Аартс

Чистая библиотека Go16/1 32/2 (включен общий 32/ES для ES<32) [ необходимо разъяснение ]Нет80 MPOPS для div32/2 и подобных линейных функций. Намного выше для truncate и намного ниже для exp.Фаззинг против C softposit с большим количеством итераций для 16/1 и 32/2. Найдены явные тестовые пограничные случаи.(Лицензия MIT) Реализации, где ES является константой, генерируются в коде. Генератор должен иметь возможность генерировать для всех размеров {8,16,32} и ES меньше размера. Однако те, которые не включены в библиотеку по умолчанию, не тестируются, не подвергаются фаззингу или поддерживаются. Для некоторых операций на 32/ES возможно смешивание и сопоставление ES. Однако это не тестируется.

SoftPosit

SoftPosit [31] — программная реализация posit на основе Berkeley SoftFloat. [32] Позволяет программно сравнивать posit и float. В настоящее время поддерживает

  • Добавлять
  • Вычитать
  • Умножить
  • Разделять
  • Сплавлено-умножить-сложить
  • Слитое скалярное произведение (с печатным листом)
  • Квадратный корень
  • Преобразовать posit в знаковое и беззнаковое целое число
  • Преобразовать знаковое и беззнаковое целое число в положительное
  • Преобразовать posit в другой размер posit
  • Меньше, равно, сравнение меньше, чем равно
  • Округлить до ближайшего целого числа

Вспомогательные функции

  • преобразовать double в posit
  • преобразовать posit в double
  • привести беззнаковое целое число к posit

Он работает для 16-битных posit с одним битом экспоненты и 8-битных posit с нулевым битом экспоненты. Поддержка 32-битных posit и гибкого типа (2-32 бита с двумя битами экспоненты) ожидает проверки. Он поддерживает системы x86_64. Он был протестирован на GNU gcc ( SUSE Linux ) 4.8.5 Apple LLVM версии 9.1.0 (clang-902.0.39.2).

Примеры

Добавить с posit8_t

#include "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

// Преобразуем double в posit 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 );        // Преобразуем обратно в posit posit16_t pZ = q16_to_p16 ( qZ );   // Для проверки ответа double dZ = convertP16ToDouble ( pZ );   

Критика

Уильям М. Кахан, главный архитектор IEEE 754-1985, критикует unums типа I по следующим причинам (некоторые из них рассматриваются в стандартах типа II и типа III): [6] [33]

  • Описание unums обходит стороной использование исчисления для решения физических задач.
  • Unums может быть затратным с точки зрения времени и энергопотребления.
  • Каждое вычисление в пространстве unum, скорее всего, изменит длину бита структуры. Это требует либо распаковки их в пространство фиксированного размера, либо выделения данных, освобождения и сборки мусора во время операций unum, аналогично проблемам работы с записями переменной длины в массовом хранилище.
  • Unums обеспечивает только два вида числовых исключений: тихое и сигнализирующее NaN (Not-a-Number).
  • Вычисление Unum может привести к слишком свободным границам из-за выбора алгебраически корректного, но численно нестабильного алгоритма.
  • Преимущества unum по сравнению с числами с плавающей точкой малой точности для задач, требующих низкой точности, не очевидны.
  • Решение дифференциальных уравнений и вычисление интегралов с помощью unums гарантирует правильные ответы, но может быть не таким быстрым, как методы, которые работают обычно.

Смотрите также

Ссылки

  1. ^ Tichy, Walter F. (апрель 2016 г.). «Конец (числовой) ошибки: интервью с Джоном Л. Густафсоном». Ubiquity – Information Everywhere . 2016 (апрель). Association for Computing Machinery (ACM): 1–14. doi : 10.1145/2913029 . JG: Слово «unum» является сокращением от «универсальное число», так же как слово «bit» является сокращением от «двоичная цифра».
  2. ^ ab Gustafson, John L. (2016-02-04) [2015-02-05]. Конец ошибок: Unum Computing. Chapman & Hall / CRC Computational Science . Том 24 (2-е исправленное издание, 1-е изд.). CRC Press . ISBN 978-1-4822-3986-7. Получено 2016-05-30 .[1] [2]
  3. ^ 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 .
  4. ^ "Программа: Специальная сессия: Великие дебаты: Джон Густафсон и Уильям Кахан". Arith23 : 23-й симпозиум IEEE по компьютерной арифметике . Кремниевая долина, США. 12 июля 2016 г. Архивировано из оригинала 30 мая 2016 г. Получено 30 мая 2016 г.
  5. ^ Густафсон, Джон Л .; Кахан, Уильям М. (2016-07-12). Великий спор @ARITH23: Джон Густафсон и Уильям Кахан (1:34:41) (видео) . Получено 2016-07-20 .
  6. ^ ab Kahan, William M. (2016-07-16) [2016-07-12]. "Критика книги Джона Л. Густафсона THE END of ERROR — Unum Computation и его радикального подхода к вычислениям с действительными числами" (PDF) . Санта-Клара, Калифорния, США: Симпозиум IEEE по компьютерной арифметике , ARITH 23 . Архивировано (PDF) из оригинала 2016-07-25 . Получено 2016-07-25 .[3]
  7. ^ Густафсон, Джон Л. (2016-07-12). ""Великий спор": позиция по арифметике Unum" (PDF) . Санта-Клара, Калифорния, США: Симпозиум IEEE по компьютерной арифметике , ARITH 23. Получено 20 июля 2016 г.[4]
  8. ^ Tichy, Walter F. (сентябрь 2016 г.). «Unums 2.0: интервью с Джоном Л. Густафсоном». Ubiquity.ACM.org . Получено 30.01.2017 . Сначала я назвал их «unums 2.0», что показалось мне столь же хорошим названием для концепции, как и любое другое, но на самом деле это не столько «последний релиз», сколько альтернатива.
  9. ^ ab Posit Working Group (2022-03-02). "Standard for Posit Arithmetic (2022)" (PDF) . Архивировано (PDF) из оригинала 2022-09-26 . Получено 2022-12-21 .
  10. ^ Джон Л. Густафсон и И. Ёнемото. (Февраль 2017) За пределами плавающей точки: компьютерная арифметика следующего поколения. [Онлайн]. Доступно: https://www.youtube.com/watch?v=aP0Y1uAA-2Y
  11. ^ Густафсон, Джон Лерой (2017-10-10). "Posit Arithmetic" (PDF) . Архивировано (PDF) из оригинала 2017-11-05 . Получено 2017-11-04 .
  12. ^ Фельдман, Майкл (2019-07-08). «Новый подход может потопить вычисления с плавающей точкой». www.nextplatform.com . Получено 2019-07-09 .
  13. ^ Бирн, Майкл (24.04.2016). «Новый числовой формат для компьютеров может навсегда уничтожить ошибки аппроксимации». Vice . Получено 09.07.2019 .
  14. ^ ab Линдстром, Питер; Ллойд, Скотт; Хиттингер, Джеффри (март 2018 г.). Универсальное кодирование вещественных чисел: альтернативы IEEE Floating Point . Конференция по арифметике следующего поколения. Статья 5. ACM. doi : 10.1145/3190339.3190344.
  15. ^ Дэвид Малласен; Альберто А. Дель Баррио; Мануэль Прието-Матиас (2024). «Big-PERCIVAL: Исследование собственного использования 64-битной положительной арифметики в научных вычислениях». IEEE Transactions on Computers . 73 (6): 1472–1485. arXiv : 2305.06946 . doi : 10.1109/TC.2024.3377890.
  16. ^ Кулиш, Ульрих В .; Миранкер, Уиллард Л. (март 1986 г.). «Арифметика цифрового компьютера: новый подход». SIAM Rev. 28 (1). SIAM : 1–40. doi :10.1137/1028001.
  17. ^ С. Чунг, «Доказуемо правильная арифметика с фиксированной точкой большого целого числа». ACM, 2018.
  18. ^ J. Chen, Z. Al-Ars и H. Hofstee, «Модуль умножения матриц для позицонов в реконфигурируемой логике с использованием (Open)CAPI». ACM, 2018.
  19. ^ З. Лехоцки, А. Сабо и Б. Фаркаш, «Высокоуровневые программные реализации .NET Unum Type I и Posit с одновременной реализацией FPGA с использованием Hastlayer». ACM, 2018.
  20. ^ 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
  21. ^ Рохит Чаурасия, Джон Густавсон, Рахул Шреста, Джонатан Нойдорфер, Сангит Намбиар, Каустав Нийоги, Фархад Мерчант, Райнер Леуперс, «Аппаратный генератор параметризованной арифметической арифметики». МКГД 2018: 334-341.
  22. ^ Бирн, Саймон (29.03.2016). "Реализация Unums в Julia" . Получено 30.05.2016 .
  23. ^ "Unum арифметика в Julia: Unums.jl". GitHub . Получено 2016-05-30 .
  24. ^ "Реализация Unums Julia: README". GitHub . Получено 2016-05-30 .
  25. ^ "Типы и операции с Unum (универсальными числами): Unums". GitHub . Получено 2016-05-30 .
  26. ^ "jwmerrill/Pnums.jl". Github.com . Получено 2017-01-30 .
  27. ^ "GitHub - ityonemo/Unum2: Pivot Unums". GitHub . 2019-04-29.
  28. ^ Инголе, Дипак; Квасница, Михал; Де Сильва, Химеши; Густафсон, Джон Л. «Сокращение следов памяти в явном модельном предиктивном управлении с использованием универсальных чисел. Представлено на Всемирном конгрессе IFAC 2017» . Получено 15 ноября 2016 г.
  29. ^ Инголе, Дипак; Квасница, Михал; Де Сильва, Химеши; Густафсон, Джон Л. «Прототип MATLAB unum (munum)» . Проверено 15 ноября 2016 г.
  30. ^ "GitHub - stillwater-sc/Universal: Универсальная числовая арифметика". GitHub . 2019-06-16.
  31. ^ ab "Cerlane Leong / SoftPosit · GitLab". GitLab .
  32. ^ "Berkeley SoftFloat". www.jhauser.us .
  33. ^ Кахан, Уильям М. (15.07.2016). "Комментарий профессора В. Кахана к "КОНЦУ ОШИБКИ — Unum Computing" Джона Л. Густафсона, (2015) CRC Press" (PDF) . Архивировано (PDF) из оригинала 01.08.2016 . Получено 01.08.2016 .

Дальнейшее чтение

  • Густафсон, Джон Л. (март 2013 г.). «Точность правильного размера: освобожденные вычисления: необходимость правильной точности для экономии энергии, полосы пропускания, памяти и электроэнергии» (PDF) . Архивировано (PDF) из оригинала 2016-06-06 . Получено 2016-06-06 .
  • Брюкнер, Рич (2015-03-02). "Слайдкаст: Джон Густафсон объясняет энергоэффективные вычисления Unum". Отчет Rich . Внутри HPC. Архивировано из оригинала 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) (препринт). Institut für Angewandte und Numerische Mathematik – Karlsruhe Institute of Technology (KIT), Германия. Идентификатор 15/02. Архивировано (PDF) из оригинала 2016-07-12 . Получено 2016-07-12 .
  • Рисс, Томас (2016-03-10). "Unum – целесообразное расширение IEEE 754" (PDF) (презентация). Лондонский университет Южного берега (LSBU), Великобритания: Институт информатики и автоматизации (IIA), факультет EEE & CS, Бременский университет прикладных наук , Германия. Архивировано (PDF) из оригинала 2016-07-12 . Получено 2016-07-12 .
  • Кахан, Уильям М. (2016-07-15). "Комментарии профессора В. Кахана по арифметике SORN" (PDF) . Архивировано (PDF) из оригинала 2016-08-01 . Получено 2016-08-01 .
  • Hunhold, Laslo (2016-11-08). The Unum Number Format: Mathematical Foundations, Implementation and Comparison to IEEE 754 Floating-Point Numbers (PDF) (бакалаврская работа). Universität zu Köln , Mathematisches Institut. arXiv : 1701.00722v1 . Архивировано (PDF) из оригинала 2017-01-07 . Получено 2016-10-23 .
  • Sterbenz, Pat H. (1974-05-01). Вычисления с плавающей точкой . Серия Prentice-Hall по автоматическим вычислениям (1-е изд.). Englewood Cliffs, Нью-Джерси, США: Prentice Hall . ISBN 0-13-322495-3.
  • Кейв, Скип (2016-08-17). "Реализация на языке программирования J 3-битных, 4-битных, 8-битных и 16-битных точных чисел" . Получено 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 .
Получено с "https://en.wikipedia.org/w/index.php?title=Unum_(формат_числа)&oldid=1251386840"