Блокировать плавающую точку
Блочная плавающая запятая ( BFP ) — это метод, используемый для обеспечения арифметических операций, приближающихся к плавающей запятой, при использовании процессора с фиксированной запятой . BFP присваивает группе мантисс (неэкспонентную часть числа с плавающей запятой) одному показателю, а не одному мантиссе, которому присваивается собственный показатель степени. BFP может быть полезен для ограничения использования пространства в аппаратном обеспечении для выполнения тех же функций, что и алгоритмы с плавающей запятой, путем повторного использования показателя степени; некоторые операции над несколькими значениями между блоками также могут выполняться с меньшим объемом вычислений. [1]
Общий показатель находится по данным с наибольшей амплитудой в блоке. Чтобы найти значение показателя степени, необходимо найти количество ведущих нулей ( подсчитать ведущие нули ). Для этого количество сдвигов влево, необходимых для данных, должно быть нормализовано к динамическому диапазону используемого процессора. Некоторые процессоры имеют средства, позволяющие это выяснить самостоятельно, например, инструкции по определению экспоненты и нормализации. [2] [3]
Блочные алгоритмы с плавающей запятой были тщательно изучены Джеймсом Харди Уилкинсоном . [4] [5] [6]
BFP можно воссоздать в программном обеспечении для меньшего увеличения производительности.
Микромасштабируемые (MX) форматы
[ редактировать ]Форматы микромасштабирования (MX) — это тип формата данных с плавающей запятой (BFP), специально разработанный для рабочих нагрузок искусственного интеллекта и машинного обучения. Формат MX, одобренный и стандартизированный такими крупными игроками отрасли, как AMD, Arm, Intel, Meta, Microsoft, NVIDIA и Qualcomm, представляет собой значительный прогресс в области форматов данных узкой точности для ИИ. [7] [8] [9]
Формат MX использует единый общий коэффициент масштабирования (экспоненту) для блока элементов, что значительно сокращает объем памяти и вычислительные ресурсы, необходимые для операций ИИ. Каждый блок из k элементов имеет общий коэффициент масштабирования, который хранится отдельно от отдельных элементов.
Первоначальная спецификация MX представляет несколько конкретных форматов, включая MXFP8, MXFP6, MXFP4 и MXINT8. Эти форматы поддерживают различные уровни точности:
- MXFP8: 8-битная операция с плавающей запятой в двух вариантах (E5M2 и E4M3).
- MXFP6: 6-битная операция с плавающей запятой в двух вариантах (E3M2 и E2M3).
- MXFP4: 4-битные числа с плавающей запятой (E2M1).
- MXINT8: 8-битное целое число.
Форматы MX доказали свою эффективность в различных задачах искусственного интеллекта, включая большие языковые модели (LLM), классификацию изображений, распознавание речи и системы рекомендаций. [10] Например, MXFP6 близко соответствует FP32 для задач вывода после тонкой настройки с учетом квантования, а MXFP4 можно использовать для обучения моделей генеративного языка с лишь незначительным снижением точности.
Формат MX был стандартизирован в рамках Open Compute Project (OCP) как Спецификация форматов микромасштабирования (MX) v1.0. [7] Также были опубликованы библиотеки эмуляции, в которых подробно рассказывается о подходе к науке о данных и выбираются результаты MX в действии. [11]
Аппаратная поддержка
[ редактировать ]Следующее оборудование поддерживает операции BFP:
- d-Матрица Джейхок II [12] [13]
- Tenstorrent Grayskull e75 и e150 (BFP8, BFP4 и BFP2) [14]
- Tenstorrent Wormhole n150 и n300 (BFP8, BFP4 и BFP2) [14]
- APU Amd Strix Point (под торговой маркой серии Ryzen AI 300) поддерживает блок FP16 в NPU [15] [16]
- AMD Versal AI Edge Series Gen 2 поддерживает типы данных MX6 и MX9.
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ «Блокировать плавающую точку» . Словарь BDTI DSP . Беркли Дизайн Технолоджи, Инк. (BDTI). Архивировано из оригинала 11 июля 2018 г. Проверено 1 ноября 2015 г.
- ^ Чабра, Арун; Айер, Рамеш (декабрь 1999 г.). «TMS320C55x Реализация блока с плавающей запятой на TMS320C54x DSP» (PDF) (отчет о применении). Решения для цифровой обработки сигналов. Техасские инструменты . СПРА610. Архивировано (PDF) из оригинала 11 июля 2018 г. Проверено 11 июля 2018 г.
- ^ Элам, Дэвид; Иовеску, Сезар (сентябрь 2003 г.). «Реализация блочных операций с плавающей запятой для N-точечного БПФ на DSP TMS320C55x» (PDF) (отчет о применении). Программные приложения TMS320C5000. Техасские инструменты . СПРА948. Архивировано (PDF) из оригинала 11 июля 2018 г. Проверено 1 ноября 2015 г.
- ^ Уилкинсон, Джеймс Харди (1963). Ошибки округления в алгебраических процессах (1-е изд.). Энглвуд Клиффс, Нью-Джерси, США: Prentice-Hall, Inc. ISBN 978-0-486-67999-0 . МР 0161456 .
- ^ Мюллер, Жан-Мишель; Бризебар, Николя; де Динешен, Флоран; Жаннерод, Клод-Пьер; Лефевр, Винсент; Мелькионд, Гийом; Револь, Натали ; Стеле, Дэмиен; Торрес, Серж (2010). Справочник по арифметике с плавающей запятой (1-е изд.). Биркхаузер . дои : 10.1007/978-0-8176-4705-6 . ISBN 978-0-8176-4704-9 . LCCN 2009939668 .
- ^ Овертон, Майкл Л. (2001). Численные вычисления с использованием арифметики с плавающей запятой IEEE - включая одну теорему, одно практическое правило и сто одно упражнение (1-е изд.). Общество промышленной и прикладной математики (SIAM). ISBN 0-89871-482-6 . 9-780898-714821-90000.
- ^ Jump up to: а б «Открытый вычислительный проект» . Открытый вычислительный проект . Проверено 3 июня 2024 г.
- ^ Рухани, Бита Дарвиш; Чжао, Ричи; Еще, Анкит; Холл, Мэтью; Ходаморади, Алиреза; Дэн, Лето; Чоудхари, Дхрув; Роговица, Мариус; Деллинджер, Эрик (19 октября 2023 г.). «Микромасштабирование форматов данных для глубокого обучения». arXiv : 2310.10537 [ cs.LG ].
- ^ Д'Са, Рани Боркар, Рейнольд (17 октября 2023 г.). «Содействие развитию инфраструктуры искусственного интеллекта посредством стандартизации» . Блог Microsoft Azure . Проверено 3 июня 2024 г.
{{cite web}}
: CS1 maint: несколько имен: список авторов ( ссылка ) - ^ Рухани, Бита; Чжао, Ричи; Эланго, Венмугил; Шафипур, Расул; Холл, Мэтью; Месмахосрошахи, Марал; Еще, Анкит; Мельник, Леви; Голуб, Максимилиан (12 апреля 2023 г.). «С общими микроэкспонентами небольшой сдвиг имеет большое значение». arXiv : 2302.08007 [ cs.LG ].
- ^ microsoft/microxcaling , Microsoft, 29 мая 2024 г. , получено 3 июня 2024 г.
- ^ Кларк, Питер (28 августа 2023 г.). «Платформа генеративного искусственного интеллекта на базе чиплетов повышает производительность LLM» . eeNews Европа . Проверено 23 апреля 2024 г.
- ^ [SPCL_Bcast] Архитектура генеративного вывода на основе чиплетов с блочными типами данных с плавающей запятой . Проверено 23 апреля 2024 г. - через www.youtube.com.
- ^ Jump up to: а б «Ускорители искусственного интеллекта Tenstorrent» (PDF) .
- ^ Боншор, Гэвин. «AMD анонсирует серию Ryzen AI 300 для мобильных устройств: Zen 5 с RDNA 3.5 и NPU XDNA2 с 50 TOPS» . www.anandtech.com . Проверено 3 июня 2024 г.
- ^ «AMD расширяет лидерство в области искусственного интеллекта и высокой производительности в центрах обработки данных и ПК с новыми процессорами AMD Instinct, Ryzen и EPYC на выставке Computex 2024» . Advanced Micro Devices, Inc. 2024-06-02 . Проверено 3 июня 2024 г.
Дальнейшее чтение
[ редактировать ]- «Блочное масштабирование с плавающей запятой БПФ/ОБПФ» (PDF) (Примечания по применению). Сан-Хосе, Калифорния, США: Altera Corporation . Октябрь 2005 г. 404-1.0. Архивировано (PDF) из оригинала 11 июля 2018 г. Проверено 11 июля 2018 г.