PolyThrottle: энергоэффективный анализ нейронных сетей на периферийных устройствах: обзор архитектуры
3 апреля 2024 г.:::информация Этот документ доступен на arxiv под лицензией CC BY-NC-ND 4.0 DEED.
Авторы:
(1) Минхао Ян, Университет Висконсин-Мэдисон;
(2) Хонги Ван, Университет Карнеги-Меллон;
(3) Шиварам Венкатараман, myan@cs.wisc.edu.
:::
Таблица ссылок
- Абстрактное и amp; Введение
- Мотивация
- Возможности
- Обзор архитектуры
- Формулировка задачи: двухфазная настройка
- Моделирование помех в рабочей нагрузке
- Эксперименты
- Выводы и amp; Ссылки
- А. Подробности об оборудовании
- Б. Результаты экспериментов
- C. Арифметическая интенсивность
- Д. Анализ предикторов
4 ОБЗОР АРХИТЕКТУРЫ
Чтобы воспользоваться возможностями, описанными в предыдущем разделе, мы разработали PolyThrottle — систему, которая находит компромисс между задержкой SLO, размером пакета и
энергия. PolyThrottle оптимизирует энергопотребление
конфигурации оборудования с ограничениями производительности и
управляет планированием тонкой настройки на устройстве.
На рис. 1 показан общий обзор рабочего процесса PolyThrottle. В производственной среде датчики на периферийных устройствах постоянно собирают данные и отправляют их в развернутую модель для вывода. Тем временем, чтобы адаптироваться к изменяющейся среде и шаблонам данных, эти данные также сохраняются для последующей точной настройки. Из-за ограниченных вычислительных ресурсов на этих периферийных устройствах рабочие нагрузки по точной настройке часто планируются одновременно с непрерывными
выполнение запросов на вывод. Чтобы решить проблемы развертывания моделей на периферийных устройствах, PolyThrottle состоит из двух ключевых компонентов:
1. Система оптимизации, которая находит оптимальные конфигурации оборудования для данной модели при заданных SLO с использованием небольшого количества образцов.
2. Прогнозатор и планировщик производительности для динамического планирования запросов точной настройки и настройки оптимальной конфигурации оборудования при соблюдении SLO.
PolyThrottle решает эти проблемы отдельно. В автономном режиме мы автоматически находим оптимальную частоту процессора, частоту графического процессора, частоту памяти и рекомендуемый размер пакета для запросов вывода, которые удовлетворяют ограничениям задержки и при этом минимизируют энергопотребление на каждый запрос. Мы обсудим детали процедуры оптимизации в разделе 5. Мы также показываем, что наша формулировка может найти почти оптимальные энергетические конфигурации за несколько минут, используя всего несколько образцов. По сравнению со сроком службы длительных рабочих нагрузок вывода накладные расходы незначительны.
Оптимальная конфигурация затем устанавливается на сервер вывода. Во время выполнения клиентская программа обрабатывает входные данные и отправляет запросы на вывод на сервер вывода. Между тем, если есть ожидающие запросы на тонкую настройку, предиктор производительности прогнозирует задержку вывода, когда
выполняет параллельную тонкую настройку и решает, возможно ли удовлетворить SLO задержки, если точная настройка запланирована одновременно. Подробное обсуждение прогнозирования производительности можно найти в разделе 6. Затем планировщик решает, какая новая конфигурация может удовлетворить SLO по задержке, одновременно минимизируя потребление энергии на каждый запрос. Если такая конфигурация достижима, она будет планировать тонкую настройку запросов итерацию за итерацией, пока все ожидающие запросы не будут завершены.
В сети и в автономном режиме: Настройка частоты каждого аппаратного компонента влечет за собой запись в один или несколько файлов конфигурации оборудования, каждый из которых занимает примерно 17 мс. В Jetson TX2 и Orin каждое ядро ЦП, графический процессор и память имеют отдельный файл конфигурации, который определяет
рабочая частота. В результате установка рабочих частот процессоров, графического процессора и памяти может занять до 150 мс. Для многих приложений эта продолжительность может превышать SLO задержки, и это без учета дополнительных затрат на выполнение изменений частоты. Поскольку
Задержка SLO для конкретной рабочей нагрузки меняется нечасто, PolyThrottle определяет оптимальную конфигурацию оборудования перед развертыванием и выполняет только онлайн-настройку для точной настройки рабочих нагрузок.
Оригинал