Skip to content

[GSoC 2021] Performance Tracking in CI

Alex Reinking edited this page Mar 19, 2021 · 7 revisions

Create a web app that integrates with our buildbot infrastructure to track the performance of many aspects of Halide over time.

Detailed description

Halide is a performance-critical system, so it is imperative that we understand the performance impact of every change we make. This project aims to create a web app to measure and visualize compile times, code size, memory footprint (RSS and stack usage), and execution speed for both the compiler proper and the optimized pipelines. When evaluating a pull request, it should be clear at a glance if any metric changed (whether faster or slower).

Expected outcomes

  • Visualize performance metrics over time
  • Visualize performance changes for a particular pull request
  • Fully automated reporting via the GitHub API and WebSocket updates.

Stretch goals include:

  • Expanding the scope of our existing performance testing.
  • Tracking non-numeric metrics, such as warnings.

Skills

No prior Halide or C++ experience is required for this project.

  • Python 3.6+
  • SQL
  • Git
  • Web development / JavaScript
    • Some application framework (ideally Svelte or Vue)
    • Some visualization framework (eg. ECharts or d3)

Difficulty level

Medium, maybe Easy if you have significant web development experience.

Resources

The source code for the buildbots is available here: https://github.com/halide/build_bot

Application materials

When reaching out to apply for this project, please include the following:

  1. A web development portfolio, including:
    1. Links to published websites you have either developed yourself or contributed to significantly.
    2. A link to the website's sources, if possible.
  2. Source code samples in Python, ie. links to a GitHub repo with clear contributions
  3. Source code samples in JavaScript, ie. links to a GitHub repo with clear contributions

We will likely ask you, as part of your application, to write a small sample web application.

Incomplete applications will not be considered.

Mentors