Блочная плавающая точка ( BFP ) — это метод, используемый для обеспечения арифметики, приближающейся к плавающей точке , при использовании процессора с фиксированной точкой . BFP назначает группу мантиссов (неэкспоненциальную часть числа с плавающей точкой) одной экспоненте, а не одной мантиссе, назначаемой ее собственной экспоненте. BFP может быть выгоден для ограничения использования пространства в оборудовании для выполнения тех же функций, что и алгоритмы с плавающей точкой, путем повторного использования экспоненты; некоторые операции над несколькими значениями между блоками также могут быть выполнены с уменьшенным объемом вычислений. [1]
Общая экспонента находится по данным с наибольшей амплитудой в блоке. Чтобы найти значение экспоненты, необходимо найти количество ведущих нулей ( count leading zeros ). Для этого количество левых сдвигов, необходимых для данных, должно быть нормализовано к динамическому диапазону используемого процессора. Некоторые процессоры имеют средства, чтобы найти это самостоятельно, например, инструкции по обнаружению экспоненты и нормализации. [2] [3]
Алгоритмы с блочной плавающей точкой были подробно изучены Джеймсом Харди Уилкинсоном . [4] [5] [6]
BFP можно воссоздать программно для небольшого прироста производительности.
Форматы микромасштабирования (MX)
Форматы микромасштабирования (MX) — это тип формата данных Block Floating Point (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) как Microscaling Formats (MX) Specification v1.0. [7] Также были опубликованы библиотеки эмуляции, чтобы предоставить подробную информацию о подходе к науке о данных и выбрать результаты MX в действии. [11]
Поддержка оборудования
Операции BFP поддерживает следующее оборудование:
- d-Matrix Джейхок II [12] [13]
- Tenstorrent Grayskull e75 и e150 (BFP8, BFP4 и BFP2) [14]
- Tenstorrent Wormhole n150 и n300 (BFP8, BFP4 и BFP2) [14]
- Amd Strix Point APU (под торговой маркой Ryzen AI 300 series) поддерживает блок FP16 в NPU [15] [16]
- AMD Versal AI Edge Series Gen 2 поддерживает типы данных MX6 и MX9
Смотрите также
Ссылки
- ^ "Блочная плавающая точка". Словарь BDTI DSP . Berkeley Design Technology, Inc. (BDTI). Архивировано из оригинала 2018-07-11 . Получено 2015-11-01 .
- ^ Чхабра, Арун; Айер, Рамеш (декабрь 1999 г.). "TMS320C55x A Block Floating Point Implementation on the TMS320C54x DSP" (PDF) (Отчет о применении). Digital Signal Processing Solutions. Texas Instruments . SPRA610. Архивировано (PDF) из оригинала 2018-07-11 . Получено 2018-07-11 .
- ^ Элам, Дэвид; Иовеску, Сезар (сентябрь 2003 г.). "Реализация блочной плавающей точки для N-точечного БПФ на ЦСП TMS320C55x" (PDF) (Отчет о применении). Программные приложения TMS320C5000. Texas Instruments . SPRA948. Архивировано (PDF) из оригинала 11.07.2018 . Получено 01.11.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.
- ^ ab "Open Compute Project". Open Compute Project . Получено 2024-06-03 .
- ^ Рухани, Бита Дарвиш; Чжао, Ричи; Мор, Анкит; Холл, Мэтью; Ходаморади, Алиреза; Дэн, Саммер; Чоудхари, Дхрув; Корнеа, Мариус; Деллингер, Эрик (19 октября 2023 г.). «Микромасштабирование форматов данных для глубокого обучения». arXiv : 2310.10537 [cs.LG].
- ^ D'Sa, Rani Borkar, Reynold (2023-10-17). "Стимулирование развития инфраструктуры ИИ посредством стандартизации". Блог Microsoft Azure . Получено 2024-06-03 .
{{cite web}}
: CS1 maint: несколько имен: список авторов ( ссылка ) - ^ Рухани, Бита; Чжао, Ричи; Эланго, Венмугил; Шафипур, Расул; Холл, Мэтью; Месмахосрошахи, Марал; Мор, Анкит; Мельник, Леви; Голуб, Максимилиан (12.04.2023). «С общими микроэкспонентами небольшое смещение имеет большое значение». arXiv : 2302.08007 [cs.LG].
- ^ microsoft/microxcaling, Microsoft, 2024-05-29 , получено 2024-06-03
- ^ Кларк, Питер (28.08.2023). «Платформа генеративного ИИ на базе чиплетов повышает производительность LLM». eeNews Europe . Получено 23.04.2024 .
- ^ [SPCL_Bcast] Архитектура генеративного вывода на основе чиплетов с блочными типами данных с плавающей точкой . Получено 2024-04-23 – через www.youtube.com.
- ^ ab "Ускорители ИИ Tenstorrent" (PDF) .
- ^ Боншор, Гэвин. «AMD анонсирует серию Ryzen AI 300 для мобильных устройств: Zen 5 с RDNA 3.5 и XDNA2 NPU с 50 TOPS». www.anandtech.com . Получено 03.06.2024 .
- ^ "AMD расширяет лидерство в области искусственного интеллекта и высокой производительности в центрах обработки данных и ПК с новыми процессорами AMD Instinct, Ryzen и EPYC на выставке Computex 2024". Advanced Micro Devices, Inc. 2024-06-02 . Получено 2024-06-03 .
Дальнейшее чтение
- "Блоковое масштабирование с плавающей точкой FFT/IFFT" (PDF) (приложение). Сан-Хосе, Калифорния, США: Altera Corporation . Октябрь 2005 г. 404-1.0. Архивировано (PDF) из оригинала 2018-07-11 . Получено 2018-07-11 .