Energy Aware Scheduling verlaagt stroomverbruik Arm-chips in Linux 5.0-kernel

De performance van programma's ligt niet alleen aan chips, maar wordt ook beinvloed door het besturingssysteem. De scheduler is daar het belangrijkste onderdeel van, deze bepaald welke taken naar welke processorkernen gaan. Recent zagen we bijvoorbeeld dat bij AMD's Ryzen Threadripper- en Epyc-processoren flinke winst viel te behalen op Windows door beter rekening te houden met verschillende latencies naar verschillende stukken geheugen.

Waar bij Threadripper het ging om dezelfde cores met verschillende geheugenlatencies, heeft Arm een andere uitdaging: tegenwoordig bevatten steeds meer Arm-chips meerdere soorten cores. Nu big.Little is opgevolgd oor DynamIQ is er heel veel flexibiliteit in CPU-configuraties met verschillende soorten CPU-kernen, met elk eigen performance- en efficiëntiekarakteristieken. 

Het optimaal benutten van de verschillende eigenschappen van de verschillende cores is echter nog een terrein waar winst te behalen valt. Arm heeft daarom voor de Linux-kernel Energy Aware Scheduling ontwikkeld, een planner die rekening houdt met het stroomverbruik van elke core. Hierdoor kan het verschillende taken door rekenkern uit laten voeren die én de juiste performance biedt én daar het efficientst voor is.

Om dit te kunnen doen wordt intern een Energy Model opgebouwd, die bijhoudt hoeveel stroom een taak verbruikt en hoe lang de cpu-kern daar mee bezig is. Voor een volgende taak kan het EM dan voorspellen welke core het efficienst voor de uitvoering kan zijn.

EAS zit nu in de mainline Linux-kernel wat betekend dat het in alle toekomstige releases zit, de eerstvolgende 5.0. EAS was al geintegreerd in de Android-tak van de kernel, maar zit nu dus ook in de mainstreamversie was onderhoudt moet versimpelen. ChromeOS, Ubuntu en alle andere Linux-distro's kunnen vanaf 5.0 ook gebruik maken van Energy Aware Scheduling.

Bron: Arm

0