О чём речь

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.

Список поддерживаемых систем стоит проверять до обновления. Работа на неподдерживаемой конфигурации возможна, но диагностировать проблемы придётся самостоятельно.

Стоит ли переходить

Ответ зависит от вашего оборудования, и это тот случай, когда общая рекомендация была бы вредной.

Переходите, если:

  • у вас актуальное поколение ускорителей и основная нагрузка — инференс;
  • вы обслуживаете кластер и цените раздельное обновление слоёв;
  • вам нужны свежие версии фреймворков в проверенных сочетаниях;
  • планируется работа с низкоразрядными форматами.

Не торопитесь, если:

  • у вас ускорители предыдущих поколений — главная функция версии на них не работает аппаратно;
  • текущая связка версий стабильно работает и закрывает задачи;
  • используемые вами библиотеки ещё не проверены на новой ветке;
  • ваша операционная система не входит в список поддерживаемых.

Отдельно про вывод оборудования из поддержки. При планировании обязательно проверьте, не выведена ли ваша модель ускорителя из списка поддерживаемых в новой ветке. Если да — обновление закроет для вас путь к будущим версиям стека, и это нужно понимать заранее, а не обнаружить после.

Как обновляться правильно

Проверьте список поддержки для своих карт и дистрибутива — до начала работ.

Зафиксируйте текущее состояние. Запишите версии всех компонентов работающей связки. Это ваш путь назад.

Обновляйте по частям. Раздельная поставка драйвера и библиотек существует именно для этого: сначала пользовательский стек на части узлов, потом остальное.

Проверяйте не только скорость, но и результат. Смена форматов вычислений может изменить численный результат. Убедитесь, что модель по-прежнему выдаёт то, что ожидается, а не просто работает быстрее.

Держите путь отката. До того как обновление дойдёт до продакшена.

Коротко

Главное нововведение — поддержка низкоразрядных форматов вычислений, но она реально работает только на актуальном поколении ускорителей. На более старых картах форматы эмулируются, и выигрыша в скорости нет.

Недооценённое, но важное для эксплуатации изменение — разделение драйвера и библиотек: обновления становятся управляемыми, а откат — точечным.

Решение об обновлении принимается по вашему оборудованию, а не по номеру версии. Владельцам актуальных карт с инференс-нагрузкой переходить стоит; владельцам предыдущих поколений — взвесить, что именно они получат.

И обязательный шаг перед планированием: проверить, не выведена ли ваша модель ускорителя из поддержки.

Подбираете ускорители под задачи машинного обучения — опишите нагрузку, поможем сопоставить варианты с учётом программной поддержки.