Dissertação de Mestrado
Performance monitoring and event-based sampling for RISC-V
— 2023
Informações chave
Autores:
Orientadores:
Publicado em
4 de dezembro de 2023
Resumo
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.
Detalhes da publicação
Autores da comunidade :
Tiago Alfredo Lopes Rocha
ist190194
Orientadores desta instituição:
Pedro Filipe Zeferino Tomás
ist146645
RENATES TID
203840968
Designação
Mestrado em Engenharia Eletrotécnica e de Computadores
Domínio Científico (FOS)
electrical-engineering-electronic-engineering-information-engineering - Engenharia Eletrotécnica, Eletrónica e Informática
Palavras-chave
- RISC-V Processors
- Performance Monitoring
- Precise Event Sampling
- PAPI
- Processadores RISC-V
- Monitorização de Desempenho
- Amostragem Precisa de Eventos
Idioma da publicação (código ISO)
eng - Inglês
Acesso à publicação:
Embargo levantado
Data do fim do embargo:
22 de setembro de 2024
Nome da instituição
Instituto Superior Técnico
Entidade financiadora da bolsa/projeto
Fundação para a Ciência e a Tecnologia
Fonte de financiamento: INESC-ID
Identificador da Entidade Financiadora: https://doi.org/10.13039/501100001871
Tipo de identificador da Entidade Financiadora: Crossref Funder
Número de bolsa/projeto: UIDB/50021/2020
Entidade financiadora da bolsa/projeto
Fundação para a Ciência e a Tecnologia
Nome da bolsa/projeto: Compilação e Adaptação de Hardware para a Unificação da Computação Especializada e de Uso Geral
Fonte de financiamento: INESC-ID
Identificador da Entidade Financiadora: https://doi.org/10.13039/501100001871
Tipo de identificador da Entidade Financiadora: Crossref Funder
Número de bolsa/projeto: 2022.06780.PTDC