Сегодня компания AMD выпустила последнюю версию ROCm, заявив, что улучшенное программное обеспечение обеспечит значительный прирост производительности для семейства графических процессоров Instinct.
Если вы не знакомы, ROCm для графических процессоров AMD — это то же самое, что CUDA для Nvidia. Стек с открытым исходным кодом охватывает различные драйверы, инструменты разработки, библиотеки и API, необходимые для выполнения вычислительных нагрузок на ускорителях AMD.
С выпуском ROCm 6.2 компания AMD наконец-то объявила о более широкой поддержке 8-битных типов данных с плавающей точкой, в том числе в vLLM, фреймворке для масштабирования больших языковых моделей (LLM), таких как LLama 3, на нескольких графических процессорах или системах.
Поддержка FP8 имеет большое значение, поскольку она была одной из флагманских спецификаций, когда в декабре появились APU и GPU MI300A и X от AMD. Ориентированный на ИИ MI300X мог похвастаться 2614 терафлопс производительности FP8 (вдвое больше с разреженностью), что значительно опережает H100 и H200 от Nvidia с 1979 терафлопс.
К сожалению, использование этой производительности было не совсем простым, поскольку, по крайней мере в то время, vLLM, предпочтительный исполнитель моделей AMD, не поддерживал типы данных FP8. С тех пор это изменилось, по крайней мере в ветке ROCm vLLM, и с запуском ROCm 6.2 Instinct разработчики теперь могут воспользоваться преимуществами этого типа данных.
Другие оптимизации включают поддержку выполнения на нескольких GPU и 8-битные кэши «ключ-значение».
Помимо vLLM, ROCm 6.2 также расширяет поддержку GEMM FP8 для различных фреймворков и библиотек, включая PyTorch и JAX через HipBLASLt, JAX и Flax через XLA, а также RCCL и MIOPEN.
Почему FP8 имеет значение
Хотя FP8 может показаться не таким уж существенным дополнением, типы данных с меньшей точностью имеют серьезные соображения для запуска генеративных моделей ИИ. По сравнению с 16-битной плавающей точкой или точностью Brain float, FP8 занимает половину пространства в памяти и существенно снижает нагрузку на память, позволяя снизить задержки второго токена.
На системном уровне это означает, что одна машина 8x MI300X с 1,5 ТБ HBM3 теперь может вмещать модели, значительно превышающие триллион параметров, и при этом иметь достаточно памяти для поддержки значимых длин контекста и размеров пакетов, по крайней мере, пока эта модель обучена или квантована до FP8.
По мере того, как модели становятся больше, мы начинаем видеть, что модели FP8 становятся все более популярными. Например, модель Llama 3.1 405B от Meta была запущена вместе с версией, квантованной до FP8, чтобы вместить ее в одну систему Nvidia HGX H100. И хотя вы уже могли запустить модель на BF16 на аналогично оборудованном блоке MI300X, снижение до FP8 фактически удвоит скорость генерации выходных данных.
Это, несомненно, сделает AMD MI300X еще более привлекательным для облачных гигантов, таких как Microsoft, использующих массивные передовые модели, включая GPT-4o от OpenAI, особенно на фоне сообщений о задержках с выходом грядущего семейства графических процессоров Blackwell от Nvidia.
Bitsandbytes приходит в Instinct
Что касается квантования, ROCm 6.2 также расширяет поддержку популярной библиотеки Bitsandbytes.
Bitsandbytes обычно используется вместе с PyTorch для автоматического квантования моделей, обученных с точностью 32 или 16 бит, обычно до восьми или четырех бит. Как мы уже упоминали ранее, более низкая точность уменьшает объем требуемой памяти и обеспечивает более высокую пропускную способность при выводе.
По данным AMD, поддержка Bitsandbytes в ROCm 6.2 не ограничивается выводом. «Использование 8-битных оптимизаторов может сократить использование памяти во время обучения ИИ, что позволяет разработчикам работать с более крупными моделями на ограниченном оборудовании», — пояснил слингер Epyc в своих примечаниях к выпуску.
К сожалению, похоже, что пока нельзя pip install bitsandbytes и начать использовать его с ускорителями Instinct. Поддержка ROCm, похоже, предоставляется через форк проекта, требующий ручной установки библиотеки, на момент написания статьи.
Если вы не знакомы с Bitsandbytes или квантизацией в целом, Hugging Face предлагает отличный анализ технологии, включая способы ее внедрения, который вы можете найти здесь. Вы также можете найти наше практическое руководство по квантизации после обучения для получения дополнительной информации о ее влиянии на размер модели, производительность и точность здесь.
AMD выпускает инструменты мониторинга и оптимизации Omnitrace и Omniperf
Наряду с оптимизацией производительности AMD также выпускает пару инструментов, которые, пока еще в стадии бета-тестирования, направлены на то, чтобы упростить для пользователей мониторинг и оптимизацию производительности их развертываний Instinct.
Первый из них, названный Omnitrace, как говорят, обеспечивает обзор производительности CPU, GPU, NIC и сетевой структуры с высоты птичьего полета. Идея заключается в том, что это поможет пользователям выявлять и устранять узкие места.
Omniperf, с другой стороны, решает проблему производительности на уровне ускорителя, предоставляя аналитику на уровне ядра в реальном времени, чтобы помочь разработчикам оптимизировать свой код для оборудования AMD.
ROCm приходит в Ubuntu 24.04 вместе с обновленным установщиком
В дополнение к новым функциям ROCm 6.2 также добавляет расширенную поддержку для последней версии Ubuntu от Canonical, версии 24.04 LTS. Ранее последней версией поддержки Ubuntu была версия 22.04, выпущенная в начале 2022 года.
AMD также расширила поддержку Red Hat Enterprise Linux 8.10 и SUSE Linux Enterprise Server версии 15 SP6. Полную матрицу совместимости можно найти здесь.
И разработчик Ryzen выпустил новый автономный установщик с ROCm 6.2, предназначенный для пользователей, развертывающих графические процессоры AMD в средах без доступа в Интернет или локальных зеркал.
В дополнение к установке соответствующих двоичных файлов и зависимостей, AMD заявляет, что установщик также будет выполнять задачи после установки, такие как управление пользователями и группами, а также обработка драйверов для обеспечения согласованности между узлами.
Хотя это может показаться странной концепцией, графические процессоры AMD широко развертываются в суперкомпьютерах Министерства энергетики США, которые в некоторых случаях оказываются изолированными после развертывания. С учетом того, что APU MI300A установлены для питания системы El Capitan Национальной лаборатории Лоуренса в Ливерморе и проведения исследований для ядерного арсенала Америки, такой установщик, несомненно, бесценен. ®