Зачем ускорителю память с коррекцией ошибок при обучении больших моделей
Одиночные сбои в памяти ускорителя происходят регулярно и без коррекции попадают прямо в результат расчёта. Разбираем, откуда они берутся, что делает механизм коррекции, чем оборачивается его отсутствие на длительном обучении и что проверяется при подборе конфигурации.
Память с коррекцией ошибок отличается от обычной наличием дополнительных разрядов и логики, которая обнаруживает искажение данных и исправляет одиночную ошибку на лету. В ускорителях вычислений этот механизм закрывает не теоретическую, а вполне измеримую проблему: на больших объёмах памяти и длительных расчётах одиночные сбои происходят регулярно, и без коррекции они попадают прямо в результат.
Разберём, откуда берутся такие сбои, что именно защищает коррекция, чем оборачивается её отсутствие на длительном обучении и как это учитывается при подборе конфигурации. Ускорители лежат на странице направления GPU-ускорителей MetaX.
Откуда берутся одиночные сбои
- Заряд, наведённый частицами. Ячейка памяти хранит небольшой заряд, и внешнее воздействие способно изменить его настолько, что бит прочитается с противоположным значением. Физически ячейка исправна — искажено только содержимое.
- Предельные режимы работы. Высокая температура и работа на верхней границе частоты повышают вероятность ошибки чтения. Ускоритель под длительной нагрузкой работает именно в таких условиях.
- Влияние соседних ячеек. При интенсивном обращении к одним и тем же строкам памяти возможно искажение данных в соседних.
- Объём и время. Вероятность ошибки пропорциональна произведению объёма памяти на время работы. Восемь ускорителей с большим объёмом памяти каждый, работающие неделю без остановки, — совсем другая величина, чем один ускоритель на час.
Что делает коррекция
Механизм хранит контрольные разряды вместе с данными и при каждом чтении проверяет их соответствие.
- Одиночная ошибка обнаруживается и исправляется. Расчёт продолжается, событие записывается в журнал. Это основной режим работы.
- Двойная ошибка обнаруживается, но не исправляется. Вычисление останавливается с явной ошибкой вместо того, чтобы выдать неверный результат.
- Ведётся статистика. Рост числа исправленных ошибок на конкретном модуле — ранний признак деградации, по которому карту выводят из работы до отказа.
- Часть памяти расходуется на контроль. Доступный объём уменьшается, пропускная способность при включённой коррекции немного ниже. Это плата за надёжность результата.
Чем оборачивается отсутствие коррекции
| Сценарий | Без коррекции | С коррекцией |
|---|---|---|
| Одиночный сбой во время обучения | Искажается значение веса или градиента, расчёт продолжается | Ошибка исправляется, расчёт идёт дальше без последствий |
| Обнаружение проблемы | По расхождению результатов при повторном запуске | По записи в журнале, сразу |
| Цена ошибки на длительном расчёте | Потеря прогона целиком, откат к контрольной точке | Отсутствует |
| Деградация карты | Проявляется отказом | Видна заранее по росту числа исправлений |
| Инференс с короткими запросами | Единичный неверный ответ, не всегда заметный | Ошибка исправляется |
| Доступный объём памяти | Полный | Меньше на долю, занятую контролем |
Самое неприятное свойство искажения без коррекции — его незаметность. Обучение не останавливается, ошибок не выдаёт, но результат расходится с ожидаемым, и причину ищут в данных, гиперпараметрах и коде, а не в памяти. На многодневном прогоне это означает потерю недели работы кластера.
Где коррекция обязательна, а где нет
- Длительное обучение больших моделей. Обязательна. Расчёт идёт сутками, состояние модели целиком лежит в памяти ускорителей, и откат к контрольной точке стоит дорого.
- Промышленный инференс. Нужна там, где ответ модели используется в принятии решений и не проверяется человеком.
- Научные расчёты с накоплением. Обязательна: ошибка в промежуточном значении распространяется на весь дальнейший счёт.
- Разработка и отладка. Не критична — прогоны короткие, результаты проверяются, а стоимость ошибки сводится к повторному запуску.
- Визуализация и обработка изображений. Не критична: одиночное искажение не влияет на пригодность результата.
Что проверяется при подборе конфигурации
- Наличие механизма коррекции в конкретном исполнении ускорителя. В пределах одной линейки исполнения различаются: серверные карты поддерживают коррекцию, карты для рабочих станций — не всегда.
- Режим включения. На части платформ коррекция включается и выключается настройкой. Состояние проверяется после ввода в работу, а не предполагается.
- Доступный объём с учётом контроля. Расчёт размещения модели ведётся от фактически доступного объёма, иначе на этапе запуска выяснится, что модель не помещается.
- Сбор статистики. Система управления узлом должна выводить счётчики исправленных и необнаруживаемых ошибок — без них ранняя диагностика невозможна.
- Память узла. Коррекция в оперативной памяти сервера нужна по тем же причинам, что и в памяти ускорителя, и обычно включена в серверных платформах по умолчанию.
Частые вопросы
Насколько падает производительность при включённой коррекции? Снижение небольшое и зависит от характера обращений к памяти. На обучении оно несопоставимо со стоимостью потерянного прогона.
Можно ли отключить коррекцию, чтобы получить больше памяти? Технически на части платформ можно. На длительных расчётах этого не делают: выигрыш в объёме измеряется процентами, а риск потери прогона — сутками работы кластера.
Отменяет ли коррекция необходимость контрольных точек? Нет. Она закрывает искажение данных в памяти, но не отказ карты, узла, сети или питания. Регулярное сохранение состояния остаётся обязательным.
Как понять, что карту пора менять? По росту числа исправленных ошибок на одном и том же модуле и по появлению необнаруживаемых ошибок. Первое — повод поставить карту под наблюдение, второе — повод вывести её из работы.
Что мы делаем
Подбираем конфигурацию узла под задачу с учётом фактически доступного объёма памяти, проверяем исполнение ускорителей и режим коррекции при вводе в работу, настраиваем сбор статистики по ошибкам памяти, считаем питание и охлаждение стойки. Поставляем ускорители напрямую от изготовителя, ведём приёмку партии и сопровождение парка. Линейки собраны на страницах направлений ускорителей MetaX и ускорителей NVIDIA.
Пришлите описание задачи, размер модели и планируемую длительность прогонов на sale@tkasiatorg.ru — подберём конфигурацию с нужным объёмом памяти и режимом коррекции и дадим спецификацию с ценами и сроками поставки.

