PolyThrottle: Энергоэффективный вывод нейронных сетей на периферийных устройствах: Аннотация и введение
3 апреля 2024 г.:::информация Этот документ доступен на arxiv под лицензией CC BY-NC-ND 4.0 DEED.
Авторы:
(1) Минхао Ян, Университет Висконсин-Мэдисон;
(2) Хонги Ван, Университет Карнеги-Меллон;
(3) Шиварам Венкатараман, myan@cs.wisc.edu.
:::
Таблица ссылок
- Абстрактное и amp; Введение
- Мотивация
- Возможности
- Обзор архитектуры
- Формулировка задачи: двухфазная настройка
- Моделирование помех в рабочей нагрузке
- Эксперименты
- Выводы и amp; Ссылки
- А. Подробности об оборудовании
- Б. Результаты экспериментов
- C. Арифметическая интенсивность
- Д. Анализ предикторов
АННОТАЦИЯ
Поскольку нейронные сети (НС) развертываются в различных секторах, их потребность в энергии соответственно растет. Хотя несколько предыдущих работ были сосредоточены на снижении энергопотребления во время обучения, непрерывная работа систем на базе ML приводит к значительному потреблению энергии во время вывода. В этой статье исследуется, как конфигурация аппаратного обеспечения устройства — таких элементов, как графический процессор, память и частота процессора, которыми часто пренебрегали в предыдущих исследованиях, — влияет на потребление энергии для вывода NN с регулярной точной настройкой. Мы предлагаем PolyThrottle, решение, которое оптимизирует конфигурации отдельных аппаратных компонентов с использованием ограниченной байесовской оптимизации энергосберегающим способом. Наша эмпирическая оценка раскрывает новые аспекты баланса энергопотребления и показывает, что мы можем сэкономить до 36 процентов энергии для популярных моделей. Мы также подтверждаем, что PolyThrottle может быстро приближаться к оптимальным настройкам, удовлетворяя при этом ограничения приложения.
1 ВВЕДЕНИЕ
Быстрое развитие нейронных сетей и их внедрение в различных отраслях произвели революцию во многих аспектах нашей жизни. Однако у этой сложной технологии есть недостаток: высокое потребление энергии, что создает серьезные проблемы для устойчивого развития и окружающей среды (Anderson et al., 2022; Gupta et al., 2022; Cao et al., 2020; Anthony et al., 2020). Новые приложения, такие как автономные системы вождения и умные домашние помощники, требуют возможностей принятия решений в реальном времени (jet), и поскольку мы интегрируем NN в постоянно растущее число устройств, их коллективный энергетический след представляет собой значительное бремя для нашей окружающей среды (Ву и др., 2022; Шварц и др., 2020; Лакост и др., 2019). Более того, учитывая, что многие устройства
работают от батареи, ограничение потребления энергии не только снижает экологические проблемы, но и продлевает срок службы батареи, что делает модели NN с низким энергопотреблением очень желательными для многочисленных случаев использования.
В предшествующей литературе стратегии снижения энергопотребления вращаются вокруг разработки более эффективных архитектур нейронных сетей (Howard et al., 2017; Tan & Le, 2019), квантования (Kim et al., 2021; Banner et al., 2018; Courbariaux). и др., 2015; 2014; Gholami et al., 2021) или оптимизация максимальной частоты графического процессора (You et al., 2022; Gu et al., 2023). В результате наших экспериментов мы делаем новые наблюдения о компромиссе между энергопотреблением, задержкой вывода и различными другими конфигурациями оборудования. Например, частота памяти оказывается важным фактором, влияющим на энергопотребление (как показано на рисунке 3), помимо обычно исследуемой взаимосвязи между максимальной частотой вычислений графического процессора и энергопотреблением. Таблица 2
показывает, что даже при оптимальной максимальной частоте графического процессора мы можем сэкономить до 25 % энергии за счет дальнейшей настройки частоты памяти. Кроме того, в некоторых случаях важна минимальная частота графического процессора, как показано на рисунке 4 и таблице 3.
Мы также наблюдаем, что простая линейная зависимость не позволяет отразить компромисс между энергопотреблением, задержкой вывода нейронной сети и конфигурациями оборудования. Сложность этого компромисса иллюстрируется границей Парето на рисунке 2. Такое тонкое взаимодействие между потреблением энергии и задержкой ставит сложный вопрос: как мы можем найти почти оптимальную конфигурацию, которая точно соответствует этой границе?
Разработка эффективной структуры для ответа на поставленный выше вопрос является сложной задачей из-за большого пространства конфигурации, необходимости повторной настройки каждой модели и оборудования, а также частых операций точной настройки. Наивный подход, такой как поиск по сетке, неэффективен и может занять часы, чтобы найти оптимальное решение для данной модели и желаемого размера партии на данном оборудовании. Неопределенность задержки вывода, особенно при небольших размерах партий (Gujarati et al., 2020), еще больше усугубляет проблему. Более того, учитывая, что разные аппаратные платформы и модели нейронных сетей демонстрируют уникальные модели энергопотребления (раздел 3), полагаться на универсально применимую, заранее рассчитанную оптимальную конфигурацию невозможно. Каждое развернутое устройство должно быть оборудовано для быстрой идентификации
Лучшая конфигурация, адаптированная к конкретной рабочей нагрузке. Наконец, в производственных средах часто необходима ежедневная тонкая настройка для адаптации к динамичной внешней среде и интеграции новых данных (Cai et al., 2019; 2020). Для этого требуется механизм, который может быстро корректировать конфигурации для своевременного выполнения запросов точной настройки, обеспечивая при этом соответствие рабочих нагрузок онлайн-вывода целям уровня обслуживания (SLO).
Рисунок 1. Рисунок, иллюстрирующий общий рабочий процесс PolyThrottle. Оптимизатор сначала определяет оптимальную конфигурацию оборудования для данной модели. Когда поступают новые данные, сервер вывода обрабатывает запросы вывода. Получив запрос на тонкую настройку, наш предсказатель производительности оценивает, приведут ли логические выводы о разделении времени и рабочие нагрузки точной настройки к нарушениям SLO. Затем предиктор ищет возможные корректировки для удовлетворения ограничений SLO. Если такие корректировки обнаружены, система вносит изменения и планирует запросы на тонкую настройку до завершения.
В этой статье мы исследуем взаимодействие между задержкой вывода, энергопотреблением и частотой оборудования и предлагаем PolyThrottle в качестве нашего решения. PolyThrottle использует целостный подход, одновременно оптимизируя различные аппаратные компоненты и размеры пакетов для определения почти оптимальных конфигураций оборудования с заранее заданным уровнем задержки SLO. PolyThrottle дополняет существующие усилия по уменьшению задержки вывода, включая обрезку, квантование и дистилляцию знаний. Мы используем ограниченную байесовскую оптимизацию с графическим процессором, памятью, частотами процессора и размером пакета в качестве функций, а также SLO задержки в качестве ограничения для разработки эффективной структуры, которая автоматически корректирует конфигурации, обеспечивая сходимость к почти оптимальным настройкам. Кроме того, PolyThrottle использует модель прогнозирования производительности для планирования операций точной настройки, не нарушая текущие запросы онлайн-выводов. Мы интегрируем PolyThrottle
в Nvidia Triton на Jetson TX2 и Orin и оцените современные модели CV и NLP, включая EfficientNet и Bert (Tan & Le, 2019; Devlin et al., 2018).
Подводя итог, можно сказать, что наш основной вклад включает в себя:
1. Мы исследуем влияние аппаратных компонентов, помимо графических процессоров, на энергопотребление, определяем новые компромиссы между энергопотреблением и производительностью вывода и раскрываем новые возможности оптимизации.
2. Мы создаем адаптивную структуру, которая эффективно находит оптимальные по энергопотреблению конфигурации оборудования. Для этого мы используем ограниченную байесовскую оптимизацию.
3. Мы разрабатываем модель производительности, отражающую взаимодействие между процессами вывода и точной настройки. Мы используем эту модель для планирования запросов на тонкую настройку и внесения изменений в режиме реального времени для соблюдения установленных SLO.
4. Мы внедряем и оцениваем PolyThrottle на современном сервере вывода на Jetson TX2 и Orin. При минимальных накладных расходах PolyThrottle снижает потребление энергии на каждый запрос до 36 %.
Оригинал