Blog


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

by Jason Lowe-Power

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...

Read more...




Benchmarking Linkers within gem5

by Melissa Jost

tl;dr: Use the mold linker for the fastest linking times when building gem5

People familiar with gem5 are aware of its lengthy compilation time, especially during the linking stage. This can become frustrating when even a minor edit necessitates re-linking previously compiled files. This can add several minutes to the process. Keeping this in mind, we evaluated a range of currently supported linkers with gem5 to determin...

Read more...




“Moving to full system simulation of GPU applications”

by Matthew Poremba

For over a decade gem5 has supported two modes of simulation: full system (FS) mode where the simulator uses a disk image and a kernel to boot an instance of Linux and run applications on the disk image and System-emulation (SE) mode where the simulator runs applications on the host machine and intercepts system calls and provides emulation for them. Up until a few years ago, binaries run in SE mode were required to be statically linked to be run. Dynamically linked binaries can now be run...

Read more...




gem5-22.1 Released!

by Bobby R. Bruce

The latter half of 2022 saw 500 commits submitted to gem5, from 48 unique contributors

Our top 10 contributors for the v22.1 release were:

  • Bobby R. Bruce (143 commits)
  • Giacomo Travaglini (63 commits)
  • Gabe Black (53 commits)
  • Matthew Poremba (49 commits)
  • Jason Lowe-Power (19 commits)
  • Yu-hsin Wang (18 commits)
  • Zhantong Qiu (11 commits)
  • Earl Ou (10 commits)
  • Tiago Mück (9 commits)

    Read more...




    gem5-22.0 Released!

    by Jason Lowe-Power

    First of all, thank you to all of the contributors who made this another great gem5 release! We’ll be talking about this release and many other cool things that have happened in the gem5 community over the past few years at the gem5 workshop with ISCA 2022. You can find a livestream and recording on our youtube channel.

    gem5 version ...

    Read more...




    The Case for Using Guix to Solve the gem5 Packaging Problem

    by Christopher Batten1, Pjotr Prins2, Efraim Flashner2, Arun Isaac2,Ekaiz Zarraga2, Erik Garrison2, Tuan Ta1

    1 School of Electrical and Computer Engineering, Cornell University, Ithaca, NY
    2 The University of Tennessee Health Science Center, Memphis, TN
    3 ElenQ Technology

    This post will first describe the gem5 packaging problem before making the case for using Guix, a mature functional cross-platform package manager, for building, distributing, installing, and managing the gem5 ecosystem.

    The gem5 Pack...

    Read more...




    Support for LupIO devices in gem5

    by Joël Porquet-Lupine

    The case for a comprehensive and open-source collection of I/O devices

    As all the gem5 users probably know, researchers in computer architecture often need to build a full hardware system in order to, for example, experiment a novel micro-architectural approach. In such a scenario, creating I/O devices for the system is typically not the main goal but only a necessary step, and researchers will therefore l...

    Read more...




    gem5-21.2 Released!

    by Bobby R. Bruce

    We are proud to announce version 21.2 of the the gem5 project. In this release we incorporated 790 commits from 33 unique authors, new and regular, from both academia and industry. We are, as always, thankful to all the time our community puts into maintaining and improving gem5.

    21.2 Highlights

    Enhanced Standard Library

    Having existed since v21.1 under the now deprecated name “the components library”, the v21.2...

    Read more...




    gem5-21.1 Roadmap

    by Jason Lowe-Power

    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 ...

      Read more...




      gem5-21.0 Released!

      by Jason Lowe-Power

      Version 21.0 marks one full year of gem5 releases, and on this anniversary, I think we have some of the biggest new features yet! This has been a very productive release with 100 issues, over 813 commits, and 49 unique contributors.

      21.0 New features

      AMBA CHI protocol implemented in SLICC: Contributed by Tiago Mück

      ...

      Read more...




      Arm's Transactional Memory Extension support in gem5

      by Timothy Hayes

      This post was originally posted on the Arm Research Blog: here

      April 16 2021: The code example in this article has been updated to reflect the Armv9-A architecture release and to be ...

      Read more...




      gem5-20.1 Released!

      by Jason Lowe-Power

      gem5-20.1 has been released! The stable branch of the gem5 repo now points to the gem5-20.1 release instead of the gem5-20.0 release. Overall, the 20.1 release was much smoother than the gem5-19 and gem5-20.1 release. I think we’re learning how to do this!

      Thank you to everyone that made this release possib...

      Read more...




      gem5 O3CPU Backend Documentation Update

      by Zhengrong Wang

      The documentation about gem5 O3CPU is a little bit abstract and not closely related to the code. Therefore, this post extracts key function chains to show how an instruction is handled by the backend, with some basic description to ease the learning curve of the O3CPU backend (IEW and Commit stage).

      Hopefully this could help more people. Reader should already be familiar with gem5. This post has also been added to the

      Read more...




      gem5-20.1 Roadmap

      by Jason Lowe-Power and Bobby Bruce

      After our successful release of gem5-20, it’s time to start thinking about gem5’s next release, gem5-20.1!

      We received great feedback during the gem5 town hall held with the gem5 workshop about the new features that the community would like to see for the next release.

      Based on this feedback, below are the major projects...

      Read more...




      Town Hall Meeting notes

      by Bobby R. Bruce

      On Wednesday June 3rd the gem5 Workshop Town hall was held.

      This session was recorded and is publicly available for viewing:

      Noted below are the highlights from the meeting:

      • A question was raised about minor releases. While we are open to the idea of rele...

        Read more...




        Towards full-system discrete GPU simulation

        by Mattew Poremba, Alexandru Dutu, Gaurav Jain, Pouya Fotouhi, Michael Boyer, and Bradford M. Beckmann.

        AMD Research is developing a full system GPU (Graphics Processing Unit) model capable of using the amdgpu Linux kernel driver and the most up to date software stacks. Previously AMD updated the gem5 [1] GPU compute timing model to execute the GCN (Graphics Core Next) generation 3 machine ISA [2,3], but it still relied on system-call emulation. With full-system support, the model can run the most recent open-source Radeon Open Compute platform (ROCm) stack without modification. This allows...

        Read more...




        Adaptive Traffic Profiles as a tool to model heterogeneous systems in gem5

        by Matteo Andreozzi, Frances Conboy, Giovanni Stea, and Raffaele Zippo

        Heterogeneous systems, composed of a variety of devices, are especially difficult to design and dimension for target use-cases. There is a pressing need for tools that can facilitate the exploration of their design space, so that designers and testers can be allowed to predict or measure performance on their target use-cases. On the other hand, a new generation of applications, such as automated driving or Industry 4.0 ones, is putting challenging requirements on heterogeneous systems. The...

        Read more...




        Enabling Multi-GPU Support in gem5

        by Bobbi W. Yogatama, Matthew D. Sinclair, Michael M. Swift

        Introduction

        In the past decade, GPUs have become an important resource for compute-intensive, general-purpose GPU applications such as machine learning, big data analysis, and large-scale simulations. In the future, with the explosion of machine learning and big data, application demands will keep increasing, resulting in more data and computation being pushed to GPUs. However, due to the slowing of Moore’s Law and rising manufacturing costs, it is becoming mor...

        Read more...




        A Modular and Secure System Architecture for the IoT

        by Nils Asmussen, Hermann Härtig, and Gerhard Fettweis

        Introduction

        The “Internet of Things (IoT)” is already pervasive in industrial production and it is expected to become ubiquitous in many other sectors, too. For example, such connected devices have great potential to better automate and optimize critical infrastructure such as electrical grids and transportation networks and are also promising for health care applications. However, a one-size-fits-all solution for the compute hardware and system software of all...

        Read more...




        gem5 GUI

        by Shivam Desai, Rohit Dhamankar, Ravishdeep Singh, Ahmed Farooqui, Jason Lowe-Power, and Bobby R. Bruce

        Overview

        Background and Motivation

        The current state of gem5 requires the development of python scripts to define and generate different architectures. This can be tedious to develop since the user flow can result in less visual thinking. We want a tool to have a better user flow to allow developers to create and tweak these models in a visual manner, much like Chisel. To make gem5 more accessible and allow new users to utili...

        Read more...




        A flexible cache coherency protocol for the Ruby memory system

        by Tiago Mück

        Gem5’s Ruby memory subsystem provides flexible on-chip network models and multiple cache coherency protocols modeled in detail. However, simple experiments are sometimes difficult to pull off. For instance, modifying an existing configuration by just adding another shared cache level requires either:

        1. switching to an entirely new protocol that models the desired cache hierarchy;
        2. or modify an existing protocol;

        While (1) is not always an option, (2) ...

        Read more...




        Modeling Modern GPU Applications in gem5

        by Kyle Roarty and Matthew D. Sinclair

        In 2018, AMD added support for an updated gem5 GPU model based on their GCN3 architecture. Having a high-fidelity GPU model allows for more accurate research into optimizing modern GPU applications. However, the complexity of getting the necessary libraries and drivers, needed for this model to run GPU applications in gem5, made it difficult to use. This post describes the work we have done with increasing the usability of the GPU model by simplifying the setup process, extending the typ...

        Read more...




        Memory controller updates for new DRAM technologies, NVM interfaces and flexible memory topologies

        by Wendy Elsasser and Nikos Nikoleris

        Adding LPDDR5 support to DRAMCtrl

        LPDDR5 is currently in mass production for use in multiple markets including mobile, automotive, AI, and 5G. This technology is expected to become the mainstream Flagship Low-Power DRAM by 2021 with anticipated longevity due to proposed speed grade extensions. The specification defines a flexible architecture and multiple options to optimize across different use cases, trading off power, performance, reliabi...

        Read more...




        HeteroGarnet - A Detailed Simulator for Diverse Interconnect Systems

        by Srikant Bharadwaj, Jieming Ying, Bradford Beckmann, and Tushar Krishna

        Networks-on-Chips (NoCs) have become inevitably more complex with the increased heterogeneity of Systems-On-Chip (SoCs). Recent advances in die-stacking and 2.5D chip integration introduce in-package network heterogeneities that can complicate the interconnect design. Detailed modeling of such complex systems necessitates accurate modeling of their characteristics. Unfortunately, NoC simulators today lack the flexibility and features required to model these diverse interconnects.

        W...

        Read more...




        gem5art announcement

        by Hoa Nguyen

        gem5art-logo

        gem5art: a gem5 Experiment Framework

        Hoa Nguyen, Ayaz Akram, Mahyar Samani, Krithiga Murugavel, Trivikram Reddy, Marjan Fariborz, Pouya Fotouhi, Jason Lowe-Power

        We are excited to announce the gem5art project, a framework aiming to tackle the issue of reproducibility of gem5 experiments and improve the overall testing and expe...

        Read more...




        gem5-20.0 Released!

        by Jason Lowe-Power

        After much waiting, and a few surprising issues, gem5-20.0 has been released! The master branch of the gem5 repo now points to the gem5-20 release instead of the gem5-19 release.

        Thank you to everyone that made this release possible! This has been a very productive release with 84 issues, ab...

        Read more...




        gem5 joins Season of Docs!

        by Bobby R. Bruce

        We are pleased to announce that the gem5 project will be participating in this year’s Season of Docs. Season of Docs is a program, run by Google, with the goal of fostering collaboration between open source projects and technical writers.

        In this blog post we shall outline who we are and what kind of projects we are looking for technical writers to undertake. Durin...

        Read more...




        X86 Linux Boot Status on gem5-19

        by Ayaz Akram

        gem5-linux-logo

        The frequency of changes pushed to gem5 is increasing with time. This makes it important to have an up-to-date idea of what is working with gem5 and what is not. The booting of the Linux kernel is a very important benchmark to ascertain the working status of gem5, considering that gem5 is a full-system simulator which should be able to simulate a modern operating system. However, the state of support of latest Linu...

        Read more...




        gem5-19 Released!

        by Jason Lowe-Power

        gem5-19.0.0.0 has officially been released! We’re a couple of months behind schedule, but future releases should be better.

        The main goal of the gem5-19 release was to test our release mechanisms to make sure that things go smoothly for the first “RE-gem5” release. In this sense, gem5-19 is a major success! We were able to find several bugs in our release methodology that have been worked out. I’m hopeful that the gem5-20 release will ...

        Read more...




        gem5 Website Redesign

        by Jason Lowe-Power

        Welcome to gem5’s new website! The old wiki has needed a refresh for a few years (see screenshot below), and we’re excited to finally have something to share with the community! We hope the new site has better usability and makes it easier to find information about gem5 and how to use it. If you have any questions or comments, don’t hesitate to reach out on the gem5-dev mailing list!

        Read more...




        RE-gem5: Building Sustainable Research Infrastructure

        by Jason Lowe-Power and Matt Sinclair

        Note: this post originally appeared on Computer Architecture Today.

        RE-gem5 is a directed effort to rejuvenate the underlying infrastructure of gem5. RE-gem5 is not a new simulator or a new project; it is a project to enhance and support the current gem5 infrastructure.

        The community-developed gem5 infrastructure is one of the most popular and widely known cycle-level...

        Read more...




        subscribe via RSS