Введение 5
1. Постановка задачи 7
2. Обзор предметной области 8
2.1. Система CPUFreq 8
2.2. Стандартные регуляторы частоты 8
2.3. Современные регуляторы частоты 10
2.4. Обзор системы EAS 11
2.5. Обзор регулятора schedutil 12
2.6. Алгоритмы стохастической аппроксимации со
случайными направлениями 13
3. Подготовка тестового стенда 16
3.1. Описание тестового стенда SM-G930F 16
3.2. Необходимые изменения тестового стенда 16
4. Разработка методики для сравнения
DVFS-регуляторов 18
4.1. Инструменты для сравнения
DVFS-регуляторов 18
4.2. Определение способов измерения энергопотребления . . 18
4.3. Определение сценариев тестирования 19
4.4. Особенности реализации 20
5. Создание регулятора частоты 22
5.1. Выбор функционала качества 22
5.2. Реализация DVFS-регуляторов на основе SPSA с двумя
измерениями 23
6. Сравнение существующих
DVFS-регуляторов с разработанным 28
6.1. Android 11 28
6.2. Android 10 35
6.3. Анализ результатов 42
Заключение 45
Список литературы 47
С каждым годом смартфоны становятся более важной частью жизни людей, а их количество продолжает расти. Вместе с этим увеличивается уровень технических возможностей, и постоянно появляются решения для увеличения времени автономной работы смартфонов.
Во время эксплуатации смартфона возникают ситуации, когда некоторые задачи не требуют большого количества вычислительных ресурсов. При правильном соотношении производительности и энергопотребления в текущий момент времени можно увеличить время автономной работы устройства и при этом сохранить комфортную для пользователя производительность.
В этой работе используется ОС Android по причине того, что Android является одной из трех наиболее распространенных операционных систем для мобильных устройств и имеет открытый исходный код.
Существует подход к управлению частотой и напряжением процессора — Dynamic Voltage and Frequency Scaling (DVFS). Он позволяет оптимизировать энергопотребление и производительность процессора.
В OC Android имеется система CPUFreq, которая позволяет использовать алгоритмы динамического масштабирования напряжения и частоты (DVFS), исходя из тех или иных критериев оптимизации и стратегий их достижения.
В настоящее время активно исследуются вопросы, связанные с разработкой DVFS-регуляторов. Существует множество подходов их реализации. Так как нагрузку на процессор трудно предсказать и физические средства наблюдения вносят помехи в измерения, стохастические алгоритмы становятся всё более популярными. SPSA (Simultaneous perturbation stochastic approximation) [17] является одним из таких стохастических алгоритмов, который может использоваться для решения задачи трекинга оптимальной точки с почти произвольными помехами.
Ранее был разработан DVFS-регулятор, основанный на SPSA с одним измерением [9]. Данная работа посвящена разработке
DVFS-регулятора, основанного на алгоритме SPSA с двумя измерениями, и его апробации на реальном устройстве.
1. Постановка задачи
Целью данной работы является разработка DVFS-регулятора на основе алгоритма SPSA с двумя измерениями и сравнение его с существующими аналогами на реальном смартфоне.
Для достижения данной цели были сформулированы следующие задачи:
1. Провести обзор существующих DVFS-регуляторов.
2. Подготовить тестовый стенд для сравнения DVFS-регуляторов.
3. Создать методику тестирования для сравнения DVFS-регуляторов.
4. Разработать DVFS-регулятор на основе SPSA с двумя измерениями и встроить его в ОС Android.
5. Разработать модифицированную версию DVFS-регулятора на основе SPSA с двумя измерениями и интегрированную с EAS и встроить его в ОС Android.
6. Провести тестирование полученных регуляторов.
В ходе работы были достигнуты следующие результаты.
Проведен обзор существующих DVFS-регуляторов:
• изучены стандартные регуляторы - Schedutil, OnDemand, Interactive;
• рассмотрены подходы к созданию новых регуляторов: добавление возможности перевода ядер в сон, добавление анализа характера выполняемых инструкций, использование стохастической аппроксимации.
Подготовлен тестовый стенд:
• выбран Samsung SM-G930F;
• подобрано, установлено и настроено соответствующее ПО для проведения дальнейшей работы.
Создана методика тестирования энергопотребления смартфона:
• выбраны способ взаимодействия со смартфоном, способ оценки энергопотребления, сценарии тестирования;
• создан комплекс утилит для тестирования энергопотребления процессора смартфона.
Разработан регулятор частоты на основе алгоритма SPSA с двумя измерениями. В процессе разработки было создано несколько алгоритмов: spsa2_1_solid, spsa2_1_highFreq, spsa2_2, spsa2_3, spsa2_1_EAS, которые отличаются друг от друга количеством необходимых вызовов для одного шага алгоритма, способом измерения, алгоритмом выбора следующей оптимальной оценки.
Проведено сравнение разработанных DVFS-регуляторов с существующими Schedutil, Interactive, OnDemand. Исходя из полученных результатов, алгоритм spsa2_3 показал меньшее энергопотребление (на 12% — 52%) и малое отставание производительности (на 5% — 11%) относительно schedutil, а алгоритм spsa2_2 более высокую производительность и более высокое энергопотребление относительно spsa2_3. Алгоритм spsa2_1_solid и spsa2_1_highFreq показали энергопотребление и производительность ниже, чем schedutil. Производительность spsa2_1_highFreq выше, чем у остальных разработанных DVFS-регуляторов, в то время как производительность spsa2_1_solid в 11 раз ниже относительно schedutil при использовании высокой целевой нагрузки. При повышении целевой нагрузки у всех разработанных DVFS-регуляторов снижается производительность и энергопотребление.
[1] ARM Ltd. Arm Big.LITTLE.— URL: https://www.arm.com/technologies/big-little (дата обращения: 2023-04-25).
[2] ARM Ltd. EAS Overview and Integration Guide. — 2018. —
URL: https://developer.arm.eom/-/media/Arm%20DeveloperZ
20Community/PDF/Open%20Source/energy-aware-scheduling/eas_overview_and_integration_guide_r1p6.pdf (дата обращения: 2023-04-27).
[3] Frumusanu A. Exynos 8890.— URL: https://www.anandtech.com/show/10075/early-exynos-8890-impressions (дата обращения: 2023-04-10).
[4] Google LLC. Supporting multiple CPU idle levels in kernel.—
URL: https://android.googlesource.com/kernel/msm/+/
android-msm-marlin-3.18-nougat-dr1/Documentation/cpuidle/sysfs.txt (дата обращения: 2023-04-14).
[5] Google LLC. Android debug bridge.— 2023.— URL: https://developer.android.com/tools/adb (дата обращения: 2023-04-09).
[6] Granichin O. Linear regression and filtering under nonstandard assumptions (arbitrary noise) //IEEE Transactions on Automatic Con¬trol. — 2004. — Vol. 49, no. 10. — P. 1830-1837.
[7] MobiCore: An adaptive hybrid approach for power-efficient CPU management on Android devices / Lucie Broyde, Kent Nixon, Xiang Chen et al. // 2017 30th IEEE International System-on-Chip Conference (SOCC).— 2017.— P. 221-226.— URL: http://doi.acm.org/10.1145/1159876.1159880.
[8] Ohk Seung-Ryeol, Kim YongSin, Kim Young-Jin. Phase-Based Low Power Management Combining CPU and GPU for Android Smart-phones //Electronics.— 2022.— Vol. 11, no. 16.— URL: https://www.mdpi.com/2079-9292/11/16/2480.
[9] On Application of Simultaneous Perturbation Stochastic Approximation for Dynamic Voltage-Frequency Scaling in AndroidOS / Evgenii Bogdanov, Alexander Bozhnyuk, Stanislav Sartasov, Oleg Granichin // 2021 7th International Conference on Event-Based Control, Communication, and Signal Processing (EBCCSP). — 2021. — P. 1-7.
[10] Pallipadi V. Linux cpufreq - stats driver. — URL: https://android.googlesource.com/kernel/common/+/a7827a2a60218b25f222b54f77ed38f57aebe08b/Documentation/cpu-freq/cpufreq-stats.txt (дата обращения: 2023-04-14).
[11] Primate Labs Inc. Geekbench 5 CPU Workloads.-- URL: https://www.geekbench.com/doc/geekbench5-cpu-workloads.pdf (дата обращения: 2023-04-14).
[12] Samsung Electronics Co Ltd. Benefits of the big.LITTLE Architecture.— URL: https://s3.ap-northeast-2.amazonaws.com/global.semi.static/Benefits_of_the_bigLITTLE_Architecture.pdf (дата обращения: 2023-04-25).
[13] Samsung Electronics Co Ltd. SM-G930F. — URL: https://www.samsung.com/levant/support/model/SM-G930FZSASEE (дата обращения: 2023-04-10).
[14] Snowdon David, Ruocco Sergio, Heiser Gernot. Power management and dynamic voltage scaling: Myths and facts. -- 2005. -- 01.
[15] The community kernel development?? Energy Aware Scheduling.— URL: https://docs.kernel.org/scheduler/sched-energy.html (дата обращения: 2023-04-10).
[16] Wysocki R. J. CPU Performance Scaling.— URL: https://www.kernel.org/doc/html/v4.14/admin-guide/pm/cpufreq.html (дата обращения: 2023-04-10).
[17] А. Т. Вахитов О. Н. Граничин. Рандомизированные алгоритмы оценивания и оптимизации при почти произвольных помехах. — Наука, 2003. — P. 291. — ISBN:5020065250, 9785020065253.