Арифметика смешанной точности
Арифметика смешанной точности — это форма арифметики с плавающей запятой , в которой за одну операцию используются числа различной ширины.
Арифметика
[ редактировать ]Обычно арифметика смешанной точности используется для работы с неточными числами небольшой ширины и расширения их до более крупного и точного представления. Например, два числа с плавающей запятой половинной точности или bfloat16 (16 бит) можно умножить вместе, чтобы получить более точное число с плавающей запятой одинарной точности (32 бита). [1] Таким образом, арифметика смешанной точности приближается к арифметике произвольной точности , хотя и с небольшим количеством возможных точности.
Арифметика смешанной точности используется в области машинного обучения , поскольку алгоритмы градиентного спуска могут использовать грубые и эффективные числа с плавающей запятой половинной точности для определенных задач, но могут быть более точными, если они используют более точные, но более медленные числа с плавающей запятой одинарной точности. Некоторые платформы, в том числе процессоры и графические процессоры Nvidia , Intel и AMD , предоставляют для этой цели арифметику смешанной точности, используя грубые числа с плавающей запятой, когда это возможно, но при необходимости расширяя их до более высокой точности. [1] [2]
Итеративные алгоритмы (например, градиентный спуск ) являются хорошими кандидатами для арифметики смешанной точности. В итеративном алгоритме, таком как квадратный корень , грубое интегральное предположение может быть сделано и уточнено в течение многих итераций до тех пор, пока ошибка в точности не сделает его таким, что наименьшее добавление или вычитание к предположению все еще будет слишком грубым, чтобы быть приемлемым ответом. Когда это происходит, точность может быть увеличена до более точной, что позволяет использовать меньшие приращения для аппроксимации.
Суперкомпьютеры, такие как Summit, используют арифметику смешанной точности, чтобы более эффективно использовать память и время обработки, а также энергопотребление. [1] [2] [3]
Ссылки
[ редактировать ]- ^ Jump up to: а б с «Разница между одинарной, двойной, многократной и смешанной точностью» . Блог NVIDIA . Проверено 30 декабря 2020 г.
- ^ Jump up to: а б Абдельфаттах, Ахмад; Анцт, Хартвиг; Боман, Эрик Г.; Карсон, Эрин; Кожан, Терри; Донгарра, Джек; Гейтс, Марк; Грюцмахер, Томас; Хайэм, Николас Дж.; Ли, Шерри; Линдквист, Нил; Лю, Ян; Ло, Дженнифер; Лущек, Петр; Наяк, Пратик; Пранеш, Шри; Раджаманикам, Шива; Рибизель, Тобиас; Смит, Барри; Свиридович, Кася; Томас, Стивен; Томов, Станимир; Цай, Яохун М.; Ямадзаки, Ичитаро; Урике Мейер Ян (2020). «Обзор численных методов, использующих арифметику смешанной точности». arXiv : 2007.06674 [ cs.MS ].
- ^ Холт, Крис. «В США снова появился самый мощный в мире суперкомпьютер» . Engadget . Проверено 20 июля 2018 г.