joaomiguelvieira / gem5-accel

BSD 3-Clause "New" or "Revised" License
4 stars 1 forks source link

gem5-accel

gem5-accel is a framework built on top of gem5 targeting the fast modeling, validation, and evaluation of novel heterogeneous hardware accelerator architectures before actually implementing them in RTL. To achieve this, three sets of tools are provided:

Architectural model

The architectural model of gem5-accel is illustrated below. As it can be observed, three main architectural blocks are provided to help in the modeling of novel hardware accelerators: (1) System address management; (2) Prog. IO; and (3) Load/Store Unit.

architectural model

The System address management block is responsible for managing a shared memory region that can be accessed by the CPU and the hardware accelerator. The hardware accelerator reads the operands and stores the results within this region.

The Prog. IO block implements a bank of programming registers that can be used by the CPU to control the hardware accelerator.

Finally, the Load and Store Unit is responsible for mediating all data transfers between the hardware accelerator and the memory hierarchy, automatically implementing and concealing all the complex control required for that effect.

The architectural model can be found here, and a practical example of an hardware accelerator based on the provided architectural model is here.

Simulation scripts

Examples of both SE and FS simulation scripts can be found here and here.

Host code

An example illustrating how to communicate with the hardware accelerator from the host code can be found here, and here an example of a device driver to be used with FS mode can be found.

FS kernels and images

The authors rely on the images and kernels officially supported by gem5, available at https://resources.gem5.org/.

How to cite

@inproceedings{DBLP:conf/sbac-pad/VieiraR0T22,
  author       = {Jo{\~{a}}o Vieira and
                  Nuno Roma and
                  Gabriel Falc{\~{a}}o and
                  Pedro Tom{\'{a}}s},
  title        = {gem5-ndp: Near-Data Processing Architecture Simulation From Low Level Caches to {DRAM}},
  booktitle    = {{SBAC-PAD}},
  pages        = {41--50},
  publisher    = {{IEEE}},
  year         = {2022}
}