Привет! Сегодня давайте поговорим о том, как современные вычисления на GPU стали более гибкими и эффективными благодаря различным форматам чисел с плавающей запятой (FP64, FP32, FP16, BFLOAT16 и FP8Читать полностью »
Рубрика «числа с плавающей запятой»
FP32, FP16, BF16 и FP8 — разбираемся в основных типах чисел с плавающей запятой
2024-09-30 в 11:33, admin, рубрики: BF16, floating point, fp16, fp32, FP64, fp8, плавающая запятая, формат с плавающей запятой, числа с плавающей запятой16-, 8- и 4-битные форматы чисел с плавающей запятой
2023-11-27 в 9:55, admin, рубрики: python, разработка, числа с плавающей запятойАлгоритм Кэхэна: как получить точную разность произведений
2019-11-14 в 7:51, admin, рубрики: double, float, fma, simd, Алгоритмы, двойная точность, математика, погрешности округления, числа с плавающей запятойНедавно я вернулся к анализу погрешностей чисел с плавающей запятой, чтобы усовершенствовать некоторые детали в следующей редакции книги Physically Based Rendering. Числа с плавающей запятой — интересная область вычислений, полная сюрпризов (хороших и плохих), а также хитрых трюков, позволяющих избавиться от неприятных неожиданностей.
В процессе работы я наткнулся на этот пост на StackOverflow, из которого узнал об изящном алгоритме точного вычисления .
Но прежде чем приступать к алгоритму, нужно понять, что же такого хитрого в выражении ? Возьмём , , и . (Это реальные значения, которые получились у меня во время запуска pbrt.) При 32-битных значениях float получаем: и . Выполняем вычитание, и получаем . Но если выполнить вычисления с двойной точностью, а в конце преобразовать их во float, то получится . Что произошло?
Проблема в том, что значение каждого произведения может сильно выйти за нижнюю границу , где расстояние между представимыми значениями с плавающей запятой очень велико — 64. То есть при округлении и по отдельности до ближайшего представимого float, они превращаются в числа, кратные 64. В свою очередь, их разность будет кратной 64, и не останется никакой надежды, что она станет к ближе, чем . В нашем случае результат оказался ещё дальше из-за того, как два произведения были округлены в . Мы напрямую столкнёмся со старым добрым катастрофическим сокращением1.
Читать полностью »
И все-таки, почему Posit являются достойной альтернативой IEEE 754
2019-09-18 в 15:47, admin, рубрики: c++, float, posit, quire, высокая производительность, плавающая запятая, плавающая точка, Программирование, суперкомпьютеры, числа с плавающей запятойМесяц Posit объявлен на Хабре открытым, а значит я не могу пройти мимо и проигнорировать обрушившуюся на них критику. В предыдущих сериях:
Новый подход может помочь нам избавиться от вычислений с плавающей запятой
Posit-арифметика: победа над floating point на его собственном поле. Часть 1
Posit-арифметика: победа над floating point на его собственном поле. Часть 2
Испытания Posit по-взрослому
Думаю многие из вас могут с ходу вспомнить хотя бы один случай из истории, когда революционные идеи на момент своего становления наталкивались на неприятие сообществом экспертов. Как правило, виной такому поведению выступает обширный багаж уже накопленных знаний, не позволяющий взглянуть на старую проблему в новом свете. Таким образом, новая идея проигрывает по характеристикам устоявшимся подходам, ведь оценивается она только теми метриками, которые считались важными на предыдущем этапе развития.
Именно с таким неприятием на сегодняшний день сталкивается формат Posit: критикующие зачастую просто “не туда смотрят“ и даже банально неправильно используют Posit в своих экспериментах. В данной статье я попытаюсь объяснить почему.Читать полностью »