Skip to content

Ripple

Latest

Choose a tag to compare

@Syllo Syllo released this 19 Dec 20:47
· 19897 commits to ripple since this release

Release Notes

Release tag: ripple_2025-12-19.

LLVM-Ripple (Ripple for short) is a parallel programming API, which implements the SPMD and loop annotations programming models.

An extended explanation of the What, How and Why of Ripple is provided by the Ripple RFC to the LLVM community
A note that for the AArch64 target's SME support, we have moved away from the pattern-matching way to generate matrix multiplication code, to a more controllable approach based on the Ripple Vector Library (see compiler-rt/lib/ripple/aarch64).

This is the first functional open-source version of LLVM-Ripple.
It currently supports SIMD vector code generation for the Hexagon (v68 - v81), AArch64 and x86_64 architectures(*).

Documentation

Besides the traditional clang and LLVM documentation, we maintain training materials in the learn-ripple repository, including:

  • The Ripple User Manual
  • The Ripple Hexagon Optimization guide

Known limitations

No vector math library

Standard C math libraries will be supported through the Ripple Vector Library mechanism. They are not available in the ripple_2025-12-19 release. The Ripple team is preparing them for an upcoming release.

SME Vector Library in preview mode

The Ripple Vector Library for AArch64 features a draft API to use some of the SME features on float tensors, without masking.

Why an open-source version ?

We find Ripple useful beyond our own use cases, and we think that the community would benefit from it. Since Ripple is based on LLVM, the best way to share would be to make it part of the main LLVM codebase. We are currently trying to do this. We submitted an RFC (link above) to the LLVM community. Unfortunately, since Ripple was not usable by the open-source world so far, we have been unable to demonstrate that it would actually serve the community, which prevents the RFC from being adopted. Making this open-source version available to the community is one way to address this issue.

(*) Other targets may be supported, but they have not been tested by the Ripple team.