gem5 VS riscv-perf-model

Compare gem5 vs riscv-perf-model and see what are their differences.

gem5

The official repository for the gem5 computer-system architecture simulator. (by gem5)

riscv-perf-model

Example RISC-V Out-of-Order/Superscalar Processor Performance Core and MSS Model (by riscv-software-src)
InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
gem5 riscv-perf-model
3 1
1,440 101
4.5% -
9.7 7.9
about 6 hours ago 5 days ago
C++ C++
BSD 3-clause "New" or "Revised" License Apache License 2.0
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

gem5

Posts with mentions or reviews of gem5. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-06-13.
  • Hot Chips 2023: Arm’s Neoverse V2
    1 project | news.ycombinator.com | 12 Sep 2023
    The idea is to write a C++ model that that produces cycle accurate outputs of the branch predictor, core pipeline, queues, memory latency, cache hierarchy, prefetch behaviour, etc. Transistor level accuracy isn't needed as long as the resulting cycle timings are identical or near identical. The improvement in workload runtime compared to a Verilog simulation is precisely because they aren't trying to model every transistor, but just the important parameters which effect performance.

    Let's take a simple example: Instead of modeling a 64-bit adder in all its gory transistor level detail, you can just have the model return the correct data after 1 "cycle" or whatever your ALU latency is. As long as that cycle latency is the same as the real hardware, you'll get an accurate performance number.

    What's particularly useful about these models is they enable much easier and faster state space exploration to see how a circuit would perform, well before going ahead with the Verilog implementation, which relatively speaking can take circuit designers ages. "How much faster would my CPU be if it had a 20% larger register file" can be answered in a day or two before getting a circuit designer to go try and implement such a thing.

    If you want an open source example, take a look at the gem5 project (https://www.gem5.org). It's not quite as sophisticated as the proprietary models used in industry, but it's a used widely in academia and open source hardware design and is a great place to start.

  • Custom Instructions: How do I go from MATCH/MASK to opcode?
    2 projects | /r/RISCV | 13 Jun 2023

riscv-perf-model

Posts with mentions or reviews of riscv-perf-model. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-04-02.
  • Do Necessary Tools Exist for RISC-V Verification?
    2 projects | news.ycombinator.com | 2 Apr 2023
    I 100% agree on verilator. It’s by far the most efficient tool for many simulation and verification needs. Hands down. Even more so if you are building CPUs

    UVM definitely has its place still in verification flows. It for something as complex and flexible as a CPU for sure, it’s hard to beat the amount of cycles and coverage you get from verilator. (EDA license fees are a big part of that, but also the fact that verilator generates just C++ code you can integrate with the rest of your s/w flow is invaluable).

    But: What is also important for CPU is good validation and compliance test, (random or replayed or directed) instruction stream generators, ISS to validate agains etc. There are so much more scenarios to check because a CPU needs to handle any sequence of any instructions flawlessly.

    Those tools are also crucial. And they are being built or sold for RISC-V now too. And also: I much prefer combining those with verilator than with commercial eda tools. And don’t forget: before you start building a lot of RTL, you’ll typically will also build C based higher level performance models of the micro architecture, eg https://github.com/riscv-software-src/riscv-perf-model

What are some alternatives?

When comparing gem5 and riscv-perf-model you can also consider the following projects:

renode - Renode - Antmicro's open source simulation and virtual development framework for complex embedded systems

AobaAPI - C++ API/library for 3D polygonal mesh modeling

riscv-none-elf-gcc-xpack - A binary xPack with the GNU RISC-V Embedded GCC toolchain with support of WCH RISCV CH56x... "WCH-Interrupt-fast"

CHRONO - High-performance C++ library for multiphysics and multibody dynamics simulations

l4re-core - The core components of the L4Re operating system.

riscv-formal - RISC-V Formal Verification Framework

cs2410 - An out-of-order execution CPU simulator for CS2410 Computer Architecture course final project at the University of Pittsburgh.