Проекты
Разработка программного обеспечения для построения модели оптимального энергопотребления графического процессора на основе программно-определяемых счетчиков
Тип участника:
Физическое лицо
Полное наименование организации/физического лица/авторского или творческого коллектива:
Гулин Алексей Николаевич
Идея и краткое описание ИТ-проекта:
Идея: разработать комплексную систему, позволяющую собирать сырые данные с датчиков видеокарты в базу данных, тестировать видеокарту при помощи бенчмарка, изменять параметры работы видеокарты (мощность, частоту) и на основе собранных данных строить модель оптимального энергопотребления, прогнозировать оптимальные параметры работы видеокарты. Система состоит из нескольких компонентов, взаимодействующих через сетевые интерфейсы.
Перечень решаемых задач:
1. Повышение энергоэффективности видеокарты компьютера (снижение потребления) при схожем или более высоком уровне производительности относительно значений по умолчанию.
2. Изучение существующих инструментов сбора данных с датчиков GPU и оценки энергопотребления, определение их недостатков для разработки своей более функциональной системы.
3. Изучение специфики работы видеокарты, сбор данных для построения модели оптимального энергопотребления GPU.
4. Представление результатов экспериментов на реальном оборудовании.
2. Изучение существующих инструментов сбора данных с датчиков GPU и оценки энергопотребления, определение их недостатков для разработки своей более функциональной системы.
3. Изучение специфики работы видеокарты, сбор данных для построения модели оптимального энергопотребления GPU.
4. Представление результатов экспериментов на реальном оборудовании.
Описание функциональных возможностей и элементов проекта:
1. Сбор датасета (при помощи подсистемы сбора данных с датчиков) в подключаемую базу данных при разных нагрузках видеокарты в стресс-тестах для дальнейшего обучения модели.
2. Исследование работы видеокарты (при помощи подсистем тестирования и андервольтинга) при снижении энергопотребления и повышении частоты GPU и видеопамяти (с определённым шагом в пределах стабильной работы видеокарты), анализ корреляции между разными параметрами видеокарты и целевым параметром (например, FPS) для определения оптимальных и стабильных значений (при помощи подсистемы анализа).
3. Построение модели на основе машинного обучения (при помощи подсистемы анализа) для предсказывания FPS, а также использование оптимизатора для входных параметров модели, позволяющими максимизировать значение FPS и найти оптимальные значения параметров работы GPU (максимум FPS при минимуме потребления).
4. Возможность применять найденные параметры видеокарты или возвращать значения по умолчанию (при помощи скриптов) для использования во время работы ПК.
5. Сетевое взаимодействие между компонентами системы для распределения её работы (например, собирать данные на одном устройстве и анализировать на другом, либо одновременно тестировать сразу несколько систем) при помощи обработки запросов "клиент-сервер" между подсистемами через сокеты.
6. Визуализация полученных результатов (таблицы, графики) для сравнения показателей при найденных оптимальных параметрах и в режиме по умолчанию, позволяющая оценить эффективность работы модели (при помощи системы анализа и задействованными остальными системами для повторного тестирования и сбора данных).
2. Исследование работы видеокарты (при помощи подсистем тестирования и андервольтинга) при снижении энергопотребления и повышении частоты GPU и видеопамяти (с определённым шагом в пределах стабильной работы видеокарты), анализ корреляции между разными параметрами видеокарты и целевым параметром (например, FPS) для определения оптимальных и стабильных значений (при помощи подсистемы анализа).
3. Построение модели на основе машинного обучения (при помощи подсистемы анализа) для предсказывания FPS, а также использование оптимизатора для входных параметров модели, позволяющими максимизировать значение FPS и найти оптимальные значения параметров работы GPU (максимум FPS при минимуме потребления).
4. Возможность применять найденные параметры видеокарты или возвращать значения по умолчанию (при помощи скриптов) для использования во время работы ПК.
5. Сетевое взаимодействие между компонентами системы для распределения её работы (например, собирать данные на одном устройстве и анализировать на другом, либо одновременно тестировать сразу несколько систем) при помощи обработки запросов "клиент-сервер" между подсистемами через сокеты.
6. Визуализация полученных результатов (таблицы, графики) для сравнения показателей при найденных оптимальных параметрах и в режиме по умолчанию, позволяющая оценить эффективность работы модели (при помощи системы анализа и задействованными остальными системами для повторного тестирования и сбора данных).
Дата внедрения (в случае, если предполагается запуск проекта в эксплуатацию):
-
Используемые платформы, средства разработки:
• Windows 11
• Python 3.12.9
• MongoDB 7.0
• MSI Kombustor 4 (бенчмарк)
• NVIDIA Inspector (изменение частоты)
• Metabase (графики для данных в БД, опционально)
• Библиотеки pynvml, pynvraw, pandas, numpy, lightgbm, optuna, sklearn, socket и т.д.
• Python 3.12.9
• MongoDB 7.0
• MSI Kombustor 4 (бенчмарк)
• NVIDIA Inspector (изменение частоты)
• Metabase (графики для данных в БД, опционально)
• Библиотеки pynvml, pynvraw, pandas, numpy, lightgbm, optuna, sklearn, socket и т.д.
Стоимость разработки системы:
Данная система разрабатывалась в рамках магистерской диссертации
Средний размер ежегодных затрат на эксплуатацию:
От 0 рублей (без учёта электроэнергии при использовании на домашнем ПК) и выше
Перспективы развития:
1. Доработка модели для получения более оптимальных результатов, сравнение использованных методов (модель LightGBM + байесовская оптимизация) с другими методами построения модели с точки зрения их эффективности.
2. Улучшение предобработки данных на основе полученных коэффициентов корреляции. На FPS в разных типах тестов бенчмарка сильнее влияют разные параметры (например, более сильное влияние лимита мощности или частоты памяти), либо корреляция для всех параметров слабая (в тесте "glmsi02gpumedium"), что может помочь сбалансировать разные типы тестов в общей выборке (сейчас все типы тестов учитываются усреднённо относительно друг друга).
3. Добавление аналогов для разработанных подсистем (например, система тестирования через бенчмарк FurMark, а не только через MSI Kombustor).
4. Добавление выбора целевой функции (не только FPS), например, FLOPS (количество операций в секунду) или хешрейт (для майнинга).
5. Продолжение сбора данных и увеличения датасета для повышения точности модели, уменьшение шага изменения параметров в тестах (существенно повышает время на прохождение всех тестов).
6. Тестирование системы на различных видеокартах вдобавок к уже использованной NVIDIA GTX 1650, сравнение их эффективности.
7. Учитывание стабильности целевого параметра в тестах (например, FPS не просто высокий, но и время кадра остаётся постоянным).
8. Предсказание в реальном времени (дообучение модели) на основе текущей нагрузки и автоматическое изменение параметров GPU (например, в компьютерной игре).
2. Улучшение предобработки данных на основе полученных коэффициентов корреляции. На FPS в разных типах тестов бенчмарка сильнее влияют разные параметры (например, более сильное влияние лимита мощности или частоты памяти), либо корреляция для всех параметров слабая (в тесте "glmsi02gpumedium"), что может помочь сбалансировать разные типы тестов в общей выборке (сейчас все типы тестов учитываются усреднённо относительно друг друга).
3. Добавление аналогов для разработанных подсистем (например, система тестирования через бенчмарк FurMark, а не только через MSI Kombustor).
4. Добавление выбора целевой функции (не только FPS), например, FLOPS (количество операций в секунду) или хешрейт (для майнинга).
5. Продолжение сбора данных и увеличения датасета для повышения точности модели, уменьшение шага изменения параметров в тестах (существенно повышает время на прохождение всех тестов).
6. Тестирование системы на различных видеокартах вдобавок к уже использованной NVIDIA GTX 1650, сравнение их эффективности.
7. Учитывание стабильности целевого параметра в тестах (например, FPS не просто высокий, но и время кадра остаётся постоянным).
8. Предсказание в реальном времени (дообучение модели) на основе текущей нагрузки и автоматическое изменение параметров GPU (например, в компьютерной игре).
Достижение поставленных целей:
Реализована модульная система на Python, позволяющая собирать данные с датчиков GPU в БД, осуществляя цикл стресс-тестов с изменением параметров GPU через андервольтинг, затем анализировать полученные данные и строить модель оптимального потребления. Для видеокарты NVIDIA GTX 1650 было собрано 1 113 204 документов (сырых данных) в MongoDB, 650 646 документов со значениями FPS. Полученные коэффициенты корреляции позволили определить компромиссность оптимальных параметров для разных нагрузок. Обучена модель LightGBM с хорошей точностью по метрикам: R2 = 0,947; MAE = 18,8 FPS. Метод Байеса позволил предсказать оптимальные параметры модели: лимит мощности = 45 Вт; смещение частоты GPU = +193 МГц; смещение частоты памяти = +468 МГц. Найденные параметры позволили повысить производительность рассмотренной видеокарты на 8,3% при минимальном потреблении (45 Вт). Результаты работы прошли предварительное рецензирование и были представлены на конференции SYRCoSE 2025 в Пятигорске, готовится статья в журнал ВАК. Цели работы достигнуты, но результат может быть улучшен при дальнейшей доработке.
Актуальность, экономическая или социальная полезность:
Проблема высокого энергопотребления актуальна, поскольку оно приводит к повышенному нагреву, износу видеокарты компьютера и снижению её эффективности (троттлингу), что повышает экономические расходы и углеродный след (неэкологично). Полученная модель оптимального энергопотребления позволяет свести к минимуму возможные проблемы.
Масштабируемость, способность к взаимодействию с другими системами, мобильность:
Система может быть запущена как в виде автономной на одном устройстве, так и в виде распределённой (отдельные подсистемы на разных устройствах, в том числе различные базы данных). Одинаковые подсистемы на разных устройствах могут быть объединены (например, тестирование сразу нескольких ПК). Модули могут быть заменены (например, вместо тестирования в бенчмарке можно запустить компьютерную игру), либо использоваться отдельно и ожидать запросы через сетевые интерфейсы. Система протестирована в рамках локальной сети, но может быть использована и в рамках глобальной. Единственным ограничением является используемая операционная система (Windows 10 или 11), что несущественно ввиду популярности Windows среди обычных пользователей и игроков.
Обоснованность применяемых проектных решений:
Применение разделения системы на несколько подсистем позволило расширить её возможные сферы использования (как в рамках одного ПК, так и объединение нескольких ПК). Сокеты позволяют быстро обмениваться запросами между подсистемами, при значительном расширении системы могут быть заменены на брокер сообщений, например, RabbitMQ.
LightGBM (библиотека машинного обучения на основе градиентного бустинга) была выбрана в качестве основной модели для анализа данных GPU благодаря высокой эффективности при работе с большими объёмами информации (в данном случае количество собранных данных составляет несколько сотен тысяч записей). Нейронные сети в данном случае были бы избыточны, поскольку табличные данные с чёткими зависимостями не требуют такой сложности.
Байесовская оптимизация с использованием библиотеки Optuna была выбрана как основной метод поиска оптимальных параметров благодаря своей эффективности при работе с большими данными. Алгоритм Tree-structured Parzen Estimator (TPE), лежащий в основе Optuna, позволяет находить оптимальные параметры за относительно небольшое количество итераций (100 в данном случае).
LightGBM (библиотека машинного обучения на основе градиентного бустинга) была выбрана в качестве основной модели для анализа данных GPU благодаря высокой эффективности при работе с большими объёмами информации (в данном случае количество собранных данных составляет несколько сотен тысяч записей). Нейронные сети в данном случае были бы избыточны, поскольку табличные данные с чёткими зависимостями не требуют такой сложности.
Байесовская оптимизация с использованием библиотеки Optuna была выбрана как основной метод поиска оптимальных параметров благодаря своей эффективности при работе с большими данными. Алгоритм Tree-structured Parzen Estimator (TPE), лежащий в основе Optuna, позволяет находить оптимальные параметры за относительно небольшое количество итераций (100 в данном случае).
Оригинальность, новизна, отличие от аналогов либо отсутствие аналогов:
Были изучены научные статьи и описанное в них ПО, связанное с получением и оценкой энергопотребления как GPU, так и CPU, определены их недостатки.
PowerAPI:
• Нет поддержки GPU, только Linux, не все архитектуры CPU.
• Сложность многокомпонентной системы (контейнеры Docker).
PyJoules:
• Только Linux (без поддержки VM), нет поддержки видеокарт AMD.
• Не может строить оптимальные модели мощности.
• Отслеживает только отдельные функции Python.
SAOU:
• Тестировался только на cuBLAS-MM.
• Требует модификации ядра Linux и синхронизации потоков GPU.
• Необходимо предварительное профилирование для определения безопасных значений частоты/напряжения.
GreenMM:
• Работает только через cuBLAS.
• Только Linux (без поддержки VM).
• Требуется предварительное профилирование для построения моделей ошибок.
Существующие решения зачастую предназначены для Linux и умножения матриц на GPU.
Ключевые отличия от аналогов:
• Поддержка Windows.
• Более широкие возможности тестирования (могут использоваться как стресс-тесты в бенчмарке, так и другие нагрузки на GPU при замене подсистемы тестирования на другую).
• При наличии собранного датасета (например, с аналогичной видеокарты на другом устройстве) предварительное профилирование не требуется.
• Применённые оптимальные параметры могут использоваться в рамках любых задач (а не только в рамках протестированных).
PowerAPI:
• Нет поддержки GPU, только Linux, не все архитектуры CPU.
• Сложность многокомпонентной системы (контейнеры Docker).
PyJoules:
• Только Linux (без поддержки VM), нет поддержки видеокарт AMD.
• Не может строить оптимальные модели мощности.
• Отслеживает только отдельные функции Python.
SAOU:
• Тестировался только на cuBLAS-MM.
• Требует модификации ядра Linux и синхронизации потоков GPU.
• Необходимо предварительное профилирование для определения безопасных значений частоты/напряжения.
GreenMM:
• Работает только через cuBLAS.
• Только Linux (без поддержки VM).
• Требуется предварительное профилирование для построения моделей ошибок.
Существующие решения зачастую предназначены для Linux и умножения матриц на GPU.
Ключевые отличия от аналогов:
• Поддержка Windows.
• Более широкие возможности тестирования (могут использоваться как стресс-тесты в бенчмарке, так и другие нагрузки на GPU при замене подсистемы тестирования на другую).
• При наличии собранного датасета (например, с аналогичной видеокарты на другом устройстве) предварительное профилирование не требуется.
• Применённые оптимальные параметры могут использоваться в рамках любых задач (а не только в рамках протестированных).
Гарантирую достоверность предоставленной в заявке информации. Подтверждаю, что организация не находится в состоянии ликвидации, банкротства, реорганизации (Только для организаций):
Да
Презентация проекта pdf:
Загрузить