Принципы оптимизации
Рабочая модель редко бывает эффективной. Часть II показала, как строить ML-системы, уважающие физические ограничения; часть III отвечает на реальные требования по времени, памяти и энергии. Каждая оптимизация предполагает навигацию по фронту: улучшение одной метрики (точности, задержки, энергии) при управлении ценой для других. Каждая оптимизация в части III воплощает совместное проектирование алгоритма и машины, обменивая математическую структуру на физическую осуществимость. Принципы здесь определяют физику эффективности — законы, которые объясняют, почему одни модели быстрые и доступные, а другие медленные и непомерно дорогие.
Фронт Парето
Инвариант: после нормализации направлений целевых функций допустимая точка лежит на фронте Парето тогда и только тогда, когда никакая другая точка не лучше или равна по всем целям и строго лучше хотя бы по одной.
- Квантование обменивает численную точность на меньший объем памяти.
- Прореживание обменивает емкость модели на меньшие представления и может ускорить работу, если получившиеся разреженность или удаленные структуры поддерживаются целевой аппаратурой.
- Дистилляция обменивает вычисления обучения на эффективность вывода.
Следствие: инженеры систем ориентируются на этот фронт, чтобы найти рабочую точку, подходящую для конкретной среды развертывания. Универсального оптимума не существует.
Ориентироваться по фронту Парето — значит знать, какой ресурс оптимизировать. Прежде чем выбрать технику, инженеры должны определить, ограничена ли нагрузка вычислениями, перемещением памяти или задержкой диспетчеризации. Первым тестом служит арифметическая интенсивность.
Закон арифметической интенсивности
Инвариант: достижимая пропускная способность () не превышает минимума из пиковых вычислений () и произведения пропускной способности DRAM () на операционную интенсивность на границе кэш–DRAM () (Williams et al., 2009):
Операционную интенсивность и пропускную способность DRAM нужно измерять на границе кэш–DRAM; эта идеальная граница исключает запуск, синхронизацию и другие фиксированные накладные расходы.
Следствие: добавление пиковых вычислений не поднимает идеальную границу Roofline для ядра, ограниченного пропускной способностью. Инженеры должны определить, является ли узкое место вычислениями, пропускной способностью или другим членом системы, прежде чем выбирать оптимизацию.
Многие важные ядра ML лежат на стороне, ограниченной памятью, относительно точки перехода, особенно операции с низким повторным использованием, такие как поиск по таблице вложений, нормализация, softmax, раздельная по глубине свертка и пути вывода при малом батче. Плотные матричные умножения и свертки могут, напротив, быть ограничены вычислениями, когда батчинг и загрузка аппаратуры высоки. Это разделение — следствие стены памяти: скорость процессоров исторически опережала пропускную способность памяти, и совокупный разрыв расширялся на протяжении трех десятилетий (Wulf and McKee, 1995; Gholami et al., 2024). Нейронные сети с их массивными тензорами весов и неравномерной временной локальностью особенно уязвимы. Закон арифметической интенсивности диагностирует, где нагрузка находится относительно этой стены. Стоимость перемещения данных объясняет, почему стена так жестока. «Диагностика узких мест» сопоставляет каждый тип узкого места с оптимизациями, которые его устраняют, и с изменениями, которые не затрагивают доминирующий член.
| Если нагрузка… | Доминирующий член | Оптимизация, которая работает | Оптимизация, которая бесполезна |
|---|---|---|---|
| Ограничена памятью | Квантование, прореживание, батчинг | Более быстрый ускоритель (больше FLOP/s) | |
| Ограничена вычислениями | Лучшие ядра, тензорные ядра, более быстрый ускоритель | Больше пропускной способности памяти | |
| Ограничена задержкой | Слияние ядер, асинхронная диспетчеризация, ограниченный микробатчинг в рамках SLO задержки | Только больше FLOP/s или пропускной способности |
Диагностика узких мест: перед оптимизацией определите, какой член железного закона доминирует. Оптимизация неверного члена оставляет доминирующее узкое место нетронутым и обычно дает малое или нулевое сквозное улучшение.
Производительность — лишь одна цена перемещения памяти; энергия показывает второе ограничение.
Инвариант энергии перемещения
Инвариант: полная энергия нагрузки зависит совместно от энергии отдельного события и числа событий. В цитируемом эталоне для техпроцесса 45 нм перенос 32-битного значения из DRAM может стоить примерно в 100–1000 раз больше энергии на событие, чем 32-битная операция с плавающей запятой, в зависимости от типа операции (Horowitz, 2014).
Здесь обозначает энергию одного 32-битного обращения к DRAM, а — энергию одного 32-битного арифметического события с плавающей запятой в цитируемой технологии 45 нм.
Следствие: когда перемещение памяти доминирует в энергии нагрузки, стратегии оптимизации должны отдавать приоритет слиянию ядер (избеганию промежуточного трафика за пределами кристалла) и квантованию (уменьшению размера данных); когда доминируют вычисления, центральными остаются сокращение числа операций и улучшение арифметических ядер.
Даже при идеальной локальности данных и оптимальном выборе узкого места финальное ограничение задает потолок того, сколько ускорения может дать любая оптимизация.
Закон Амдала
Инвариант: максимальное ускорение системы ограничено долей нагрузки, которую невозможно ускорить (Amdahl, 1967). Здесь — доля базового времени исполнения, которая ускоряется, а — ускорение этой доли; модель фиксированной работы предполагает, что оставшаяся доля не меняется, а ускорение не вводит дополнительных накладных расходов.
Следствие: если 95 процентов модели работает в 100 раз быстрее на GPU, общее системное ускорение ограничено примерно 16,8 раза. Это объясняет, почему загрузка данных и предобработка часто становятся главными узкими местами в сильно оптимизированных системах.
Часть III применяет эти принципы систематически через таксономию D·A·M — данные, алгоритм, машина, — сначала спрашивая, нужна ли работа вообще, затем можно ли ее упростить, и наконец как выполнить ее быстрее (полную диагностическую схему см. в приложении «Таксономия D·A·M»). Бенчмаркинг замыкает цикл, проверяя, сохраняются ли эти теоретические выигрыши при сквозном исполнении без нарушения ограничений качества.