| --- |
| layout: post |
| title: "gem5-21.1 Roadmap" |
| author: Jason Lowe-Power |
| date: 2021-04-25 |
| categories: project |
| --- |
| |
| Early on in each release, we like to provide the community with a roadmap of what is being developed for the next gem5 release. |
| This is a community-based document, and it is a summary of what different developers are currently work on. |
| If you have something that you're working on that you are planning to contribute before the gem5-21.1 release, we'd love to include it here! |
| |
| To contribute to the roadmap you can following the steps below: |
| |
| 1. Create a issue or an epic on our [issue tracker](https://gem5.atlassian.net/jira/software/c/projects/GEM5/issues/). If the contribution is large with many different individual contributions, it would be best to create an epic to group all of the separate issues together. |
| 2. Mark the issue as "Fix version 21.1" and assign yourself as the "Assignee". |
| 3. Update [this roadmap document](https://gem5.googlesource.com/public/gem5-website/+/refs/heads/stable/_posts/2021-04-25-gem5-21-1-roadmap.md) by [downloading the website source](https://gem5.googlesource.com/public/gem5-website/) and creating a changeset [on gerrit](https://gem5.googlesource.com/public/gem5-website/+/refs/heads/stable/README.md). |
| |
| ## Roadmap for 21.1 |
| |
| We're planning to release gem5-21.1 **during July** (about 4 months after the gem5-21.0 release). |
| Below are the main features we're currently planning on including in 21.1. |
| |
| ### [gem5 component library](https://gem5.atlassian.net/browse/GEM5-648) |
| |
| Wouldn't it be cool if using gem5 was like walking into [Microcenter](https://www.microcenter.com/) and choosing components? |
| The goal of this project is to make this happen! |
| |
| We will create a library of components and "known-good" configurations. |
| With the *components*, you can choose components like different cache systems (e.g., private L1, shared L2), different CPUs, and different RAMs to plug into a "board" to create a system. |
| |
| Alternatively, you can choose to use one of our prebuilt systems as a baseline. |
| These prebuilt systems will be benchmarked/tested and the data will be publically available on the gem5-resources webpage: <http://resources.gem5.org/>. |
| |
| For the components, the goal is that they are always composable. |
| In other words, any memory can be connected to any cache system which can be connected to any CPU. |
| And, hopefully, this will work for any ISA, etc. |
| |
| We're working on the details now and will have a proposal on gerrit in the next few weeks. |
| If you have feedback feel free to let us know on gem5-dev mailing list, the [Jira issue](https://gem5.atlassian.net/browse/GEM5-648), or the gerrit changesets when they are posted. |
| |
| ### [Continue improving python-based stats](https://gem5.atlassian.net/browse/GEM5-644) |
| |
| In [gem5-21.0]({% post_url 2021-03-19-gem5-21-0 %}), we implemented a python-based API for accessing stats. |
| However, this was not enabled by default. |
| In 21.1, we are expecting this API to be improved and more features added. |
| Let us know what you would like to see from a new stats interface in the [Jira issue](https://gem5.atlassian.net/browse/GEM5-644) or on the mailing list! |
| |
| ### [SST integration](https://gem5.atlassian.net/browse/GEM5-399) |
| |
| We have been working to revamp the gem5-SST integration for a couple of releases now. |
| We started by [creating a documented stable API](https://gem5.atlassian.net/browse/GEM5-172), which still has a few unresolved issues. |
| We expect that by 21.1 we will have a proof-of-concept where gem5 can be used as a component in SST. |
| |
| ### [Upstreaming power-gem5](https://gem5.atlassian.net/browse/GEM5-959) |
| |
| POWER support in gem5 has languished over the years. |
| However, there has been significant effort in a [fork of gem5](https://github.com/power-gem5/gem5/tree/develop-power) to update to the latest POWER features and improve the support. |
| |
| There are currently many changes on gerrit: E.g., <https://gem5-review.googlesource.com/c/public/gem5/+/40948> working to merge these two. |
| We would appreciate reviews and feedback on these changes especially if POWER support is important to you! |
| |
| ### GPU updates |
| |
| #### [Full system GPU](https://gem5.atlassian.net/browse/GEM5-195) |
| |
| Currently, gem5 also only supports GPU runs in SE mode, not FS mode. |
| As part of the next release, we plan on releasing FS mode support for gem5 GPU models. |
| |
| #### [Supporting new runtimes and GPUs](https://gem5.atlassian.net/browse/GEM5-962) |
| |
| Currently gem5's SE mode GPU support is for ROCm 1.6 and Carrizo-class GPUs, which is fairly old now. |
| To help address this, we are planning on releasing support for ROCm 4.0 in the next version of gem5. |
| Moreover, we will also include support for Vega-class GPUs, which are more modern. |
| |
| ### Other things we're working on |
| |
| Below are some other things that we have either started to work on or would like to do, but are either smaller or on the back burner. |
| If anyone is interested in contributing, picking up one of these issues could be a great way! |
| |
| - [Improving the multi-level TLB models](https://gem5.atlassian.net/browse/GEM5-790) |
| - No current active development, but significant interest from many different users/developers |
| - [Pydoc documentation](https://gem5.atlassian.net/browse/GEM5-647) |
| - [RISC-V PMP support](https://gem5.atlassian.net/browse/GEM5-917) |
| - [Upgrade the replacement policies API to support state-of-the-art replacement policies](https://gem5.atlassian.net/jira/software/c/projects/GEM5/issues/GEM5-204) |
| - [The respective chain does the change and adds SHiP to exemplify](https://gem5-review.googlesource.com/c/public/gem5/+/38118/5) |
| - [Enable GTesting of SimObjects (key part) and add as many unit tests as possible](https://gem5.atlassian.net/jira/software/c/projects/GEM5/issues/GEM5-4) |
| - (Respective chain)[https://gem5-review.googlesource.com/c/public/gem5/+/44109/3] |
| - If the key changes of the GTesting issue are merged, [revamp probes](https://gem5.atlassian.net/jira/software/c/projects/GEM5/issues/GEM5-857) |
| - [Respective chain](https://gem5-review.googlesource.com/c/public/gem5/+/38706/1) |
| - Finally, add a gem5 namespace. The change itself does not necessarily need to be over by the next version, but it would be great to have a decision and the very few first steps taken by then. |
| - See <https://gem5.atlassian.net/jira/software/c/projects/GEM5/issues/GEM5-730> |