← Nieuwste papers
💻 computer science

MileStone: A Multi-Objective Compiler Phase Ordering Framework for Graph-based IR-Level Optimization

MileStone is een modulaire, meerdoelige compilerframework die gebruikmaakt van grafische neurale netwerken en versterkend leren om optimale reeksen van transformatiestappen te ontdekken, waardoor de uitvoeringstijd aanzienlijk wordt verkort terwijl wordt voldaan aan energiebeperkingen en bestaande optimalisatiemethoden worden overtroffen.

Oorspronkelijke auteurs: Amirhosein Sadr, Mehran Alidoost Nia

Gepubliceerd 2026-05-25
📖 5 min leestijd🧠 Diepgaand

Oorspronkelijke auteurs: Amirhosein Sadr, Mehran Alidoost Nia

Oorspronkelijk artikel gelicentieerd onder CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Dit is een AI-gegenereerde uitleg van het onderstaande artikel. Het is niet geschreven of goedgekeurd door de auteurs. Raadpleeg het oorspronkelijke artikel voor technische nauwkeurigheid. Lees de volledige disclaimer

Stel je voor dat je probeert de perfecte taart te bakken. Je hebt een lijst met ingrediënten (jouw computercode) en een reeks mogelijke stappen die je kunt nemen: langer mixen, heter bakken, meer suiker toevoegen of het beslag voorzichtig vouwen. In de wereld van computers worden deze stappen compiler passes genoemd.

Het probleem is dat er miljoenen manieren zijn om deze stappen te ordenen. Sommige volgorde zorgen voor een taart die heerlijk smaakt, maar eeuwig lang in de oven moeten staan. Andere zorgen voor een snelle bak, maar laten de taart droog achter. De standaardmanier waarop computers hiermee omgaan, is door een "vooraf ingesteld" recept te kiezen (zoals "Optimalisatie Niveau 3") dat voor iedereen acceptabel werkt, maar zelden perfect is voor jouw specifieke taart.

Dit artikel introduceert MileStone, een slim, door AI aangedreven systeem dat is ontworpen om de perfecte volgorde van stappen te vinden voor elk specifiek programma, waarbij drie concurrerende doelen in evenwicht worden gebracht:

  1. Snelheid (Hoe snel draait het?)
  2. Grootte (Hoeveel geheugen neemt het in beslag?)
  3. Energie (Hoeveel batterij verbruikt het?)

Hier is hoe MileStone werkt, opgesplitst in eenvoudige concepten:

1. De Kaart: Code omzetten in een Grafiek

In plaats van code regel voor regel te lezen zoals een mens, zet MileStone het programma om in een Control and Data Flow Graph (CDFG) (Stroom- en Dataflowgrafiek).

  • De Analogie: Denk aan de code als een stad. De instructies zijn de gebouwen en de lijnen die ze verbinden zijn de wegen. Sommige wegen tonen de volgorde waarin je moet rijden (Control Flow), en andere tonen waar de lading (data) wordt verplaatst (Data Flow).
  • Waarom dit helpt: Deze kaart laat de AI de structuur van het programma zien, niet alleen de tekst. Het begrijpt hoe verschillende delen van de code op elkaar zijn aangewezen.

2. De Kristallen Bol: Het Graph Neural Network (GNN)

MileStone gebruikt een speciaal type AI, een Graph Neural Network (GNN), om te fungeren als een kristallen bol.

  • De Analogie: Stel je voor dat je een meesterkok hebt die duizenden taarten heeft geproefd. Als je hen een nieuw recept laat zien (de grafiek), kunnen ze direct voorspellen: "Als je dit bakt op 175 graden, duurt het 45 minuten, weegt het 1 kilo en gebruikt het 500 calorieën."
  • Wat het doet: In plaats van het programma daadwerkelijk uit te voeren (wat tijd en energie kost), kijkt het GNN naar de grafiek en voorspelt het de snelheid, grootte en energieverbruik. Dit bespaart een enorme hoeveelheid tijd.

3. De Ontdekker: Reinforcement Learning (RL)

Zodra de AI zijn kristallen bol heeft, moet hij het beste pad door de stad vinden. Dit wordt gedaan door een Reinforcement Learning (RL) agent.

  • De Analogie: Denk aan deze agent als een bezorger die probeert de snelste route te vinden. Hij begint aan het begin van de grafiek. Bij elke kruising (elk deel van de code) moet hij beslissen: "Neem ik de afkorting (optimaliseren voor snelheid) of de schilderachtige route (optimaliseren voor grootte)?"
  • Het Doel: De bestuurder krijgt pas aan het einde een "beloning". Als hij aankomt met een snel, klein en energiezuinig pakket, krijgt hij een hoge score. Als hij de batterij leegrijdt of te lang doet, krijgt hij een lage score. De bestuurder leert van duizenden pogingen om de perfecte route te vinden.

4. De Zelfverbeterende Bibliotheek

MileStone heeft een uniek kenmerk: het bouwt zijn eigen kennisbibliotheek.

  • De Analogie: Elke keer dat de bestuurder een nieuwe route probeert en de "kok" (het GNN) het resultaat voorspelt, schrijft MileStone het op in een notitieboekje. Na verloop van tijd wordt dit notitieboekje een enorme database van wat wel en wat niet werkt.
  • Het Voordeel: Naarmate het systeem dit notitieboekje gebruikt, wordt de "kok" beter in het voorspellen en wordt de "bestuurder" beter in het vinden van routes. Het is een zelfverbeterende cyclus die slimmer wordt naarmate het meer wordt gebruikt.

De Grote Overwinning: Het Balanceren van Afwegingen

Het belangrijkste wat MileStone doet, is omgaan met conflicterende doelen.

  • Meestal zorgt het sneller maken van code ervoor dat het groter wordt en meer energie verbruikt.
  • Standaard compilers kiezen gewoon één doel (meestal snelheid).
  • MileStone stelt je in staat een regel te stellen, zoals: "Ik heb een strikt batterijlimiet van 5 Joule." Het vindt vervolgens de snelst mogelijke snelheid zonder dat batterijlimiet te schenden.

De Resultaten

Toen de onderzoekers MileStone testten op standaard benchmarks:

  • Vond het "Pareto-optimale" oplossingen. In gewone taal zijn dit de "sweet spots" waar je één ding (zoals snelheid) niet kunt verbeteren zonder iets anders (zoals energie) erger te maken.
  • Het sloeg standaard compiler-instellingen (zoals het beroemde niveau -O3) aanzienlijk.
  • Onder hetzelfde energiebudget verkleinde MileStone de uitvoeringstijd met maximaal 45%.
  • Het was veel beter in het voldoen aan specifieke energielimieten dan traditionele methoden of andere AI-benaderingen.

Kort samengevat: MileStone is als een superslim, zelflerend navigatiesysteem voor computercode. In plaats van een generieke kaart te gebruiken, tekent het een aangepaste kaart voor elk programma, voorspelt het de uitkomst van elke mogelijke route en rijdt je naar de bestemming die de perfecte balans is tussen snelheid, grootte en energie-efficiëntie.

Verdrinkt u in papers in uw vakgebied?

Ontvang dagelijkse digests van de nieuwste papers die bij uw onderzoekswoorden passen — met technische samenvattingen, in uw taal.

Probeer Digest →