Skip to content

sdgemm micro-kernel for the SG2042 RISC-V processor #868

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 4 commits into
base: master
Choose a base branch
from

Conversation

evenieri
Copy link

@evenieri evenieri commented May 6, 2025

Hi, my name is Emanuele and I am a research fellow at the University of Bologna. In our lab, we are exploring the capabilities of emerging hardware platforms, including the SG2042 RISC-V processor. As part of this effort, also involving a student project, we selected BLIS.

As you may know, the SG2042 supports RVV 0.7.1, whereas BLIS currently includes kernels targeting RVV 1.0. Our goal was to make the RVV kernels compatible with the SG2042 using GCC 14. To achieve this, we performed a set of adaptations to target the xtheadvector machine architecture. Following an initial port, we conducted performance analysis and optimized the register grouping for this processor's register file, significantly reducing instruction count in the sdgemm micro-kernel.

Using HPL as a benchmark, we observed a 49% performance improvement over the standard BLIS RVV sdgemm micro-kernel.

Following your contribution guidelines, we integrated our work as a new configuration family: rvv_sg2042, which is fully compatible with GCC 14. The sdgemm micro-kernel has been optimized, while czgemm was adapted to compile and run correctly, though not performance-tuned.

We hope this contribution could be interesting for the BLIS community as well as the RISC-V community.

@evenieri
Copy link
Author

evenieri commented May 6, 2025

Some insights of our work, that include the activity on BLIS can be seen here:
https://arxiv.org/abs/2503.18543

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants