О чём речь
ROCm — программный стек AMD для вычислений на графических ускорителях: драйверы, библиотеки, компиляторы и интеграции с фреймворками машинного обучения. Функциональный аналог того, что у конкурента называется CUDA.
Версия 7.0 — не косметическое обновление. Изменения затрагивают и возможности, и порядок обслуживания инфраструктуры. Разберём, что действительно поменялось и кому стоит переходить.
Главное: поддержка низкоразрядных форматов
Ключевое нововведение — нативная поддержка вычислений пониженной точности: восьмибитных, шестибитных и экспериментально четырёхбитных.
Зачем это нужно. Чем меньше разрядность, тем меньше памяти занимает модель и тем быстрее считаются операции. При грамотном применении потери точности невелики, а выигрыш в стоимости обработки запроса — кратный.
И сразу существенная оговорка, которая определяет, стоит ли вам обновляться вообще.
На ускорителях предыдущих поколений — линеек MI100 и MI200 — аппаратной поддержки этих форматов нет. Они эмулируются программно, а эмуляция означает, что выигрыша в скорости не будет: экономия памяти сохраняется, ускорение — нет.
То есть главная функция новой версии реально работает только на актуальном поколении ускорителей. Для владельцев более старых карт ценность обновления резко снижается.
Разделение драйвера и пользовательского стека
Изменение, которое не выглядит эффектно, но для эксплуатации значит едва ли не больше формата вычислений.
Раньше системный драйвер и пользовательские библиотеки обновлялись вместе. Теперь они поставляются раздельно.
Что это даёт на практике:
- новую версию библиотек можно проверить на части узлов, не трогая драйвер на всём кластере;
- обновление ядра операционной системы не тянет за собой обязательную замену всего стека;
- откат при проблеме затрагивает один слой, а не всю связку.
Для площадки из нескольких машин это малозаметно. Для кластера это разница между управляемым обновлением и рискованной операцией на всём парке сразу.
Обновлённые фреймворки
В комплекте идут протестированные конфигурации основных фреймворков:
| Компонент | Версия |
|---|---|
| PyTorch | 2.7 |
| JAX | 0.6.0 |
| TensorFlow | 2.19.1 |
| ONNX Runtime | 1.22.0 |
| Triton Inference Server | 3.3.0 |
Практическая ценность здесь в слове «протестированные». Значительная часть времени при развёртывании уходит на подбор совместимых версий компонентов. Готовые контейнеры с проверенными сочетаниями эту работу снимают.
Отдельно отмечается поддержка низкоразрядных форматов в сервере инференса без ручной компиляции — раньше это требовало отдельных усилий.
Переносимость кода
Инструментарий для портирования кода с платформы конкурента обновлён: улучшена совместимость интерфейсов, добавлены более информативные диагностические сообщения, унифицирован программный интерфейс с учётом новых форматов.
Стоит сохранять реализм: перенос нетривиального кода по-прежнему требует работы и тестирования. Инструменты снижают трудоёмкость, но не превращают её в нажатие одной кнопки. Планируя миграцию, закладывайте время на отладку и проверку численных результатов.
Где выигрыш реален
Инференс языковых и мультимодальных моделей. Основной сценарий, ради которого обновляются. Низкоразрядные форматы вместе с обновлёнными библиотеками снижают требования к памяти ускорителя и повышают пропускную способность. На актуальном поколении карт эффект наиболее заметен.
Обучение и дообучение. Улучшенная компиляция вычислительных графов, оптимизация размещения данных в памяти и более понятное профилирование сокращают накладные расходы. Цикл от постановки эксперимента до результата становится короче.
Эксплуатация. Разделение слоёв упрощает обновления и снижает вероятность неприятных сюрпризов после обновления ядра системы. Поддержка актуальных долгосрочных выпусков дистрибутивов уменьшает сбои в автоматизированных конвейерах.
Требования к системе
Официально поддерживаемые конфигурации:
- Ubuntu 24.04.3 с ядрами 6.8 и 6.14;
- Rocky Linux 9 с ядром 5.14.
Список поддерживаемых систем стоит проверять до обновления. Работа на неподдерживаемой конфигурации возможна, но диагностировать проблемы придётся самостоятельно.
Стоит ли переходить
Ответ зависит от вашего оборудования, и это тот случай, когда общая рекомендация была бы вредной.
Переходите, если:
- у вас актуальное поколение ускорителей и основная нагрузка — инференс;
- вы обслуживаете кластер и цените раздельное обновление слоёв;
- вам нужны свежие версии фреймворков в проверенных сочетаниях;
- планируется работа с низкоразрядными форматами.
Не торопитесь, если:
- у вас ускорители предыдущих поколений — главная функция версии на них не работает аппаратно;
- текущая связка версий стабильно работает и закрывает задачи;
- используемые вами библиотеки ещё не проверены на новой ветке;
- ваша операционная система не входит в список поддерживаемых.
Отдельно про вывод оборудования из поддержки. При планировании обязательно проверьте, не выведена ли ваша модель ускорителя из списка поддерживаемых в новой ветке. Если да — обновление закроет для вас путь к будущим версиям стека, и это нужно понимать заранее, а не обнаружить после.
Как обновляться правильно
Проверьте список поддержки для своих карт и дистрибутива — до начала работ.
Зафиксируйте текущее состояние. Запишите версии всех компонентов работающей связки. Это ваш путь назад.
Обновляйте по частям. Раздельная поставка драйвера и библиотек существует именно для этого: сначала пользовательский стек на части узлов, потом остальное.
Проверяйте не только скорость, но и результат. Смена форматов вычислений может изменить численный результат. Убедитесь, что модель по-прежнему выдаёт то, что ожидается, а не просто работает быстрее.
Держите путь отката. До того как обновление дойдёт до продакшена.
Коротко
Главное нововведение — поддержка низкоразрядных форматов вычислений, но она реально работает только на актуальном поколении ускорителей. На более старых картах форматы эмулируются, и выигрыша в скорости нет.
Недооценённое, но важное для эксплуатации изменение — разделение драйвера и библиотек: обновления становятся управляемыми, а откат — точечным.
Решение об обновлении принимается по вашему оборудованию, а не по номеру версии. Владельцам актуальных карт с инференс-нагрузкой переходить стоит; владельцам предыдущих поколений — взвесить, что именно они получат.
И обязательный шаг перед планированием: проверить, не выведена ли ваша модель ускорителя из поддержки.
Подбираете ускорители под задачи машинного обучения — опишите нагрузку, поможем сопоставить варианты с учётом программной поддержки.
