gem5 Version 24.0.0.0 released! #1296
BobbyRBruce
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Version 24.0
gem5 Version 24.0 is the first major release of 2024.
During this time there have been 298 pull requests merged, comprising of over 600 commits, from 56 unique contributors.
API and user-facing changes
Compiler and OS support
As of this release gem5 support Clang version 6 to 16 and GCC version 10 to 13.
While other compilers and versions may work, they are not regularly tested.
gem5 now supports building, running, and simulating on Ubuntu 24.04.
We continue to support 22.04 with 20.04 being deprecated in the coming year.
The majority of our testing is done on Ubuntu LTS systems though Apple Silicon machines and other Linux distributions have also been used regularly during development.
Improvements have been made to ensure a wider support of operating systems.
New features
gem5 MultiSim: Multiprocessing for gem5
The gem5 "MultiSim" module allows for multiple simulations to be run from a single gem5 execution via a single gem5 configuration script.
This allows for multiple simulations to be run in parallel in a structured manner.
To use MultiSim first create multiple simulators and add them to the MultiSim with the
add_simulator
function.If needed, limit the maximum number of parallel processes with the
set_num_processes
function.Then run the simulations in parallel with the
gem5
binary using-m gem5.utils.multisim
.Here is an example of how to use MultiSim:
Then to run the simulations in parallel:
The output directory ("m5out" by default) will contain sub-directories for each simulation run.
The sub-directory will be named after the simulator ID set in the configuration script.
We therefore recommend setting the simulator ID to something meaningful to help identify the output directories (i.e., the workload run or something identifying the meaningful characteristics of the simulated system in comparison to others).
If only one simulation specified in the config needs run, you can do so with:
Example scripts of using MultiSim can be found in "configs/example/gem5_library/multisim".
RISC-V Vector Extension Support
There have been significant improvements to the RVV support in gem5 including
General RISC-V bugfixes
Improvements
obtain_resources
function can request multiple resources at once thus reducing delay associated with multiple requests.This can be used to build and run gem5 in consistent environment and enables GitHub Codespaces support.
gem5 Python Statistics
The gem5 Python statistics API has been improved.
The gem5 Project's general intent with this improvement is make it easier and more desirable to obtain and interact with gem5 simulation statistics via Python.
For example, the following code snippet demonstrates how to obtain statistics from a gem5 simulation:
We hope the usage of the gem5 Python statistics API will be more intuitive and easier to use while allowing better processing of statistical data.
GPU Model
Bug Fixes
AddrRange
class has been fixed.Arm FEAT_MPAM Support
An initial implementation of FEAT_MPAM has been introduced in gem5 with the capability to statically partition
classic caches. Guidance on how to use this is available on a Arm community blog post
This discussion was created from the release Version 24.0.0.0.
Beta Was this translation helpful? Give feedback.
All reactions