Skip to content

Add riscv64 (linux_riscv64) wheel to PyPI releases #2138

@gounthar

Description

@gounthar

Add linux_riscv64 wheel to PyPI releases

Summary

pip install llama-cpp-python on riscv64 Linux currently requires building from source (~15 min on a 1.6 GHz RISC-V SoC). Adding linux_riscv64 to the wheel build matrix would give riscv64 users a prebuilt wheel.

Evidence

Tested wheel llama_cpp_python-0.3.16-cp313-cp313-linux_riscv64.whl
Hardware BananaPi F3 (SpacemiT K1, rv64imafdcv, 8 cores @ 1.6 GHz, 16 GB RAM)
Python 3.13 (CPython)
Build system cibuildwheel (scikit-build-core + CMake)
Build time ~15 min (native, on hardware)

The wheel imports and passes basic smoke tests on riscv64 Linux.

Suggested CI change

Workflow: .github/workflows/build-and-release.yaml

Add a new job following the existing arm64 pattern:

build_wheels_riscv64:
  runs-on: ubuntu-latest
  steps:
  - uses: actions/checkout@v4
    with:
      submodules: recursive
  - uses: docker/setup-qemu-action@v3
    with:
      platforms: linux/riscv64
  - uses: pypa/cibuildwheel@v2.22.0
    env:
      CIBW_ARCHS: riscv64
      CIBW_SKIP: '*musllinux* pp*'
      CMAKE_ARGS: >-
        -DCMAKE_CROSSCOMPILING=ON
        -DGGML_RISCV=ON

Critical: -DGGML_RISCV=ON enables the RISC-V SIMD (RVV) path in llama.cpp.

Ecosystem context

  • manylinux_2_28_riscv64 images are available on quay.io/pypa/ (landed in pypa/manylinux, 2025)
  • cibuildwheel 3.x supports riscv64 via QEMU emulation
  • auditwheel supports riscv64 platform tags
  • maturin-action supports riscv64gc-unknown-linux-gnu cross-compilation
  • Packages already shipping riscv64 wheels on PyPI: aiohttp, yarl, regex, markupsafe, charset-normalizer, rpds-py, multidict, propcache, watchfiles, rignore, setproctitle
  • RISC-V hardware is shipping: SiFive HiFive, SpacemiT K1/K3, Sophgo SG2044 (64-core)

Our temporary index

While upstream support is pending, we maintain a PEP 503 index with 50+ riscv64 wheels for the Python ML/AI stack, built natively on RISC-V hardware.

Tracking repo: https://github.com/gounthar/riscv64-python-wheels

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions