Из Википедии, свободной энциклопедии
  (Перенаправлено из смешанной точности )
Перейти к навигации Перейти к поиску

Арифметика смешанной точности - это форма арифметики с плавающей запятой, которая использует числа различной ширины в одной операции. Обычное использование арифметики смешанной точности - оперировать неточными числами малой ширины и расширять их до большего и более точного представления. Например, два числа с плавающей запятой половинной точности или bfloat16 (16-битные) числа с плавающей запятой могут быть умножены вместе, чтобы получить более точное число с плавающей запятой одинарной точности (32-битное). [1] Таким образом, арифметика со смешанной точностью приближает арифметику с произвольной точностью , хотя и с небольшим количеством возможных значений точности.

Арифметика смешанной точности рекламируется в области машинного обучения , поскольку алгоритмы градиентного спуска могут использовать грубые и эффективные поплавки половинной точности для определенных задач, но могут быть более точными, если они используют более точные, но более медленные числа с плавающей точкой одинарной или двойной точности . Некоторые платформы, в том числе графические процессоры Nvidia и AMD , предоставляют для этой цели арифметические операции со смешанной точностью, используя по возможности грубые числа с плавающей запятой, но при необходимости расширяя их до более высокой точности. [1] [2]

Итерационные алгоритмы (например, градиентный спуск) являются хорошими кандидатами для арифметики смешанной точности. В итеративном алгоритме, таком как квадратный корень, можно сделать грубое интегральное предположение и уточнить его в течение многих итераций до тех пор, пока ошибка точности не сделает его таким, что наименьшее добавление или вычитание к предположению все еще будет слишком грубым, чтобы быть приемлемым ответом. Когда это происходит, точность может быть увеличена до чего-то более точного, что позволяет использовать меньшие приращения для приближения.

В суперкомпьютерах используется арифметика со смешанной точностью, чтобы быть более эффективными в отношении памяти и времени обработки, а также энергопотребления. [1] [2] [3]

Ссылки [ править ]

  1. ^ a b c «Разница между одинарной, двойной, мульти- и смешанной точностью» . Блог NVIDIA . Проверено 30 декабря 2020 .
  2. ^ a b Абдельфаттах, Ахмад; Анцт, Хартвиг; Боман, Эрик Дж .; Карсон, Эрин; Кожан, Терри; Донгарра, Джек; Гейтс, Марк; Грюцмахер, Томас; Higham, Николас Дж .; Ли, Шерри; Линдквист, Нил; Лю, Ян; Ло, Дженнифер; Лущек, Петр; Наяк, Пратик; Пранеш, Шри; Раджаманикам, Шива; Рибизель, Тобиас; Смит, Барри; Свиридович, Касия; Томас, Стивен; Томов, Станимире; Tsai, Yaohung M .; Ямазаки, Ичитаро; Урике Мейер Ян (2020). "Обзор численных методов, использующих арифметику смешанной точности". arXiv : 2007.06674 [ cs.MS ].
  3. ^ Холт, Крис. «В США снова есть самый мощный суперкомпьютер в мире» . Engadget . Проверено 20 июля 2018 года .