Введение
Глубокое обучение оказало значительное влияние на многие области вычислительной техники. Эти рабочие нагрузки требуют высоких требований к вычислительным ресурсам/памяти. Графические процессоры (GPU) являются основными ускорителями для облегчения их выполнения. Текущая проблема — недостаточное использование этих процессоров в кластерах. Это связано с отсутствием возможности точного совместного использования и виртуальной памяти в графических процессорах, а также с политиками, принятыми менеджерами ресурсов и планировщиками. Для увеличения использования графических процессоров первое решение, которое приходит на ум, — это их избыточное выделение. Однако вмешательство в аппаратные ресурсы может привести к снижению производительности при использовании подхода с избыточным выделением ресурсов. Итак, онлайн-профилирование — распространенное решение для систем мониторинга. Но такой подход снижает доступность ресурсов. Предложенный механизм Yeung et al. [1] использует модель машинного обучения для прогнозирования использования графического процессора для модели глубокого обучения. Они используют информацию из графиков вычислений моделей. Их оценки показывают 61,5% и 47,1% использование кластера графического процессора по сравнению с планировщиками на основе слотов, такими как Kubernetes, и механизмом онлайн-профилирования, выполняющим профилирование с интервалом в одну минуту.
Предлагаемый механизм
Предлагаемый механизм оценки использования находится между очередью кластера и порталом отправки, как показано на следующем рисунке.
Они проводят эксперименты с различными моделями и наборами данных, чтобы изучить взаимосвязь между характеристиками рабочей нагрузки глубокого обучения и использованием графического процессора. В следующей таблице показаны модели, которые они использовали с различными конфигурациями, включая размеры мини-пакетов, скрытые измерения и количество слоев для выполнения и построения набора данных для изучения и построения модели оценки.
Авторы провели исследование использования графических процессоров при обучении различных моделей глубокого обучения. На следующем рисунке показано, как использование для моделей отличается от модели к модели.
Механизм прогнозирования повторяет модель и вычисляет FLOP для каждой операции на основе ее входных данных, выходной формы и параметров [1]. Например, стандартное матричное умножение в FLOP вычисляется следующим образом:
Форма ввода * Форма вывода * Размер пакета
Для ячейки LSTM они смоделировали ее с двумя линейными слоями, потому что ячейки LSTM выполняют матричное умножение между весами ячеек и входными данными, такими как встраивание входных данных и скрытые состояния. Как только входы разделены на вентили, вычисление вентиля можно смоделировать как активацию. Они показывают взаимосвязь между FLOP и использованием GPU, как показано на следующем рисунке:
В следующей таблице перечислены все функции, которые используются для обучения модели:
Обучение модели
Всего 81 образец разбит на 80%-20% для обучения и тестирования. Они тестируют различные регрессионные модели и, наконец, выбирают случайный лес [2], поскольку он предлагает наименьшую среднеквадратичную логарифмическую ошибку (RMLSE) 0,154. >.
Оценка
Оценки подтверждают увеличение времени выполнения задания (JCT), как было показано ранее [3]. Это происходит из-за перераспределения ресурсов графического процессора. На следующем рисунке показана корреляция между использованием JCT и GPU. Однако при планировании совместного размещения оценки использования могут использоваться для разумного совместного размещения заданий и увеличения использования за счет управляемых накладных расходов на производительность.
Важно отметить, что следующие варианты, предложенные авторами, могут быть добавлены к подходу для достижения лучших результатов:
- Увеличение набора данных за счет добавления дополнительных конфигураций и моделей, таких как GAN, GNN
- Обобщение для других процессоров, таких как FPGA и ускорители
- Учитывая компиляторы глубокого обучения, такие как TVM. По своей важности, например, при выполнении свертки cuDNN выбирает лучший алгоритм для последующей конфигурации. Знание об этих решениях повысит точность предиктора.
- Распределенное обучение
- Более интеллектуальные правила планирования совместного размещения
Заключение
Подготовка графического процессора — одно из распространенных решений проблемы недостаточной загрузки графического процессора. Предложенный механизм Yeung et al. оценивает использование графического процессора на основе высокоуровневой информации моделей, полученной из графа их вычислений. Эту информацию можно использовать для улучшения использования кластера графического процессора путем совместного размещения заданий. Однако ухудшение производительности (увеличение времени выполнения) является сопутствующей проблемой этого решения, поскольку оно учитывает показатель использования очень высокого уровня.
Рекомендации
[1] Йенг, Гингфунг и др. «На пути к прогнозированию использования графического процессора для глубокого обучения в облаке». 12-й семинар USENIX по актуальным темам облачных вычислений (HotCloud 20). 2020.
[2] Регрессия случайного леса, ссылка: https://bit.ly/37zUSj4, дата обращения: 05.10.2022
[3] Сяо, Вэньконг и др. «Gandiva: интроспективное планирование кластеров для глубокого обучения». 13-й симпозиум USENIX по проектированию и внедрению операционных систем (OSDI 18). 2018.