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
- A framework for vector support
- Several (tens of) RVV instructions support in Valgrind, it can run the following test cases and detect the memory issues (memcheck)
Components and Repos
- riscv port of valgrind (not upstreamed to yet): https://github.com/petrpavlu/valgrind-riscv64.git
Stakeholders and Partners
- RISE - Intel, T-Head
- External
- Petr Pavlu (https://github.com/petrpavlu) - maintainer of riscv port
- valgrind community
Measure of Success
- Code committed to riscv port
Timeline
- Solution discussion - 8/31/2023
- Prototype - 9/30/2023
- Upstream - 12/31/2023
RISE Requirement
Not so far.
Dependencies
None.
Status
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