Тип работы:
Предмет:
Язык работы:


Использование стохастической оптимизации для регулировки частоты процессора в Android OS

Работа №128203

Тип работы

Дипломные работы, ВКР

Предмет

информационные системы

Объем работы41
Год сдачи2021
Стоимость4235 руб.
ПУБЛИКУЕТСЯ ВПЕРВЫЕ
Просмотрено
23
Не подходит работа?

Узнай цену на написание


Введение 5
1. Цели и задачи 7
2. Существующие подходы в области оптимизации энергопотребления 8
2.1. Регуляторы частоты ОС Android 8
2.2. Альтернативные подходы к оптимизации 12
2.2.1. Алгоритм поиска статей 12
2.2.2. Адаптивные алгоритмы 13
2.2.3. Машинное обучение 15
2.2.4. Предварительные вычисления 19
2.2.5. Выводы 21
3. Инфраструктура для загрузки алгоритмов DVFS 22
3.1. Xiaomi Redmi Note 8 Pro 22
3.2. Права суперпользователя 22
3.3. Особенности работы со сторонними ядрами и прошивками 23
4. Предлагаемый алгоритм DVFS 25
4.1. Стохастическая аппроксимация со случайными направлениями 25
4.2. Модель состояния системы 27
4.3. Алгоритм DVFS 28
5. Особенности реализации алгоритма 29
5.1. Поддержка многоядерности 29
5.2. Поддерживаемые настройки 30
6. Тестирование 31
6.1. Инструменты и критерии тестирования 31
6.2. Методология тестирования 32
6.3. Анализ результатов 35 
Заключение
Список литературы

Мобильные устройства сегодня являются неотъемлемой частью жизни современного человека. Важной задачей является увеличение длительности автономной работы этих устройств, т.е. чтобы они работали как можно дольше от аккумулятора, без дополнительной подзарядки. Вместе с тем с каждым годом растет мощность мобильных устройств: появляются новые процессоры со всё большим числом ядер и со всё более сложными вычислительными модулями, которые потребляют значительную часть энергии для своей работы, что сильно снижает время автономной работы мобильных устройств.
Однако большинство прикладных задач, например, отрисовка меню, показ несложных анимаций, обработка очередного видео-кадра и т.д. не требуют таких мощностей. Поэтому очень важно научиться находить баланс между производительностью процессора и энергией, которую он реально потребляет для своей работы в настоящий момент.
Существует ряд исследований, которые показали, что энергопотребление процессора определяется следующим законом [7]: P ~ fu2, где P — мощность, потребляемая процессором, f— его частота и и — напряжение. Следовательно, меняя два этих параметра можно достичь искомого баланса между производительностью и энергопотреблением.
С этой целью в OC Android существует подсистема CPUFreq subsystem [20], которая предоставляет интерфейс для разработки сторонних алгоритмов по регулировке частоты и напряжения процессора. Эти алгоритмы принято называть алгоритмами DVFS (Dynamic Voltage and Frequency Scaling) или, что тоже самое, DVFS-регуляторами.
Таким образом, реализовав сторонний алгоритм DVFS, можно динамически определять оптимальное P-состояние (конфигурацию часто-ты и напряжения), в котором должен находиться процессор, для достижения наилучшего сочетания его производительности и энергоэффективности.
В операционной системе Android существует несколько реализаций подобных алгоритмов, однако, используемые в них подходы не оптимальны. Особенно это проявляется при работе с современными много-ядерными архитектурами. Также у некоторых из этих решений присутствуют и алгоритмические недостатки, например, частые смены сильно отличающихся друг от друга P-состояний, что приводит к существенным потерям энергии при переключении между ними и сильно снижает эффективность подобного подхода [35].
В связи с этим на протяжении последних нескольких лет проводится большое количество исследований более новых и современных подходов к разработке различных алгоритмов DVFS. Все они подразделяются на 3 большие группы: адаптивные алгоритмы [18, 15], машинное обучение [22, 3, 31] и алгоритмы, использующие предварительные вычисления для своей работы [16, 32].
Однако в данный момент не существует алгоритмов регулировки частот, которые базируются на использовании методов стохастической оптимизации. В тоже время подобные методы широко используются для решения схожих оптимизационных задач. Данная работа призвана восполнить этот пробел. Планируется разработать алгоритм регулировки частот процессора на базе стохастической аппроксимации со случайными направлениями. (Simultaneous perturbation stochastic approximation — SPSA [38, 17]).
1. Цели и задачи
Цель данной дипломной работы является разработка алгоритма DVFS с использованием стохастической оптимизации и его апробация на реальном мобильном устройстве.
Для достижения этой цели были сформулированы следующие задачи.
1. Провести обзор существующих подходов в области оптимизации энергопотребления.
2. Выбрать смартфон и создать инфраструктуру для загрузки алгоритмов DVFS.
3. Разработать новый алгоритм DVFS и реализовать его для ОС Android.
4. Сравнить полученный алгоритм с уже существующими алгорит-мами DVFS.

Возникли сложности?

Нужна помощь преподавателя?

Помощь в написании работ!


В рамках данной дипломной работы были достигнуты следующие результаты.
1. Проведен обзор существующих подходов к оптимизации энергопотребления, для этого:
— изучены регуляторы: Performance, PowerSave, UserSpace, Ondemand, Conservative и Interactive;
— рассмотрены современные подходы: адаптивные алгоритмы, алгоритмы машинного обучения и алгоритмы, использующие предварительные вычисления.
2. В качестве устройства для апробации выбран смартфон Xiaomi redmi note 8 pro, для него создана инфраструктура загрузки алгоритмов DVFS: собрано и прошито ядро, выбрана и установлена прошивка, поддерживающая установку сторонних ядер Android.
3. Разработан алгоритм DVFS с использованием стохастической оптимизации:
— создана модель, описывающая зависимость состояния смартфона от поступающей нагрузки и используемой им частоты;
— на базе модели реализован алгоритм стохастической аппроксимации и встроен в ядро ОС Android [11].
4. Проведено тестирование полученного DVFS-алгоритма по 5 тестовым случаям, как итог: предлагаемый алгоритм не уступает по эффективности таким популярным регуляторам как OnDemand и Interactive.



[1] 4pda forum. Custom roms for Xiaomi redmi note8 pro discussion. URL: https://4pda.ru/forum/index.php?showtopic=965629.
[2] 4pda forum. Magdisk open source utility discussion. URL: https://4pda.ru/forum/index.php?showtopic=774072.
[3] A. Das, M. J. Walker, A. Hansson, B. M. Al-Hashimi, and G. V. Merrett, “Hardware-software interaction for run-time power optimization: A case study of embedded Linux on multicore smartphones,” in Proceedings of the International Symposium on Low Power Electronics and Design, Jul 2015.
[4] AOSP Clang. Official Android kernel
compiler prebuilts for kernel developers. URL: https://android.googlesource.com/platform/prebuilts/clang/host/linux- x86/.
[5] Agent Fabulous kernel sources. URL:
https://github.com/AgentFabulous/begonia.
[6] Android source. Android Open Source Project (AOSP) starting page. URL: https://source.android.com.
[7] D. Snowdon, S. Ruocco, and G. Heiser, “Power management and dynamic voltage scaling: Myths and facts,” vol. 12, pp. 1-7, Jan 2005.
[8] Developers Android. Espresso testing utility for Android devices. URL: https://developer.android.com/training/testing/espresso.
[9] Developers Android. Monkeyrunner tool overview page. URL: https://developer.android.com/studio/test/monkeyrunner.
[10] Developers Android. SDK Platform Tools release notes. URL: https://developer.android.com/studio/releases/platform-tools.
[11] Github. Repository Spsa Android module sources. URL:
https://github.com/jackbogdanov/DVFS-for-begonia/tree/android- 10.0.
[12] Github. Repository with test sources for DVFS algorithms testing. URL: https://github.com/bozhnyukAlex/dvfs_testing.
[13] Github. Robotium — Android test automation framework sources. URL: https://github.com/RobotiumTech/robotium.
[14] Granichin O. N. Linear regression and filtering under nonstandard assumptions (Arbitrary noise) // Trans. on Automatic Control. 2004. Vol. 49. Oct. №10. P. 1830-1835.
[15] J. Choi, B. Jung, Y. Choi, and S. Son, “An Adaptive and Integrated Low-Power Framework for Multicore Mobile Computing,” Mobile Information Systems, Jun 2017.
[16] K. Rao, S. Yalamanchili, Y. Wardi, J. Wang, H. Ye, “Application¬Specific Performance-Aware Energy Optimization on Android Mobile Devices,” in 2017 IEEE International Symposium on High Performance Computer Architecture, pp. 1-12, 2017.
[17] Kushner H.J., Yin G.G. Stochastic Approximation Algorithms and Applications. New York: Springer-Verlag. 1997. 415 p.
[18] L. Broyde, K. Nixon, X. Chen, H. Li, and Y. Chen, “MobiCore: An adaptive hybrid approach for power-efficient CPU management on Android devices,” in 2017 30th IEEE International System-on-Chip Conference (SOCC), pp. 221-226, Sep 2017.
[19] LLVM and Clang compiler toolchain built for kernel development. Github profile. URL: https://github.com/kdrag0n/proton-clang.
[20] The Linux Kernel documentation. CPU Performance Scaling
page. URL: https://www.kernel.org/doc/html/v4.15/admin-
guide/pm/cpufreq.html.
[21] Linux kernel official documentation. CPU frequency and
voltage scaling code in the Linux(TM) kernel. URL:
https://www.kernel.org/doc/Documentation/cpu-freq/governors.txt.
[22] Luis Alfonso Maeda-Nunez, “System-level power management using online machine learning for prediction and adaptation, University of Southampton,” in Faculty of Physical Sciences and Engineering, Doctoral Thesis, pp. 1-155, Jul 2016.
[23] MIUI official cite. Unlocking bootloader instruction. URL: http://www.miui.com/unlock/index_en.html.
[24] Mediatek official cite. MediaTek Helio G90 Series page. URL: https://www.mediatek.com/products/smartphones/mediatek-helio- g90-series.
[25] Mobile Vendor Market Share Russian Federation. Official cite. URL: https://gs.statcounter.com/vendor-market-share/mobile.
[26] Official Xiaomi kernel sources. URL:
https://github.com/MiCode/Xiaomi_Kernel_OpenSource.
[27] Official cite of benchmark for mobile decices — Antutu benchmark. Main page. URL: https://www.antutu.com/en/index.htm.
[28] Official cite of benchmark for mobile decices — Geekbench 5. URL: https://www.geekbench.com/.
[29] Potato open source project. Official cite. URL: https://potatoproject.co/.
[30] Previous researchers results. Google tables. URL: https://docs.google.com/spreadsheets/d/1JDhrmRp6oMgL_sZcg5oePtcB_Q
[31] S. A. Carvalho, D. C. Cunha, and A. G. Silva-Filho, “Autonomous Power Management for Embedded Systems Using a Non-linear Power Predictor,” in 2017 Euromicro Conference on Digital System Design (DSD). IEEE, Sep 2017.
[32] S. J. Cho, S. H. Yun, and J. W. Jeon, “A powersaving DVFS algorithm based on operational intensity for embedded systems,” pp. 1-6, Feb 2015.
[33] Snapdragon 888 5G Mobile Platform. Official processor page. URL: https://www.qualcomm.com/products/snapdragon-888-5g-mobile- platform.
[34] TeamWin - TWRP recovery. Official cite. URL: https://twrp.me.
[35] XDA forum for Android custom roms developers. Android governers overview. URL: https://forum.xda-developers.com/nexus- 4/general/guide-android-governors-explained-t2017715.
[36] Xiaomi official cite. Xiaomi redmi note8 pro page overview. URL: https://www.mi.com/global/redmi-note-8-pro.
[37] YouTube k k techno video chanel. How To MIUI 12 | Root With Magisk Manager install | Android 10 | Redmi note 8 pro |. URL: https://youtu.be/kIqDP8t3wZA.
[38] Граничин О. Н., Поляк Б. Т. Рандомизированные алгоритмы оценивания и оптимизации при почти произвольных помехах. М.: Hаука. 2003. 291 с.
[39] Краснощеков В. Е. Рандомизированный алгоритм для оптимизации энергопотребления в мобильных устройствах. : Стохастическая оптимизация в информатике. 2006. 204 с.


Работу высылаем на протяжении 30 минут после оплаты.




©2025 Cервис помощи студентам в выполнении работ