Master's Thesis

Performance monitoring and event-based sampling for RISC-V

Tiago Alfredo Lopes Rocha2023

Key information

Authors:

Tiago Alfredo Lopes Rocha (Tiago Alfredo Lopes Rocha)

Supervisors:

Pedro Filipe Zeferino Aidos Tomás (Pedro Filipe Zeferino Tomás); Nuno Filipe Simões Santos Moraes da Silva Neves (Nuno Filipe Simões Santos Moraes Neves)

Published in

December 4, 2023

Abstract

A crescente atenção dada à arquitetura de código aberto RISC-V impulsionou a sua transição de dispositivos embedded para a arena de computação de alto desempenho, com a proliferação de acelera- dores baseados em RISC-V. No entanto, a ausência de ferramentas de monitorização de desempenho frequentemente resulta em aplicações pouco otimizadas e, consequentemente, num desempenho de computação limitado. Embora a arquitetura RISC-V já defina um Monitor de Desempenho de Hardware e ofereça suporte para o subsistema perf_events do Linux, a pesquisa e o desenvolvimento em dispositivos baseados em RISC-V têm-se concentrado mais em arquiteturas e compiladores do que em ferramentas de suporte à monitorização de desempenho. Para superar essa limitação, a introdução do suporte à biblioteca PAPI para processadores RISC-V é proposta neste documento, juntamente com a apresentação de uma especificação do sistema de Amostragem Precisa de Eventos compatível com uma futura integração no PAPI, juntamente com uma prova de conceito de implementação mínima. Os testes e a avaliação do PAPI foram realizados em uma placa SiFive Unmatched, mas as alterações propostas e a implementação correspondente são facilmente portáveis para outros sistemas. A prova de conceito para a Amostragem Precisa de Eventos em RISC-V foi implementada num processador CVA6. Foi constatado que, em comparação com o uso direto do perf_events, o PAPI apresenta um overhead significativo; 83360µs em comparação com 100.24µs do perf_events. No entanto, a maior parte (81200µs) está concentrada na inicialização da biblioteca, que ocorre apenas uma vez por execução do programa. Increased attention to RISC-V open Instruction Set Architecture (ISA), has fueled its move from embedded devices to the high-performance computing arena, with the proliferation of RISC-V-based accelerators. However, the absence of powerful performance monitoring tools often results in poorly optimized applications and, consequently, limited computing performance. While the RISC-V ISA already defines a Hardware Performace Monitor and offers support for the Linux perf_events subsystem, research and development on RISC-V-based devices have been more focused on architectures and compilers rather than tools to support monitoring performance. To overcome this limitation, the introduction of PAPI library support for RISC-V processors is proposed in this thesis, and a Precise Event Sampling system specification compatible with future PAPI integration is presented along with a minimal implementation proof-of-concept. The conducted testing and evaluation of the PAPI port were carried out on a SiFive Unmatched board, but the proposed changes, and the corresponding implementation, are easily portable to other systems. The proof of concept for RISC-V Precise Event Sampling was implemented on a CVA6 processor. It was found that, when compared to directly using perf_events, PAPI presents a large overhead; 83360µs in comparison with perf_events 100.24µs. Nevertheless, most of it (81200µs) is concentrated in the initialization of the library, which only occurs once per program execution.

Publication details

Authors in the community:

Supervisors of this institution:

RENATES TID

203840968

Degree Name

Mestrado em Engenharia Eletrotécnica e de Computadores

Fields of Science and Technology (FOS)

electrical-engineering-electronic-engineering-information-engineering - Electrical engineering, electronic engineering, information engineering

Keywords

  • RISC-V Processors
  • Performance Monitoring
  • Precise Event Sampling
  • PAPI
  • Processadores RISC-V
  • Monitorização de Desempenho
  • Amostragem Precisa de Eventos

Publication language (ISO code)

eng - English

Rights type:

Embargo lifted

Date available:

September 22, 2024

Institution name

Instituto Superior Técnico

Financing entity

Fundação para a Ciência e a Tecnologia

Visit project

Funding Stream: INESC-ID

Identifier for the funding entity: https://doi.org/10.13039/501100001871

Type of identifier of the funding entity: Crossref Funder

Number for the project, award or grant: UIDB/50021/2020

Financing entity

Fundação para a Ciência e a Tecnologia

Title of the project, award or grant: Compilação e Adaptação de Hardware para a Unificação da Computação Especializada e de Uso Geral

Visit project

Funding Stream: INESC-ID

Identifier for the funding entity: https://doi.org/10.13039/501100001871

Type of identifier of the funding entity: Crossref Funder

Number for the project, award or grant: 2022.06780.PTDC