Table of Contents
Fetching ...

RAVE: RISC-V Analyzer of Vector Executions, a QEMU tracing plugin

Pablo Vizcaino, Filippo Mantovani, Jesus Labarta, Roger Ferrer

TL;DR

This paper proposes using QEMU with RAVE, a plugin that can rapidly simulate and analyze applications running on the v1.0 and v0.7.1 RISC-V V-extension and provides an API used from the simulated Application to control the RAVE plugin and the capability to generate vectorization traces that can be analyzed using Paraver.

Abstract

Simulators are crucial during the development of a chip, like the RISC-V accelerator designed in the European Processor Initiative project. In this paper, we showcase the limitations of the current simulation solutions in the project and propose using QEMU with RAVE, a plugin we implement and describe in this document. This methodology can rapidly simulate and analyze applications running on the v1.0 and v0.7.1 RISC-V V-extension. Our plugin reports the vector and scalar instructions alongside useful information such as the vector-length being used, the single-element-width, and the register usage, among other vectorization metrics. We provide an API used from the simulated Application to control the RAVE plugin and the capability to generate vectorization traces that can be analyzed using Paraver. Finally, we demonstrate the efficiency of our solution between different evaluated machines and against other simulation methods used in the European Processor Accelerator (EPAC) project.

RAVE: RISC-V Analyzer of Vector Executions, a QEMU tracing plugin

TL;DR

This paper proposes using QEMU with RAVE, a plugin that can rapidly simulate and analyze applications running on the v1.0 and v0.7.1 RISC-V V-extension and provides an API used from the simulated Application to control the RAVE plugin and the capability to generate vectorization traces that can be analyzed using Paraver.

Abstract

Simulators are crucial during the development of a chip, like the RISC-V accelerator designed in the European Processor Initiative project. In this paper, we showcase the limitations of the current simulation solutions in the project and propose using QEMU with RAVE, a plugin we implement and describe in this document. This methodology can rapidly simulate and analyze applications running on the v1.0 and v0.7.1 RISC-V V-extension. Our plugin reports the vector and scalar instructions alongside useful information such as the vector-length being used, the single-element-width, and the register usage, among other vectorization metrics. We provide an API used from the simulated Application to control the RAVE plugin and the capability to generate vectorization traces that can be analyzed using Paraver. Finally, we demonstrate the efficiency of our solution between different evaluated machines and against other simulation methods used in the European Processor Accelerator (EPAC) project.
Paper Structure (11 sections, 11 figures, 2 tables, 1 algorithm)

This paper contains 11 sections, 11 figures, 2 tables, 1 algorithm.

Figures (11)

  • Figure 1: Example diagram of inconsistent plugin reporting when the vector-length changes inside a simulated instruction block.
  • Figure 2: Instruction classification used in the vectorization traces and reports generated by our RAVE QEMU plugin
  • Figure 3: Structure holding the vectorization metrics counter by the RAVE plugin.
  • Figure 4: Example of the tracing API that the RAVE plugin provides.
  • Figure 5: Instruction data kept for each simulated vector instruction.
  • ...and 6 more figures