qemu VS sail-riscv

Compare qemu vs sail-riscv and see what are their differences.

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
qemu sail-riscv
37 9
- 390
- 2.6%
- 8.2
- 3 days ago
Coq
- GNU General Public License v3.0 or later
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.

qemu

Posts with mentions or reviews of qemu. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-12-29.
  • QEMU AioContext removal and how it was done
    1 project | news.ycombinator.com | 3 Jan 2024
    https://gitlab.com/qemu-project/qemu/-/blob/master/hw/scsi/s...

    QEMU's IOThreads allow the user to configure the threads and get something similar to thread per core architecture. But if 1 thread becomes a bottleneck, then some form of thread synchronization is needed again even with thread per core architecture. Some problems can be parallelized and they work well with thread per core.

  • Why are Apple Silicon VMs so different?
    7 projects | news.ycombinator.com | 29 Dec 2023
    Add `ENV ERL_FLAGS="+JPperf true"` to your Dockerfile and it will build just fine cross platform. The flag just changes some things during build time and won’t affect runtime performance.

    [1] https://gitlab.com/qemu-project/qemu/-/issues/1034

  • RISC-V Vector benchmark results
    4 projects | news.ycombinator.com | 11 Nov 2023
    > I don't know how rdcycle works on qemu.

    That's a good question! I had to look it up myself ...

    Obviously qemu TCG isn't a cycle-accurate emulation. Using RDCYCLE / reading the corresponding CSR eventually calls https://gitlab.com/qemu-project/qemu/-/blob/69680740eafa1838... which calls cpu_get_host_ticks is basically an arch-independent wrapper around RDTSC.

    So it just measures the time taken to run using RDTSC. Which I guess is what you would want (maybe?). It would measure the time taken to emulate the vector instruction in host instructions.

    > This benchmark is more meant for developers to figure out how to vectorize algorithms effectively, as in which instructions to choose.

    Absolutely, I'm not saying the qemu results would say anything very deep, but they're kind of interesting from the point of view of either optimizing qemu or if you have to use qemu because the hardware you want isn't available / isn't cheap enough.

  • The IMPOSSIBLE RISCV HACK: Vector Extension 0.7.1-draft w/ current Linux kernel! – René Rebe
    5 projects | /r/RISCV | 25 Jun 2023
    I see the commits that started switch support from RVV 071 to 100 start here, https://gitlab.com/qemu-project/qemu/-/commit/9ec6622db30df1c00d863c1ffc33341f9e0a534d
  • I booted Linux 292,612 times
    3 projects | news.ycombinator.com | 14 Jun 2023
    >> https://gitlab.com/qemu-project/qemu/-/issues/1696 ]

    > Can I please just get the detail in mail instead of having to go look at random websites?

    Maybe it's me but if I did boot boot linux 292.612 times to find a bug, you might as well click a link to a repository of a major open source project on a major git hosting service.

    Is it really that weird to ask people online to check a website? Maybe I don't know the etiquette of these mail lists so this is a geniune question.

  • Rise: Accelerate the Development of Open Source Software for RISC-V
    5 projects | news.ycombinator.com | 31 May 2023
    Capstone is used[1] by QEMU as disassembly engine in debug logs and in monitor mode debugger, by the way, so it's in the scope of the RISE effort.

    [1] https://gitlab.com/qemu-project/qemu/-/blob/master/disas/cap...

  • Intel Arc 750 Crashes Host + Display Cable Workaround not needed anymore (Windows)
    1 project | /r/VFIO | 20 May 2023
    A user on the qemu bugtracker found a way to get the Intel Arc working across resets without crashing the host: Just don't passthrough the audio device of the GPU and everything works!
  • Qemu 7.2.2: command line syntax in libvirt domain changed
    2 projects | /r/VFIO | 11 May 2023
  • Anyone know if there's a way to disable ReBar on only one GPU?
    1 project | /r/VFIO | 11 May 2023
  • [RFT] Allow QEMU to expose static REBAR capability
    2 projects | /r/VFIO | 24 Apr 2023
    [1]https://gitlab.com/qemu-project/qemu/-/commit/3412d8ec9810b819f8b79e8e0c6b87217c876e32 [2]https://gitlab.com/alex.williamson/qemu/-/commit/9a6d1822a2bd55f5dee1aec1b6529ae57949d5ba.patch

sail-riscv

Posts with mentions or reviews of sail-riscv. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-04-28.
  • How to improve the RISC-V specification
    9 projects | news.ycombinator.com | 28 Apr 2024
    I've been doing a lot of work with Sail (not SAIL btw) and I'm not sure I agree with the points about it.

    There's already a way to extract functions into asciidoc as the author noted. I've used it. It works well.

    The liquid types do take some getting used to but they aren't actually used in most of the code; mostly for utility function definitions like `zero_extend`. If you look at the definition for simple instructions they can be very readable and practically pseudocode:

    https://github.com/riscv/sail-riscv/blob/0aae5bc7f57df4ebedd...

    A lot of instructions are more complex or course but that's what you get if you want to precisely define them.

    Overall Sail is a really fantastic language and the liquid types really help avoid bugs.

    The biggest actual problems are:

    1. The RISC-V spec is chock full of undefined / implementation defined behaviour. How do you capture that in code, where basically everything is defined. The biggest example is probably WARL fields which can do basically anything. Another example is decomposing misaligned accesses. You can decompose them into any number of atomic memory operations and do them in any order. E.g. Spike decomposes them into single byte accesses. (This problem isn't really unique to Sail tbf).

    2. The RISC-V Sail model doesn't do a good job of letting you configure it currently. E.g. you can't even set the spec version at the moment. This is just an engineering problem though. We're hoping to fix it one day using riscv-config which is a YAML file that's supposed to specify all the configurable behaviour about a RISC-V chip.

    I definitely agree about the often wooly language in the spec though. It doesn't even use RFC-style MUST/SHOULD/MAY terms.

  • RISC-V Vector benchmark results
    4 projects | news.ycombinator.com | 11 Nov 2023
    The official formal specification of the Vector Extension has just been merged into the Golden RISC-V model:

    https://github.com/riscv/sail-riscv/commit/c90cf2e6eff5fa4ef...

  • Cascade: CPU Fuzzing via Intricate Program Generation
    3 projects | news.ycombinator.com | 23 Oct 2023
    the retired instruction counters when written by software.

    Funnily enough the Sail model had this bug too! https://github.com/riscv/sail-riscv/issues/256

  • Arm’s Cortex A510: Two Kids in a Trench Coat
    1 project | news.ycombinator.com | 2 Oct 2023
    > loose specification of the RISC-V ISA.

    This is being worked on with the Sail model [1]. In order for a RISC-V extension to be ratified it ought to be implemented in Sail. The understanding is also that the RISC-V ISA manual should be built with code snippets from the Sail model (similar to how the Arm Arm is build from ASL definition). The main issue is a lack of people willing and able to write Sail for RISC-V. But that is beginning to change, since RISC-V member companies are increasingly use Sail. As an example, the RISC-V exception type is defined in [2]. Is that precise enough for you?

    [1] https://github.com/riscv/sail-riscv

    [2] https://github.com/riscv/sail-riscv/blob/master/model/riscv_...

  • RISC-V CPU formal specification F# edition
    6 projects | news.ycombinator.com | 28 Jul 2023
    >it allows to formally verify the correctness of a particular ISA

    That must be hypothetical. Functionalness of the language doesn't make anything that is written in it automatically subject to formal verification. (mechanized or pen and paper). What kind of correctness properties does it actually allow to formally verify? I understand if it was the F* language, which is a full blown dependently typed proof checker, but with F#, which is defined by the implementation and 300 page English spec, I don't think you can verify anything interesting. As far as I know F# itself doesn't have mechanized formal semantics and its type system could be unsound.

    https://github.com/mit-plv/riscv-coq and https://github.com/riscv/sail-riscv (don't know how complete they are) approaches actually allow to formally (mechanically) verify riscv properties.

  • 64-bit Arm ∩ 64-bit RISC V
    2 projects | /r/asm | 7 Jun 2023
  • C++17 RISC-V RV32/64/128 userspace emulator library
    5 projects | news.ycombinator.com | 18 Nov 2022
  • Starting up with RISC-V
    3 projects | /r/RISCV | 4 Feb 2022
    I guess you will also use Spike and the Sail model for RISC-V.
  • Areas to contribute in RISC-V RTL verification
    5 projects | /r/RISCV | 6 Mar 2021
    Doing something leveraging the SAIL model would be valuable, as that's the official formal model: https://github.com/rems-project/sail-riscv

What are some alternatives?

When comparing qemu and sail-riscv you can also consider the following projects:

gcc

litmus-tests-riscv - RISC-V architecture concurrency model litmus tests

riscv-binutils-gdb - RISC-V backports for binutils-gdb. Development is done upstream at the FSF.

riscv-isa-sim - Spike, a RISC-V ISA Simulator

nbdkit

riscv-dv - Random instruction generator for RISC-V processor verification

safeclib - safec libc extension with all C11 Annex K functions

riscv-coq - RISC-V Specification in Coq

lzbench - lzbench is an in-memory benchmark of open-source LZ77/LZSS/LZMA compressors

libriscv - C++20 RISC-V RV32/64/128 userspace emulator library

CLK - A latency-hating emulator of: the Acorn Electron and Archimedes, Amstrad CPC, Apple II/II+/IIe and early Macintosh, Atari 2600 and ST, ColecoVision, Enterprise 64/128, Commodore Vic-20 and Amiga, MSX 1/2, Oric 1/Atmos, early PC compatibles, Sega Master System, Sinclair ZX80/81 and ZX Spectrum.

force-riscv - Instruction Set Generator initially contributed by Futurewei