/
Projects

Projects

From the meeting on Feb, 18th 2025, here are some of the software stacks that we are interested in contributing to.

Software Project

Description

Interests

Software Project

Description

Interests

SLEEF

https://github.com/shibatch/sleef

Used by PyTorch and other projects for complex math operations (quad, dft, fft) on CPU.

It supports RISC-V fully since 3.6.1

Rivos - @Ludovic Henry
SiFive - @Hong-Rong Hsu

OpenBLAS

Industry standard for BLAS operations. Used by every AI/ML framework out there.

It supports RISC-V RVV 128/256/512 bits already. The implementation is currently optimized for large square matrices which aren’t the typical shapes in AI/ML workloads. There is already support to pick different kernels based on the matrix shape for x86, we need to leverage that mechanism on RISC-V as well

Microchip - @Ken Unger
Rivos - @Ludovic Henry
SiFive - @Hong-Rong Hsu

Eigen

Eigen is a C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms.

Used by PyTorch, Tensorflow, and Tensorflow-Lite (LiteRT).

It doesn’t support RISC-V at all at the moment. There is an open issue and a corresponding open MR but there hasn’t been much activity over the past 5 months

Microchip - @Ken Unger
Rivos - @Ludovic Henry

oneDNN

It provides a DNN API (similar to cuDNN) and it’s used in lots of places.

It is already functional on RISC-V (per the documentation), but it is still experimental and it’s unclear how optimized it is with RVV.

Rivos - @Ludovic Henry

XNNPACK

There has been contributions from SiFive and Microchip, but contributions are slow to get merged.

Contributions are being tracked in https://docs.google.com/spreadsheets/d/1PZAzBSqpdwoNgkxgrnmf5DDsZBzC_GEh/view

We need to identify which intrinsics are critical to the models we care for.

Notes:

  • Microchip: “No intent to work on F16; not a high priority for us - just F32 and int8 support”

Microchip - @Ken Unger
Rivos - @Ludovic Henry
SiFive - @Hong-Rong Hsu

PyTorch CPU

This work focused on PyTorch operators themselves, and not the dependencies used by PyTorch like OpenAI Triton, SLEEF, etc.

A blocker is (was?) the availability of hardware to test on. Patches from SiFive were rejected for this reason

There is an open PR to integrate cross-compilation support to CI. There would still be work to optimize many of the PyTorch Operators using RVV

Alibaba - @Binhua Wang
Rivos - @Ludovic Henry
SiFive - @Hong-Rong Hsu

IREE

Interest is in the context of using it as a PyTorch compiler backend (see torch.compiler — PyTorch 2.6 documentation for details)

Andes - @Ruinland Tsai
SiFive - @Hong-Rong Hsu

OpenAI Triton

 

BOSC - @David Gao

 

Scikit-Learn

scikit-learn already works out-of-the-box on RISC-V. However to reach better performance, Intel provides scikit-learn-intelex on x86 which is based on oneDAL. Rivos has already done the work to accelerate oneDAL on RISC-V, but we now need to provide a similar plugin to scikit-learn-intelex for RISC-V to bridge the worlds of scikit-learn and oneDAL.

Rivos - @Ludovic Henry

LiteRT (Tensorflow-Lite)

 

SiFive - @Hong-Rong Hsu

GStreamer / orc · GitLab

95% done. Files · riscv · Maksymilian Knust / orc · GitLab

MR should be uploaded ~ beginning of March.

Samsung - @Filip Wasil

Samsung - @Maks Knust

pnggroup/libpng: LIBPNG: Portable Network Graphics support, official libpng repository

There are already existing merge requests which can be finished, polished and potentially upstreamed. WIP.

Samsung - @Filip Wasil

Pixman / pixman · GitLab

Partially done. CI ground up rebuild upstreamed. Basic support for RVV floating points upstreamed. Fixed point operations WIP.

Samsung @Bernard Gingold

Related content

System Libraries Projects
System Libraries Projects
More like this
In the News
In the News
More like this
Tizen RISC-V Status
Tizen RISC-V Status
More like this
LR_01_002: Port Numpy
LR_01_002: Port Numpy
More like this
About RISE
About RISE
More like this
Project RP011 Python Package Support for RISC-V (riscv64)
Project RP011 Python Package Support for RISC-V (riscv64)
More like this