PARISCV is a powerful profiler designed to optimize RISC-V applications by identifying and leveraging extensions for application-specific acceleration. With a comprehensive workflow, it efficiently processes traces, performs analysis, and provides valuable insights to enhance the performance of your RISC-V based projects.
Below shows the results obtained using our profiler for the applications of Embench-suite. Frequently executed instructions from common extensions are reported.
Welcome to our project! This guide will help you get started quickly.
Before running the project, make sure you have the following dependencies installed:
python3>= 3.9.5
matplotlib
riscv toolchain
After installing the dependencies, next install the profiler.
To install PARISCV, follow these steps:
git clone https://github.com/ashuthosh-mr/profiler.git
cd profiler
unxz internal_folder.tar.xz
tar -xvf internal_folder.tar
chmod +x pariscv.sh ext1
unsigned long cycles_start,cycles_end; asm volatile ("rdcycle %0" : "=r" (cycles_start));
asm volatile ("rdcycle %0" : "=r" (cycles_end)); printf("Total cycles:%d\n",cycles_end-cycles_start);
./pariscv.sh
./pariscv.sh ISA=rv64gcv_zba_zbb_zbc MABI=lp64d SOURCE=../../main.c
The output shows the total cycles, commonly used extensions, and commonly used instructions within each extension.
We intend to integrate the profiler with a core generator that supports coupling of custom acceleration using custom instruction or a custom accelerator.