Один (числовой формат)
Унумы ( универсальные числа [1] ) — это семейство числовых форматов и арифметики для реализации действительных чисел на компьютере, предложенное Джоном Л. Густавсоном в 2015 году. [2] Они разработаны как альтернатива повсеместному стандарту чисел с плавающей запятой IEEE 754 . Последняя версия известна как posits . [3]
Тип I Унум
[ редактировать ]Первая версия unum, формально известная как unum типа I, была представлена в книге Густавсона «Конец ошибки» как надмножество формата чисел с плавающей запятой IEEE-754. [2] Определяющими особенностями формата unum типа I являются:
- формат хранения переменной ширины как для мантиссы , так и для экспоненты , и
- u -бит , который определяет, соответствует ли unum точному числу ( u = 0) или интервалу между последовательными точными числами ( u = 1). Таким образом, unum покрывает всю расширенную линию действительных чисел [−∞,+∞].
Для вычислений в этом формате Густавсон предложил использовать интервальную арифметику с парой unum, которую он назвал ubound , гарантируя, что результирующий интервал содержит точное решение.
Уильям М. Кахан и Густафсон обсуждали унумы на конференции Arith23 . [4] [5] [6] [7]
Тип II Один
[ редактировать ]Унумы типа II были введены в 2016 году. [8] как модернизация Unums, нарушившая совместимость IEEE-754.
Этот раздел нуждается в расширении . Вы можете помочь, добавив к нему . ( июнь 2021 г. ) |
Позит (Тип III Один)
[ редактировать ]В феврале 2017 года Густавсон официально представил unums (posits) типа III для фиксированных значений, подобных плавающей запятой, и допустимых для интервальной арифметики . [3] В марте 2021 года стандарт был ратифицирован и опубликован рабочей группой Posit. [9]
Позиции [3] [10] [11] являются аппаратно-дружественной версией unum, в которой устранены трудности, с которыми столкнулся исходный тип I unum из-за его переменного размера. По сравнению с числами с плавающей точкой IEEE 754 аналогичного размера, posits предлагают больший динамический диапазон и больше дробных битов для значений с величиной, близкой к 1 (но меньше дробных битов для очень больших или очень маленьких значений), и Густафсон утверждает, что они обеспечивают лучшую точность. [12] [13] Исследования [14] [15] подтвердите, что для некоторых приложений числа с плавающей запятой превосходят с плавающей запятой точность чисел . Позитивные значения имеют превосходную точность в диапазоне, близком к единице, где происходит большинство вычислений. Это делает очень привлекательным для текущей тенденции в глубоком обучении минимизировать количество используемых битов. Это потенциально помогает любому приложению ускориться, позволяя использовать меньшее количество битов (поскольку для точности требуется больше дробных битов), уменьшая пропускную способность сети и памяти, а также требования к питанию.
Формат n -битного posit обозначается меткой «posit», за которой следуют десятичные цифры n (например, 16-битный формат posit — «posit16») и состоит из четырех последовательных полей:
- знак : 1 бит, представляющий целое число без знака s
- режим: не менее 2 бит и до ( n − 1), представляющих целое число без знака r, как описано ниже.
- экспонента : до 2 битов, доступных после режима, представляющих целое число без знака e
- дробь : все оставшиеся биты, доступные после экспоненты, представляющие неотрицательное действительное двоичное рациональное f меньше 1.
Поле режима использует унарное кодирование из k одинаковых битов, за которыми следует бит противоположного значения, если какие-либо оставшиеся биты доступны, для представления целого числа без знака r, которое равно - k, если первый бит равен 0, или k - 1, если первый бит равен 1. Поля знака, показателя степени и дроби аналогичны полям знака, показателя степени и мантиссы стандарта IEEE 754 (соответственно), за исключением того, что поля положительного показателя степени и дроби могут отсутствовать или быть усечены и неявно расширены нулями — отсутствующий показатель степени рассматривается. как 00
2 (представляющий 0), однобитовый показатель степени E 1 рассматривается как E10
2 (представляющее целое число 0, если E 1 равно 0, или 2, если E 1 равно 1), а отсутствующая дробь рассматривается как 0.
Две кодировки, в которых все незнаковые биты равны 0, имеют специальную интерпретацию:
- Если знаковый бит равен 1, положительное значение равно
NaR
(«не настоящий») - Если знаковый бит равен 0, положительное значение равно 0 (это беззнаковое значение, единственное значение, для которого
sign
функция возвращает 0)
В противном случае значение posit равно , в котором r масштабируется по степеням 16, e масштабируется по степеням 2, f равномерно распределяет значения между соседними комбинациями ( r , e ), а s регулирует знак симметрично относительно 0.
Примеры
[ редактировать ]тип (поставьте н ) |
Двоичный | Ценить | Примечания |
---|---|---|---|
Любой | 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-битного posit будет достаточно для решения практически всех классов приложений. [ нужна ссылка ] .
Квайр
[ редактировать ]Для каждой позиции n тип точности , стандарт определяет соответствующий тип «quire» quire n точности , используется для накопления точных сумм произведений этих чисел без округления или переполнения в скалярном произведении для векторов до 2 31 или более элементов (точный предел ). Формат quire представляет собой целое число со знаком, дополненное до двух , интерпретируемое как кратное единицам величины. за исключением специального значения с ведущим битом знака 1 и всеми остальными битами, равными 0 (что представляет NaR
). Quires основан на работах Ульриха В. Кулиша и Уилларда Л. Миранкера . [16]
Действительный
[ редактировать ]Допустимые значения описываются как режим Unum типа III, который ограничивает результаты в заданном диапазоне. [3]
Реализации
[ редактировать ]Несколько программных и аппаратных решений реализуют posits. [14] [17] [18] [19] [20] Первый полный параметризованный аппаратный генератор позиционной арифметики был предложен в 2018 году. [21]
Реализации Unum были исследованы в Julia. [22] [23] [24] [25] [26] [27] и МАТЛАБ . [28] [29] С ++ Версия [30] доступна поддержка любых размеров чисел в сочетании с любым количеством битов экспоненты. Быстрая реализация на C, SoftPosit, [31] предоставленный исследовательской группой NGA на базе Berkeley SoftFloat, дополняет доступные программные реализации.
Проект
автор |
Тип | Точность | Квайр
Поддерживать? |
Скорость | Тестирование | Примечания |
---|---|---|---|---|---|---|
ГП-графический процессор
Яркие Искры |
Первый в мире FPGA GPGPU | 32 | Да | ~3,2 тыс. тонн в секунду | Исчерпывающий. Никаких известных ошибок. | RaceEr GP-GPU имеет 512 ядер. |
СофтПосит
А*СТАР |
Библиотека C на основе Berkeley SoftFloat
Оболочка C++ для переопределения операторов Оболочка Python с использованием SWIG SoftPosit |
8, 16, 32 опубликованы и завершены; | Да | От ~60 до 110 MPOPS на ядре x86 (Broadwell) | 8: Исчерпывающий;
16: Исчерпывающий список, кроме FMA, требуется 32: Исчерпывающее испытание все еще продолжается. Никаких известных ошибок. |
Лицензия с открытым исходным кодом. Самая быстрая и полная библиотека C для posits на данный момент. Разработан для подключаемого модуля сравнения чисел с плавающей запятой и положительных чисел IEEE. |
posit4.nb
А*СТАР |
Блокнот математики | Все | Да | < 80 тыс. ПОПС | Исчерпывающий для низкой точности. Никаких известных ошибок. | Открытый исходный код (лицензия MIT). Исходное определение и прототип. Наиболее полная среда для сравнения чисел с плавающей запятой и положительных чисел IEEE. Множество примеров использования, включая линейные решатели. |
posit-javascript
А*СТАР |
Виджет JavaScript | Преобразовать десятичное число в число 6, 8, 16, 32; сгенерируйте таблицы 2–17 с помощью es 1–4. | Н/Д | Н/Д; интерактивный виджет |
Полностью протестирован | Генератор таблиц и преобразование |
Универсальный
Стиллуотер Суперкомпьютер, Инк. |
библиотека шаблонов C++
библиотека C Python-обертка библиотека Голанга |
Допустимая posit float произвольной точности (p)
Один тип 1 (п) Один тип 2 (п) |
Произвольные конфигурации запросов с программируемой мощностью | posit<4,0> 1 GPOPS
posit<8,0> 130 MPOPS posit<16,1> 115 MPOPS posit<32,2> 105 MPOPS позиция<64,3> 50 МПОПС позиция<128,4> 1 МПОПС позиция<256,5> 800 КПОПС |
Полный пакет проверки для произвольных позиций
Случайные значения для больших конфигураций posit. Использует индукцию, чтобы доказать правильность nbits+1 нет известных ошибок |
Открытый исходный код. С лицензией.
Полная интеграция с типами C/C++ и автоматическими преобразованиями. Поддерживает полную математическую библиотеку C++ (собственную и преобразование в/из IEEE). Интеграция во время выполнения: MTL4/MTL5, Eigen, Trilinos, HPR-BLAS. Интеграция приложений: G+SMO, FDBB, FEniCS, ODEintV2, TVM.ai. Интеграция аппаратных ускорителей (Xilinx, Intel, Achronix). |
Спидго
Чунг Шин Йи |
библиотека Python | Все | Нет | ~20 МПОПС | Обширный; нет известных ошибок | Открытый исходный код (С лицензией) |
softposit-rkt
Дэвид Тьен |
Крепления SoftPosit для ракетки | Все | Да | Unknown | Unknown | |
sfpy
Билл Зорн |
Привязки SoftPosit для Python | Все | Да | ~20–45 MPOPS на ядре Skylake 4,9 ГГц | Unknown | |
позицтава
Диего Коэльо |
Октавная реализация | Все | Нет | Unknown | Ограниченное тестирование; нет известных ошибок | GNU GPL |
Сигмовидные числа
Исаак Йонемото |
Библиотека Юлии | Все <32, все ES | Да | Unknown | Нет известных ошибок (позитов).
Ошибки деления (действительны) |
Использует стандартную библиотеку шаблонов математики Julia, может выполнять матричные и тензорные операции, комплексные числа, FFT, DiffEQ. Поддержка валидностей |
FastSigmoid
Исаак Йонемото |
Джулия и библиотека C/C++ | 8, 16, 32, все ES | Нет | Unknown | Известная ошибка в 32-битном умножении | Используется LLNL в исследованиях шока. |
SoftPosit.jl
Милан Клёвер |
Библиотека Юлии | На основе softposit;
8-битный (es=0..2) 16-битный (es=0..2) 24-битный (es=1..2) 32-битный (эс=2) |
Да | Похоже на:
А*СТАР «СофтПозит» (Серлан Леонг) |
Да:
Позит (8,0), Позит (16,1), Позит (32,2) Другие форматы не обладают полной функциональностью. |
Открытый исходный код. Проблемы и предложения на GitHub.
Этот проект был разработан в связи с тем, что SigmoidNumbers и FastSigmoid Исаака Йонемото в настоящее время не поддерживаются. Поддерживает основные функции линейной алгебры в Julia (умножение матриц, решение матриц, разложение Элгена и т. д.). |
PyСигмоид
Кен Меркадо |
библиотека Python | Все | Да | < 20 МПОПС | Unknown | Открытый исходный код (лицензия MIT). Простой в использовании интерфейс. Пример нейронной сети. Комплексная поддержка функций. |
cppPosit
Федерико Росси, Эмануэле Руффальди |
библиотека С++ | от 4 до 64 (любое значение es); «Версия шаблона от 2 до 63 бит» | Нет | Unknown | Несколько основных тестов | 4 уровня операций, работающих с позитивами. Специальная поддержка типов NaN (нестандартная) |
bfp: за пределами плавающей точки
Клеман Герен |
библиотека С++ | Любой | Нет | Unknown | Обнаружены ошибки; статус исправлений неизвестен | Поддерживает + – × ÷ √ взаимное, отрицание, сравнение |
Verilog.jl
Исаак Йонемото |
Юлия и Верилог | 8, 16, 32, ES=0 | Нет | Unknown | Всесторонне протестировано на 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 Core Маниш Кумар Джайсвал | Verilog HDL для Posit-арифметики | Любая точность.
Способен генерировать любую комбинацию размера слова (N) и размера экспоненты (ES). |
Нет | Скорость проектирования зависит от базовой аппаратной платформы (ASIC/FPGA). | Исчерпывающие тесты для 8-битного положительного результата.
Выполняются многомиллионные случайные тесты для 32-битных значений с различными комбинациями ES. |
Он поддерживает метод округления до ближайшего. |
Винай Саксена, Центр исследований и технологий, Роберт Бош, Индия (RTC-IN), и Фархад Мерчант, RWTH Ахенский университет | Генератор Verilog для СБИС, ПЛИС | Все | Нет | Аналогично числам с плавающей запятой того же битового размера. | Н=8
- ES=2 | Н=7,8,9,10,11,12 Выборочные (20000*65536) комбинации для - ES=1 | Н=16 |
Для использования в коммерческих продуктах. Насколько нам известно.
***Первая интеграция posits в RISC-V*** |
Ядро RISC-V с поддержкой Posit
(Сугандха Тивари, Нил Гала, Честер Ребейро, В. Камакоти, ИИТ МАДРАС) |
Реализация BSV (Bluespec System Verilog) | 32-битное положительное значение с (es=2) и (es=3) | Нет | — | Проверено с помощью SoftPosit для (es=2) и протестировано с несколькими приложениями для (es=2) и (es=3). Никаких известных ошибок. | Первое полное ядро RISC-V с поддержкой posit. Поддерживает динамическое переключение между (es=2) и (es=3).
Дополнительная информация здесь. |
ПЕРСИВАЛЬ
Дэвид Малласен |
Ядро Posit RISC-V с открытым исходным кодом и возможностями Quire | Posit<32,2> с 512-битным запросом | Да | Скорость проектирования зависит от базовой аппаратной платформы (ASIC/FPGA). | Тестирование функциональности каждой инструкции posit. | Ядро RISC-V с поддержкой posit на уровне приложения на базе CVA6, которое может выполнять все инструкции posit, включая операции quire Fusion. PERCIVAL — это первая работа, которая полностью интегрирует posit ISA и quire в аппаратном обеспечении. Он позволяет одновременно выполнять как posit-инструкции, так и стандартные инструкции с плавающей запятой. |
LibPosit
Крис Ломонт |
Один файл, лицензия C# MIT. | Любой размер | Нет | Обширный; нет известных ошибок | Упс: арифметика, сравнения, sqrt, sin, cos, tan, acos, asin, atan, pow, exp, log | |
unumjl
РЕКС Компьютеры |
FPGA-версия процессора VLIW «Neo» с позиционным числовым блоком | 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 (в разработке). |
IBM-TACC
Цзяньюй Чен |
ПЛИС специального назначения | 32 | Да | 16–64 ГПОПС | Протестирован только один известный случай | Выполняет матричное умножение 128 на 128 (SGEMM) с использованием quire. |
Глубокое решето
Рауль Мурильо |
Библиотека Python (программное обеспечение) | 8, 16, 32 | Да | Unknown | Unknown | Структура DNN, использующая posits |
Gosit
Яап Аартс |
Библиотека чистого Go | 16/1 32/2 (в комплект входит общий 32/ES для ES<32) [ нужны разъяснения ] | Нет | 80 MPOPS для div32/2 и подобных линейных функций. Намного выше для усечения и намного ниже для опыта. | Фаззинг softposit на C с множеством итераций для 16/1 и 32/2. Обнаружены крайние случаи при явном тестировании. | (лицензия MIT) В реализациях, где ES является постоянным, генерируется код. Генератор должен иметь возможность генерировать все размеры {8,16,32} и ES ниже этого размера. Однако те, которые не включены в библиотеку по умолчанию, не тестируются, не модифицируются и не поддерживаются. Для некоторых операций на 32/ES возможно смешивание и сопоставление ES. Однако это не проверено. |
СофтПосит
[ редактировать ]СофтПосит [31] представляет собой программную реализацию posits на основе Berkeley SoftFloat. [32] Это позволяет программному обеспечению сравнивать posits и float. В настоящее время он поддерживает
- Добавлять
- Вычесть
- Умножить
- Разделять
- Сплавленное-умножение-сложение
- Сплавленное скалярное произведение (с дейром)
- Квадратный корень
- Преобразование posit в целое число со знаком и без знака
- Преобразование целого числа со знаком и без знака в posit
- Преобразовать posit в другой размер posit
- Меньше, равно, меньше, чем равно сравнение
- Округлить до ближайшего целого числа
Вспомогательные функции
[ редактировать ]- преобразовать двойное значение в положительное
- преобразовать posit в double
- привести целое число без знака к посту
Он работает для 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
#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);
// To check answer by converting it to double
double dZ = convertP8ToDouble(pZ);
printf("dZ: %.15f\n", dZ);
// To print result in binary (warning: non-portable code)
uint8_t uiZ = castUI8(pZ);
printBinary((uint64_t*)&uiZ, 8);
return 0;
}
Слитое скалярное произведение с quire16_t
// Convert double to 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;
// Set quire to 0
qZ = q16_clr(qZ);
// Accumulate products without roundings
qZ = q16_fdp_add(qZ, pA, pB);
qZ = q16_fdp_add(qZ, pC, pD);
// Convert back to posit
posit16_t pZ = q16_to_p16(qZ);
// To check answer
double dZ = convertP16ToDouble(pZ);
Критика
[ редактировать ]Уильям М. Кахан, главный архитектор IEEE 754-1985, критикует unum типа I на следующих основаниях (некоторые из них рассматриваются в стандартах типа II и типа III): [6] [33]
- Описание unums обходит стороной использование исчисления для решения физических задач.
- Unums может быть дорогостоящим с точки зрения времени и энергопотребления.
- Каждое вычисление в unum-пространстве может изменить битовую длину структуры. Для этого требуется либо распаковать их в пространство фиксированного размера, либо выделить, освободить данные и собрать мусор во время операций unum, аналогично проблемам, связанным с записями переменной длины в запоминающем устройстве большой емкости.
- Unums предоставляет только два типа числовых исключений: тихое и сигнальное NaN (Not-a-Number).
- Вычисление Unum может привести к слишком широким ограничениям при выборе алгебраически правильного, но численно нестабильного алгоритма.
- Преимущества unum перед плавающей запятой короткой точности для задач, требующих низкой точности, не очевидны.
- Решение дифференциальных уравнений и вычисление интегралов с помощью unums гарантируют правильные ответы, но могут быть не такими быстрыми, как методы, которые обычно работают.
См. также
[ редактировать ]- Точная арифметика Карлсруэ (КАА)
- Q (формат числа)
- Значительные цифры
- Устранение ошибок с плавающей запятой
- Гамма-код Элиаса (γ)
- Коническая с плавающей запятой (TFP)
Ссылки
[ редактировать ]- ^ Тичи, Уолтер Ф. (апрель 2016 г.). «Конец (числовой) ошибки: интервью с Джоном Л. Густавсоном» . Вездесущность – информация повсюду . 2016 (апрель). Ассоциация вычислительной техники (ACM): 1–14. дои : 10.1145/2913029 .
ДГ: Слово «unum» является сокращением от «универсального числа», точно так же, как слово «бит» является сокращением от «двоичная цифра».
- ^ Jump up to: а б Густафсон, Джон Л. (04 февраля 2016 г.) [05 февраля 2015 г.]. Конец ошибки: Unum Computing . Чепмен и Холл / CRC Вычислительная наука . Том. 24 (2-е исправленное издание, 1-е изд.). ЦРК Пресс . ISBN 978-1-4822-3986-7 . Проверено 30 мая 2016 г. [1] [2]
- ^ Jump up to: а б с д Густавсон, Джон Лерой ; Ёнемото, Исаак (2017). «Преодоление чисел с плавающей запятой в своей собственной игре: позитная арифметика» . Перспективы суперкомпьютеров и инновации . 4 (2). Издательский центр Южно-Уральского государственного университета, Челябинск, Россия. дои : 10.14529/jsfi170206 . Архивировано из оригинала 4 ноября 2017 г. Проверено 4 ноября 2017 г.
- ^ «Программа: Специальная сессия: Великие дебаты: Джон Густафсон и Уильям Кахан» . Arith23 : 23-й симпозиум IEEE по компьютерной арифметике . Силиконовая долина, США. 12 июля 2016 г. Архивировано из оригинала 30 мая 2016 г. Проверено 30 мая 2016 г.
- ^ Густафсон, Джон Л .; Кахан, Уильям М. (12 июля 2016 г.). Великие дебаты @ARITH23: Джон Густафсон и Уильям Кахан (1:34:41) (видео) . Проверено 20 июля 2016 г.
- ^ Jump up to: а б Кахан, Уильям М. (16 июля 2016 г.) [12 июля 2016 г.]. «Критика книги Джона Л. Густафсона КОНЕЦ ОШИБКИ — Unum Computation и его радикальный подход к вычислениям с действительными числами » (PDF) . Санта-Клара, Калифорния, США: Симпозиум IEEE по компьютерной арифметике , ARITH 23 . Архивировано (PDF) из оригинала 25 июля 2016 г. Проверено 25 июля 2016 г. [3]
- ^ Густафсон, Джон Л. (12 июля 2016 г.). « «Великие дебаты»: позиционный документ по арифметике Unum» (PDF) . Санта-Клара, Калифорния, США: Симпозиум IEEE по компьютерной арифметике , ARITH 23 . Проверено 20 июля 2016 г. [4]
- ^ Тичи, Уолтер Ф. (сентябрь 2016 г.). «Unums 2.0: Интервью с Джоном Л. Густафсоном» . Ubiquity.ACM.org . Проверено 30 января 2017 г.
Я начал называть их «unums 2.0», что казалось таким же хорошим названием для этой концепции, как и любое другое, но на самом деле это не столько «последняя версия», сколько альтернатива.
- ^ Jump up to: а б Рабочая группа Позита (2 марта 2022 г.). «Стандарт позитной арифметики (2022 г.)» (PDF) . Архивировано (PDF) из оригинала 26 сентября 2022 г. Проверено 21 декабря 2022 г.
- ^ Джон Л. Густавсон и И. Йонемото. (Февраль 2017 г.) За пределами плавающей точки: компьютерная арифметика нового поколения. [Онлайн]. Доступно: https://www.youtube.com/watch?v=aP0Y1uAA-2Y .
- ^ Густафсон, Джон Лерой (10 октября 2017 г.). «Позитическая арифметика» (PDF) . Архивировано (PDF) из оригинала 5 ноября 2017 г. Проверено 4 ноября 2017 г.
- ^ Фельдман, Майкл (08 июля 2019 г.). «Новый подход может привести к провалу вычислений с плавающей запятой» . www.nextplatform.com . Проверено 9 июля 2019 г.
- ^ Бирн, Майкл (24 апреля 2016 г.). «Новый числовой формат для компьютеров может навсегда устранить ошибки аппроксимации» . Порок . Проверено 9 июля 2019 г.
- ^ Jump up to: а б Линдстрем, Питер; Ллойд, Скотт; Хиттингер, Джеффри (март 2018 г.). Универсальное кодирование действительных чисел: альтернативы IEEE с плавающей запятой . Конференция по арифметике нового поколения. Искусство. 5. АКМ. дои : 10.1145/3190339.3190344 .
- ^ Дэвид Малласен; Альберто А. Дель Баррио; Мануэль Прието-Матиас (11 мая 2023 г.). «Большой-ПЕРСИВАЛЬ: изучение собственного использования 64-битной положительной арифметики в научных вычислениях». arXiv : 2305.06946 [ cs.AR ].
- ^ Кулиш, Ульрих В .; Миранкер, Уиллард Л. (март 1986 г.). «Арифметика цифрового компьютера: новый подход». СИАМ Ред. 28 (1). СИАМ : 1–40. дои : 10.1137/1028001 .
- ^ С. Чанг, «Доказуемо правильная позиционная арифметика с большим целым числом с фиксированной запятой». АКМ, 2018.
- ^ Дж. Чен, З. Аль-Арс и Х. Хофсти, «Единица умножения матриц для позиций в реконфигурируемой логике с использованием (Open) CAPI». АКМ, 2018.
- ^ З. Лехочки, А. Сабо и Б. Фаркас, «Высокоуровневые программные реализации .NET Unum Type I и Posit с одновременной реализацией FPGA с использованием Hastlayer». АКМ, 2018.
- ^ С. Лангруди, Т. Пандит и Д. Кудитипуди, «Вывод глубокого обучения на встроенных устройствах: фиксированная точка против положительной». В книге «Энергоэффективное машинное обучение и когнитивные вычисления для встраиваемых приложений (EMC), 2018. [Онлайн]. Доступно: https://sites.google.com/view/asplos-emc2/program.
- ^ Рохит Чаурасия, Джон Густавсон, Рахул Шреста, Джонатан Нойдорфер, Сангит Намбиар, Каустав Нийоги, Фархад Мерчант, Райнер Лейперс, « Аппаратный генератор параметризованной арифметической арифметики ». ICCD 2018: 334-341.
- ^ Бирн, Саймон (29 марта 2016 г.). «Реализация Unums в Julia» . Проверено 30 мая 2016 г.
- ^ «Унум-арифметика в Julia: Unums.jl» . Гитхаб . Проверено 30 мая 2016 г.
- ^ «Юлия. Реализация Unums: README» . Гитхаб . Проверено 30 мая 2016 г.
- ^ «Типы и операции Unum (универсального числа): Unums» . Гитхаб . Проверено 30 мая 2016 г.
- ^ "jwmerrill/Pnums.jl" . Гитхаб.com . Проверено 30 января 2017 г.
- ^ «GitHub — ityonemo/Unum2: Pivot Unums» . Гитхаб . 29 апреля 2019 г.
- ^ Инголе, Дипак; Квасница, Михал; Де Сильва, Химеши; Густафсон, Джон Л. «Уменьшение объема памяти при явном прогнозирующем управлении моделями с использованием универсальных чисел. Представлено на Всемирный конгресс IFAC 2017» . Проверено 15 ноября 2016 г.
- ^ Инголе, Дипак; Квасница, Михал; Де Сильва, Химеши; Густафсон, Джон Л. «Прототип MATLAB Unum » Проверено 1 ноября 2016 г.
- ^ «GitHub — Stillwater-sc/Universal: универсальная арифметика чисел» . Гитхаб . 16.06.2019.
- ^ Jump up to: а б «Серлан Леонг/SoftPosit · GitLab» . ГитЛаб .
- ^ «Беркли СофтФлоат» . www.jhauser.us .
- ^ Кахан, Уильям М. (15 июля 2016 г.). «Комментарий профессора В. Кахана к книге Джона Л. Густафсона «Конец ошибки — Unum Computing», (2015) CRC Press» (PDF) . Архивировано (PDF) из оригинала 1 августа 2016 г. Проверено 1 августа 2016 г.
Дальнейшее чтение
[ редактировать ]- Густафсон, Джон Л. (март 2013 г.). «Правильный выбор точности: свободные вычисления: необходимость правильного размера точности для экономии энергии, пропускной способности, хранилища и электроэнергии» (PDF) . Архивировано (PDF) из оригинала 6 июня 2016 г. Проверено 6 июня 2016 г.
- Брюкнер, Рич (2 марта 2015 г.). «Слайдкаст: Джон Густафсон объясняет энергоэффективные вычисления Unum» . Богатый отчет . Внутри HPC. Архивировано из оригинала 10 июля 2016 г. Проверено 10 июня 2016 г.
- Густафсон, Джон Л. (2015). «Конец численной ошибки» (PDF) . Архивировано (PDF) из оригинала 6 июня 2016 г. Проверено 6 июня 2016 г.
- Густафсон, Джон Л. (3 июня 2016 г.) [22 февраля 2016 г.]. «Радикальный подход к вычислениям с действительными числами - Unums версия 2.0» (PPT). Архивировано из оригинала 10 июля 2016 г. Проверено 10 июля 2016 г. (Примечание. PDF-файлы поставляются без примечаний: [5] [6] )
- Густафсон, Джон Л. (6 июня 2016 г.). «Энергоэффективный и массовый параллельный подход к действительным числам» (PPT). Семинар ОКРАР. Архивировано из оригинала 10 июля 2016 г. Проверено 10 июля 2016 г. [7] [8]
- Густафсон, Джон Л. (2016). «Радикальный подход к вычислениям с действительными числами» (PDF) . SuperFri.org. Архивировано (PDF) из оригинала 10 июля 2016 г. Проверено 10 июля 2016 г.
- Кулиш, Ульрих В. (2015). «Современная интервальная арифметика от закрытых интервалов до связанных наборов действительных чисел» (PDF) (препринт). Institut für Angewandte und Numerische Mathematik – Технологический институт Карлсруэ (KIT), Германия. ID 15/02. Архивировано (PDF) из оригинала 12 июля 2016 г. Проверено 12 июля 2016 г.
- Риссе, Томас (10 марта 2016 г.). «Unum – целесообразное расширение IEEE 754» (PDF) (презентация). Лондонский университет Саут-Бэнк (LSBU), Великобритания: Институт информатики и автоматизации (IIA), факультет EEE и CS, Бременский университет прикладных наук , Германия. Архивировано (PDF) из оригинала 12 июля 2016 г. Проверено 12 июля 2016 г.
- Кахан, Уильям М. (15 июля 2016 г.). «Комментарии профессора В. Кахана по арифметике SORN» (PDF) . Архивировано (PDF) из оригинала 1 августа 2016 г. Проверено 1 августа 2016 г.
- Хунхолд, Ласло (08 ноября 2016 г.). Формат чисел Unum: математические основы, реализация и сравнение с числами с плавающей запятой IEEE 754 (PDF) (бакалаврская диссертация). Университет Кёльна , Математический институт. arXiv : 1701.00722v1 . Архивировано (PDF) из оригинала 7 января 2017 г. Проверено 23 октября 2016 г.
- Стербенс, Пэт Х. (1 мая 1974 г.). Вычисление с плавающей запятой . Серия Прентис-Холла по автоматическим вычислениям (1-е изд.). Энглвуд Клиффс, Нью-Джерси, США: Прентис Холл . ISBN 0-13-322495-3 .
- Кейв, Скип (17 августа 2016 г.). «Язык программирования J. Реализация 3-битных, 4-битных, 8-битных и 16-битных точных чисел Unum» . Проверено 3 мая 2017 г. (Ссылка для скачивания Роджера Стоукса: [9] )
- Инголе, Дипак (28 сентября 2017 г.). Встроенная реализация явной модели прогнозирующего управления (кандидатская диссертация). Словацкий технологический университет в Братиславе , Словакия.
Внешние ссылки
[ редактировать ]- «Конференция по арифметике следующего поколения (CoNGA)» . 2017. Архивировано из оригинала 04.11.2017 . Проверено 4 ноября 2017 г.
- «СофтПосит» . 2018 . Проверено 13 июня 2018 г.
- «Вклад сообщества в исходный код» . 2018 . Проверено 13 июня 2018 г.
- «Анатомия целого числа» . 11 апреля 2018 г. Проверено 9 августа 2019 г.