A collection of RISC-V Vector (RVV) benchmarks to help developers write portably performant RVV code
Assembly
155
135 commits
updated Aug 14, 2026
A collection of RISC-V Vector (RVV) benchmarks to help developers write portably performant RVV code.
Benchmark results can be found at: https://camel-cdr.github.io/rvv-bench-results
Contains a bunch of benchmark of different implementations of certain algorithms.
Measures the cycle count of RVV instructions by unrolling and looping over the given instruction repeatedly.
The easiest way to run the benchmarks is using the ./bench-all.sh script.
Start by configuring ./config.mk and ./run.sh.
To get access to the cycle performance counter on Linux, /proc/sys/kernel/perf_user_access and /proc/sys/kernel/perf_event_paranoid need to be configured.
perf_event_paranoid should have a value <=2.
perf_user_access should be set to "2" and -DUSE_PERF_EVENT appended to the CFLAGS in ./config.mk. If this doesn't work, set perf_user_access to "1" and use -DUSE_PERF_EVENT_SLOW.
You can adjust the benchmark runtime and precision by modifying the config.h files in each directory.
To run the benchmarks, first look through (./bench/config.h) and adjust it to your processor (e.g. set HAS_E64). If it takes too long to execute, try lowering MAX_MEM, which is used to scale the benchmark, and play around with the other constants until it executes in a reasonable amount of time and gives a relatively smooth graph.
Now you can just run the benchmarks using make run in the (./bench/) directory, or make to just build the executables.
To run the cycle count measurement, first configure instructions/rvv/config.h to your processor.
Now you can run the measurement using make run in the (./instructions/rvv/) directory, or make to just build the executables.
For XTheadVector use the (./instructions/xtheadvector/) directory instead. (this isn't maintained anymore)
Here are some suggestions of things that still need to be done.
make run > out.json should do the trick). \This repository is licensed under the MIT LICENSE.
310 followers · starred Nov 2023
1,456 followers · starred Jan 2024
1,244 followers · starred Feb 2024
276 followers · starred Nov 2023
A collection of RISC-V Vector (RVV) benchmarks to help developers write portably performant RVV code
Assembly
155
135 commits
updated Aug 14, 2026
A collection of RISC-V Vector (RVV) benchmarks to help developers write portably performant RVV code.
Benchmark results can be found at: https://camel-cdr.github.io/rvv-bench-results
Contains a bunch of benchmark of different implementations of certain algorithms.
Measures the cycle count of RVV instructions by unrolling and looping over the given instruction repeatedly.
The easiest way to run the benchmarks is using the ./bench-all.sh script.
Start by configuring ./config.mk and ./run.sh.
To get access to the cycle performance counter on Linux, /proc/sys/kernel/perf_user_access and /proc/sys/kernel/perf_event_paranoid need to be configured.
perf_event_paranoid should have a value <=2.
perf_user_access should be set to "2" and -DUSE_PERF_EVENT appended to the CFLAGS in ./config.mk. If this doesn't work, set perf_user_access to "1" and use -DUSE_PERF_EVENT_SLOW.
You can adjust the benchmark runtime and precision by modifying the config.h files in each directory.
To run the benchmarks, first look through (./bench/config.h) and adjust it to your processor (e.g. set HAS_E64). If it takes too long to execute, try lowering MAX_MEM, which is used to scale the benchmark, and play around with the other constants until it executes in a reasonable amount of time and gives a relatively smooth graph.
Now you can just run the benchmarks using make run in the (./bench/) directory, or make to just build the executables.
To run the cycle count measurement, first configure instructions/rvv/config.h to your processor.
Now you can run the measurement using make run in the (./instructions/rvv/) directory, or make to just build the executables.
For XTheadVector use the (./instructions/xtheadvector/) directory instead. (this isn't maintained anymore)
Here are some suggestions of things that still need to be done.
make run > out.json should do the trick). \This repository is licensed under the MIT LICENSE.
310 followers · starred Nov 2023
1,456 followers · starred Jan 2024
1,244 followers · starred Feb 2024
276 followers · starred Nov 2023