Skip to content

Feature: Automated CI/CD Pipeline and Repository Templates#7

Open
GiGiKoneti wants to merge 4 commits into
merledu:mainfrom
GiGiKoneti:feature/rvv-ci-pipeline
Open

Feature: Automated CI/CD Pipeline and Repository Templates#7
GiGiKoneti wants to merge 4 commits into
merledu:mainfrom
GiGiKoneti:feature/rvv-ci-pipeline

Conversation

@GiGiKoneti

Copy link
Copy Markdown

Resolves #6. This PR introduces a complete GitHub Actions workflow to verify cross-compilation of the RVV static library via the RISC-V GNU toolchain. Additionally, it establishes standard Issue and Pull Request templates to standardize future LFX mentorship contributions.

…lation pipeline

- Added rv_sparse.h with cache-aligned CSR/CSC definitions and 32-bit indices for optimized register packing.
- Implemented vsetvl-driven strip-mined SpMV utilizing vloxei32 gathers.
- Implemented contiguous vector SpMM utilizing dense column strip-mining.
- Configured CMake cross-compilation toolchain targeting rv64gcv.
@GiGiKoneti

Copy link
Copy Markdown
Author

Update: I've significantly expanded the scope of this PR to include full RISC-V Hardware Emulation and a unit testing framework.

New Features Added:

  1. CTest Framework Setup: I updated CMakeLists.txt to support BUILD_TESTS. This lets us cleanly build standard C test executables (linked against libm) while keeping the main rv_sparse target as a bare-metal static library.

  2. QEMU Emulation in CI: The GitHub Actions workflow (rv-ci.yml) now downloads the gcc-riscv64-linux-gnu toolchain and explicitly uses qemu-riscv64 to execute the compiled binaries natively on the GitHub runner.

  3. Scalar Ground-Truth Test: Added tests/test_spmv_scalar.c to mathematically verify the CSR SpMV implementation.

The pipeline now successfully boots QEMU and passes the test. This completely solves the "how do we verify RVV math w/o hardware?" problem and sets a highly robust standard for all future algorithm PRs!

@GiGiKoneti

Copy link
Copy Markdown
Author

Hi @5hayanB and @Talha-Ahmed-1 ,

Following up on the QEMU integration, I wanted to share a quick note on my broader vision and commitment for this PR for following month and the rv-sparse repository, I'll keep on refining this PR.

When looking at the LFX mentorship challenge, it is clear that the ultimate goal isn't just to write vector intrinsics, but to build an accelerator-independent, production-ready library that can actually be trusted in modern machine learning and scientific computing workloads.

My vision right now is to establish a bulletproof, hardware-aligned foundation so that building the core rv-sparse library becomes a seamless experience for everyone involved.

By defining the repository templates, configuring the bare-metal CMake linking rules, and providing automated QEMU emulation in the CI pipeline, we now have a mathematically rigorous environment. We can safely introduce highly complex RISC-V Vector kernels (like SpMM) and CSC formats in future PRs, knowing that the infrastructure will automatically catch any memory alignment faults or precision errors before they are ever merged.

I am deeply committed to making sure the architecture surrounding this library is as perfect and optimized as the mathematics inside of it. Let me know if the CI setup looks good to you, and I look forward to contributing the core sparse algorithms next!

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.

Feature: Automated CI/CD Pipeline for RISC-V Cross-Compilation and Emulation (QEMU)

1 participant