Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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

https://github.com/OpenMathLib/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

https://gitlab.com/libeigen/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

https://github.com/oneapi-src/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

https://github.com/google/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

https://github.com/pytorch/pytorch

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

https://github.com/iree-org/iree

Interest is in the context of using it as a PyTorch compiler backend (see https://pytorch.org/docs/stable/torch.compiler.html for details)

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

OpenAI Triton

https://github.com/triton-lang/triton

BOSC - @David Gao

Scikit-Learn

https://github.com/scikit-learn/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)

https://github.com/google-ai-edge/litert

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

Did not start yet. There are some abandoned merge request which can be finished and potentially upstreamed.

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