diff --git a/OpenProjects.html b/OpenProjects.html --- a/OpenProjects.html +++ b/OpenProjects.html @@ -14,6 +14,7 @@
  • Improving compile times
  • Addressing Rust optimization failures
  • Remove undefined behavior from tests
  • +
  • Better performance models for MLGO training
  • @@ -758,6 +759,38 @@

    + +
    + Better performance models for MLGO training +
    + +
    +

    Description of the project + We are using machine-guided compiler optimizations ("MLGO") for register allocation eviction and inlining for size, in + real-life deployments. The ML models have been trained with reinforcement learning algorithms. Expanding to more + performance areas is currently impeded by the poor prediction quality of our performance estimation models. Improving + those is critical to the effectiveness of reinforcement learning training algorithms, and therefore to enabling applying + MLGO systematically to more optimizations. +

    +

    Project size: either 175 or 350 hr.

    +

    Difficulty: Medium

    +

    Skills: C/C++, some compiler experience, some Python. ML experience is a bonus.

    +

    Expected outcomes: Better modeling of the execution environment by including additional runtime/profiling + information, such as additional PMU data, LLC miss probabilities or branch mispredictions. This involves (1) building + a data collection pipeline that covers additional runtime information, (2) modifying the ML models to allow processing + this data, and (3) modifying the training and inference process for the models to make use this data. +

    Today, the models are almost pure static analysis; they see the instructions, but they make one-size-fits-all + assumptions about the execution environment and the runtime behavior of the code. The goal of this project is to move + from static analysis towards more dynamic models that better represent code the way it actually executes.

    +

    Mentors + Ondrej Sykora, Mircea Trofin, Aiden Grossman +

    +

    + Discourse + URL +

    +
    +
    Machine Learning Guided Ordering of Compiler Optimization Passes