gem5 Version 23.1 Release: A Leap Forward in Computer Architecture Simulation

The gem5 computer architecture simulation tool has released its latest milestone - Version 23.1. This release marks a significant step in gem5’s development as it transitions to GitHub and introduces several groundbreaking features and improvements. In this blog post, we’ll dive into the key changes and enhancements that come with gem5 v23.1.

A Shift to GitHub Development

One of the most notable changes in gem5 v23.1 is the transition to GitHub for development. This shift to a popular platform for collaborative software development fosters greater transparency and community involvement. During this release, an impressive 362 pull requests were merged, comprising 416 commits from 51 unique contributors. This level of community engagement reflects gem5’s commitment to open-source collaboration.

Streamlined Configuration with Kconfig

The gem5 simulator’s build configuration has undergone a transformation with the introduction of kconfig. While most gem5 builds remain backward-compatible, specialized builds now require the use of scons <kconfig command>. This change allows users to tailor their gem5 installations to specific needs and is detailed in the kconfig documentation.

Standard Library Improvements

The gem5 simulator’s v23.1 release introduces several standard library improvements, including the introduction of WorkloadResource to resource specialization. The older Workload and CustomWorkload classes have been deprecated in favor of the new obtain_resource and WorkloadResource classes in Users can easily update their code by following the provided migration instructions.

Moreover, gem5 introduces “Suites”, a new category of resource. These suites enhance the versatility and functionality of gem5 simulations, opening up new possibilities for users.

API Changes and Enhancements

Version 23.1 brings several changes to the API, making it more informative and flexible. Resource objects now have their own id and category, and the __str__() function provides detailed information. Users can utilize environment variables like GEM5_RESOURCE_JSON and GEM5_RESOURCE_JSON_APPEND to customize data sources using JSON files, offering more control over resource management.

Support for Latest Tools and Platforms

Version 23.1 of gem5 ensures compatibility with the latest tools and platforms, with added support for clang 15 and clang 16. However, it’s important to note that gem5 no longer supports building on Ubuntu 18.04, and GCC 7, GCC 9, and clang 6 are no longer supported.

Full-System GPU Model Enhancements

This release significantly enhances the full-system GPU model. Users can now leverage gem5 to simulate the latest ROCm 5.7.1, and various updates enable PyTorch and TensorFlow simulations. The inclusion of a new packer disk image script containing ROCm 5.4.2, PyTorch 2.0.1, and TensorFlow 2.11 opens up exciting possibilities for GPU simulation.

RISC-V RVV 1.0 Implementation

A major achievement in gem5 v23.1 is the implementation of RISC-V RVV 1.0. This feature, the result of collaborative efforts from numerous contributors, brings most of the instructions in the 1.0 specification to life. RVV 1.0 is compatible with various CPU models, supports both FS and SE modes, and allows users to specify vector unit widths. While there is room for future improvements, this implementation is a significant step forward for RISC-V support in gem5.

ArmISA Changes and Improvements

Version 23.1 of gem5 introduces architectural support for several Arm extensions, enhancing SVE instruction support, addressing FEAT_SEL2 related issues, and implementing an Arm Capstone Disassembler. These changes and improvements further solidify gem5’s compatibility with Arm-based systems.

Other Notable Changes

Several other notable changes and improvements have been made, including:

Known Bugs and Issues

While gem5 v23.1 brings significant improvements, there are some known bugs and issues that the development team is actively addressing. The gem5 community encourages users to report any issues they encounter to help improve the tool’s reliability.

In conclusion, gem5 Version 23.1 is a remarkable release that reflects the project’s continued commitment to excellence, collaboration, and innovation in the field of computer architecture simulation. As gem5 transitions to GitHub, it opens new doors for community involvement and further advancements. Researchers, developers, and enthusiasts alike can look forward to an enhanced simulation experience with gem5 v23.1.

To get started with gem5 v23.1 and explore its new features, visit the official gem5 website and consult the documentation. Join the gem5 community, provide feedback, and contribute to the evolution of this powerful simulation tool. Your engagement is essential in shaping the future of computer architecture research and development.