DP_00_001 - Valgrind vector support

About

Valgrind is a widely-used instrumentation framework that is utilized for the development of dynamic analysis tools, including memcheck, which is particularly helpful in identifying memory management problems.

Project Scope

  1. A framework for vector support
  2. Several (tens of) RVV instructions support in Valgrind, it can run the following test cases and detect the memory issues (memcheck)
    1. https://github.com/riscv/riscv-v-spec/tree/master/example

Components and Repos

Stakeholders and Partners

Measure of Success

  • Code committed to riscv port

Timeline

  1. Solution discussion - 8/31/2023
  2. Prototype - 9/30/2023
  3. Upstream - 12/31/2023

RISE Requirement

Not so far.

Dependencies

None.

Status

Development

ONGOING

URL: https://github.com/intel/valgrind-rvv/tree/poc-rvv
Development Timeline2H 2023
Upstreaming

ONGOING


Upstream Version

N/A


Contacts

Fei Wu  (Intel)


Dependencies


Updates

 

Petr came up with another idea, each way has different pros and cons. https://sourceforge.net/p/valgrind/mailman/message/58743032/


My prototype has already supported a wide range of rvv instructions, it's able to run e.g., coremark with auto vectorization.

 

Petr had a prototype for ARM SVE, we are discussing how to have a unified solution for both sve and rvv. https://sourceforge.net/p/valgrind/mailman/valgrind-developers/?viewmonth=202311&viewday=13

 

Petr Pavlu acked to the patch and will take a look at https://sourceforge.net/p/valgrind/mailman/message/46305757/

 

The design is considered the right direction in general. https://sourceforge.net/p/valgrind/mailman/message/37872645/

 

Intel setup a public repository for this project, a vector-IR based framework and dozens of RVV instructions have been enabled