Skip to content

hpc-ulisboa/RVEBS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RVEBS: RISC-V Event-Based Sampling

This repository contains the sources and tests for RVEBS, an event-based sampling system compatible with the RISC-V Hardware Performance Monitor specification.

If you use this, please cite:

Tiago Rocha, Nuno Neves, Nuno Roma, Pedro Tomás, Leonel Sousa, "RVEBS: Event-Based Sampling on RISC-V", Design, Automation and Test in Europe Conference (DATE'2025), IEEE, Lyon - France

How to configure simulation environment

The following instructions have been validated on Ubuntu 22.04 and Ubuntu 24.04.

Dependency setup

To install the dependencies run:

$ sudo apt install make gcc g++ gperf autoconf automake autotools-dev libmpc-dev libmpfr-dev libgmp-dev gawk build-essential bison flex texinfo python3-pexpect libexpat-dev expat libexpat1-dev file libfl-dev help2man libusb-1.0-0-dev default-jdk zlib1g-dev valgrind csh device-tree-compiler

Repository initialization

$ git clone https://github.com/hpc-ulisboa/RVEBS.git
$ cd RVEBS
$ git submodule update --init --recursive

How to prepare a simulation model

$ source set_env.sh
$ cd openpiton
$ source piton/piton_settings.bash
$ source piton/ariane_setup.sh
$ ./piton/ariane_build_tools.sh
$ sims -sys=manycore -vlt_build -ariane -vlt_build_args=--trace -vlt_build_args=--trace-structs -vlt_build_args=-CFLAGS -vlt_build_args=-DVERILATOR_VCD

How to run the tests presented on the paper

The following benchmarks used for the experimenta validation of out paper are provided at ./openpiton/piton/verif/diag/c/riscv/ariane/:

1. attribution-bench.c
2. accuracy-bench_1_20_ration_10000_rate.c
3. accuracy-bench_1_40_ration_10000_rate.c
4. accuracy-bench_1_60_ration_10000_rate.c
5. accuracy-bench_1_80_ration_10000_rate.c
6. accuracy-bench_1_100_ration_10000_rate.c
7. accuracy-bench_1_20_ration_100_rate.c
8. accuracy-bench_1_20_ration_1000_rate.c
9. accuracy-bench_1_20_ration_100000_rate.c
10. accuracy-bench_1_20_ration_10000_rate_instret.c

Test 1. evaluates if the samples are attributed to the instruction that actually triggered the sample. Tests 2-6 evaluate the event sample accuracy. Tests 1 and 7-9 evaluate the sensitivity of the system to sampling rate. Test 10 was used to compare the system time overhead to implementations on other instruction-ser architectures.

To run any of this tests locally run :

$ source set-env.sh
$ cd openpiton
$ source piton/piton_settings.bash
$ source piton/ariane_setup.sh
$ sims -sys=manycore -vlt_run -ariane [NAME OF PROGRAM WITH .c] -rtl_timeout=1000000

A .vcd waveform file is generated under ./openpiton.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages