OpenROAD™ aims to continually improve the quality of the application and results i.e PPA for designs. One of the ways to do this is to track CI both internally within the project tools and design repository and enable users to manage their design and CI environment.
OpenROAD uses METRICS2.1 to log design data and track results through continuous monitoring of key design parameters and their impact on QoR.
This blog shows you how to configure your repo to track GH based notifications and hence better manage your design goals and software environment.
Use Models for GitHub notifications
OpenROAD™ implements a set of automatic CI processes through GitHub Actions workflows that automatically trigger upon key events. You can choose to be notified about important events of interest such as design changes, software updates and potential QoR improvements. This will help you automate your design changes and ensure you are using the latest software version. You will also deepen your understanding of the design flow, tool issues and bugs through GitHub Participation and thus enhance your productivity. You can selectively control and manage the type and degree of notifications through Settings in your repository.
Here are a few examples of use models for such notifications:
- Re-run a design flow due to a change in the software version.
- Re-run a design flow due to changes in the design configuration or source code.
- Use METRICS2.1 to automatically track results for better PPA, run times and overall flow efficiency.
Git actions for 1 and 2 above are supported currently. Using METRICS2.1 to track QoR is in development.
The screenshot below shows examples of GitAction workflows that trigger for (1) and (2) cases above.
Here’s a screenshot of an OpenROAD internal jenkins dashboard that tracks key flow and design METRICS across multiple CI runs. You can see how these METRICS change across software updates. Note the improvements to clock latency, skew and setup time improvements for this design across the last 3 runs.
Managing your CI using Git actions or email notifications
You can use GitHub notification and email to track important events of interest to you such as PRs.
Here is an example of how to automatically update the OpenLane version through a git action: https://theopenroadproject.org/using-git-action/
Learn how to configure notifications, manage and filter subscriptions:
- https://docs.GitHub.com/en/account-and-profile/managing-subscriptions-and-notifications-on-GitHub/setting-up-notifications/configuring-notifications#notification-delivery-options
- https://docs.GitHub.com/en/account-and-profile/managing-subscriptions-and-notifications-on-GitHub/managing-subscriptions-for-activity-on-GitHub/viewing-your-subscriptions
- https://docs.GitHub.com/en/account-and-profile/managing-subscriptions-and-notifications-on-GitHub/setting-up-notifications/configuring-notifications#filtering-email-notifications
Here’s how to integrate GH email into your repo for notifications https://docs.GitHub.com/en/repositories/managing-your-repositorys-settings-and-features/managing-repository-settings/about-email-notifications-for-pushes-to-your-repository
Stay tuned for more updates on using Git actions and METRICS to effectively manage your design environment and quality of results.
References
IEEE CEDA/DATC repo https://GitHub.com/ieee-ceda-datc/datc-rdf-METRICS4ML
METRICS2.1 ICCAD 21 paper (.pdf), (.pptx), Proc. ACM/IEEE International Conference on Computer-Aided Design, 2021.