# RVFlow **Repository Path**: eulixos/rvflow ## Basic Information - **Project Name**: RVFlow - **Description**: 面向 RISC-V 架构的国产化高性能向量数据库 A Domestic High-Performance Vector Database for RISC-V Architecture - **Primary Language**: C++ - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-24 - **Last Updated**: 2026-03-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README
# 🚀 RVFlow **面向 RISC-V 架构的国产化高性能向量数据库** **A Domestic High-Performance Vector Database for RISC-V Architecture** *Powered by RISC-V Vector Extension (RVV 1.0) · 国产向量数据库,原生支持 RISC-V* [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](LICENSE) [![RISC-V](https://img.shields.io/badge/Arch-RISC--V%2064-green.svg)](https://riscv.org/) [![RVV](https://img.shields.io/badge/RVV-1.0-red.svg)](https://github.com/riscv/riscv-v-spec) [![Platform](https://img.shields.io/badge/Platform-EulixOS%203.0-purple.svg)](https://www.openeuler.org/) [![ISCAS](https://img.shields.io/badge/By-ISCAS%20&NJU-blue.svg)](http://www.iscas.ac.cn/)
--- ## 📖 Overview | 项目简介 > 由中国科学院软件研究所(ISCAS)联合南京大学 (NJU) 自主研发,面向 **RISC-V 64 架构**的国产化企业级向量数据库,原生集成 **RISC-V 向量扩展指令集(RVV 1.0)**,为人工智能、大模型推理、智能搜索等场景提供高性能向量检索能力。 **RVFlow** is a domestically developed, enterprise-grade vector database purpose-built for the **RISC-V 64-bit architecture**. It natively integrates the **RISC-V Vector Extension (RVV 1.0)** as its SIMD acceleration backend, delivering high-performance approximate nearest neighbor search (ANNS) for AI inference, large model retrieval, and intelligent search workloads. ### ✨ Key Highlights | | | |---|---| | 🇨🇳 **国产自研** | 面向 RISC-V 的首款国产化企业级向量数据库 | | ⚡ **Up to 26× Speedup** | RVV 原生加速相似性计算内核,对比标量实现最高 26× 提升 | | 🆚 **Beats ARM NEON** | 低精度计算场景平均领先鲲鹏 920(NEON)30–60% | | 🏗️ **Full-Stack Native** | 从指令集到数据库全栈自研,完整运行于 RISC-V 硬件 | | 🌱 **Production Ready** | 集成 etcd、MinIO、RocksDB 等完整依赖,支持独立部署 | --- ## 🏗️ Architecture | 系统架构 采用 **"由底层加速到全栈协同"** 的自研策略,分三层构建: ``` ╔══════════════════════════════════════════════════════════╗ ║ RVFlow Full Stack 全栈服务层 ║ ║ QueryNode │ IndexNode │ DataNode ║ ║ Standalone Mode ║ ║ etcd │ MinIO │ RocksDB ║ ╠══════════════════════════════════════════════════════════╣ ║ Vector Search Engine 向量检索引擎 ║ ║ ┌─────────────────────────────────────────────────┐ ║ ║ │ RVV 1.0 SIMD Backend (distances_rvv.cc) │ ║ ║ │ FP32 │ INT8 │ FP16 │ BF16 │ Batch Kernels │ ║ ║ │ Runtime SIMDManager — auto dispatch │ ║ ║ └─────────────────────────────────────────────────┘ ║ ╠══════════════════════════════════════════════════════════╣ ║ RISC-V Native Toolchain 原生编译工具链 ║ ║ GCC 15 (rv64gcv_zvfhmin) │ Conan │ CMake ║ ║ Go │ Rust ║ ╚══════════════════════════════════════════════════════════╝ ``` ### Layer 1 — RVV SIMD 计算核心 | Vector Compute Core - 自主实现 **RVV 1.0 SIMD 向量化距离计算内核**,覆盖相似性搜索全路径 - 在 `distances_rvv.cc` 中实现 `fvec_inner_product_rvv`、`fvec_L2sqr_rvv` 等核心函数 - 支持 **FP32、INT8 量化、FP16、BF16** 混合精度计算 - 使用 `vsetvl` 实现**向量长度无关(VLA)执行**,兼容不同 RVV 硬件配置 - 通过运行时 `SIMDManager` 自动检测 CPU 特性并调度最优实现,统一支持 x86 / ARM / PowerPC / RISC-V ### Layer 2 — RISC-V 原生编译工具链 | Native Toolchain - 基于 **EulixOS 3.0**(openEuler RISC-V 衍生版)从零搭建 **GCC 15 工具链**(`rv64gcv_zvfhmin`) - 完成 Conan、CMake、Go、Rust 全栈开发工具链的 RISC-V 适配 - 解决 jemalloc、cblas.h、RocksDB、Boost、cyrus-sasl、xxHash 等数十个第三方库的编译兼容性问题 - 构建出完整、可复现的 RISC-V 编译与部署流程 ### Layer 3 — 全栈服务集成 | Full-Stack Integration - 逐层验证 QueryNode、IndexNode、DataNode、Standalone 模式在 RISC-V 平台的稳定性 - 成功集成 **etcd、MinIO** 等关键依赖服务 - 实现向量数据库全量功能在 RISC-V 64 架构上的完整部署与运行 --- ## ⚡ Performance | 性能表现 **测试环境 | Test Environment** | 项目 | 详情 | |------|--------| | 操作系统 | EulixOS 3.0 (openEuler RISC-V) | | 编译器 | GCC 15 · `rv64gcv_zvfhmin` | | 硬件平台 | 算能 SG2044(RISC-V 64,RVV 1.0,128-bit 向量寄存器) | ### 📊 RVV 向量化 vs 标量加速比 | RVV vs. Scalar Speedup | 计算内核 | 数据类型 | 加速比 | |--------|-----------|---------| | `fvec_inner_product_rvv` | FP32 | **9.38×** | | `fvec_L2sqr_rvv` | FP32 | **10.22×** | | `fp16_vec_inner_product` | FP16 | **13.24×** | | `bf16_vec_L2sqr` | BF16 | **5.43×** | | `fvec_norm_L2sqr` | FP32 | **26.26×** 🔥 | | `fvec_inner_product_batch_4` | FP32 批处理 | **3.54×** | | `fvec_L2sqr_batch_4` | FP32 批处理 | **3.20×** | > `fvec_norm_L2sqr` 标量实现受内存带宽瓶颈制约,RVV 显著优化数据吞吐,实测加速比高达 **26.26×**。 ### 📊 RISC-V RVV vs ARM NEON(鲲鹏 920)| Cross-Platform Comparison | 计算场景 | RISC-V 优势 | |--------|-----------------| | FP16 内积 | **快 35%** | | FP16 L2 距离 | **快 37%** | | INT8 L2 距离 | **快 58%** 🔥 | | BF16 范数计算 | **快 18%** | | FP32 L2 距离 | **快 10%** | > 低精度场景(FP16/BF16/INT8)下,RVV 向量流水线充分利用硬件带宽,整体性能平均领先 ARM NEON **30–60%**。标准浮点算子上 RVV 与 NEON 基本持平,验证了 RVV 在通用 AI 计算领域的成熟度。 ### 📊 指令效率(IPC)提升 | Instructions Per Cycle RVV 向量化后平均 **IPC 提升约 1.45×**,不仅减少了总指令数,也提升了单周期指令吞吐能力,体现了 RVV 在 AI 推理负载中的综合能效优势。 --- ## 🔑 Core Innovations | 核心技术创新 **2,000+ 行自研 RVV 内核代码**,针对 RISC-V 架构特性深度优化: - **`distances_rvv.cc`** — 完整 RVV 1.0 向量化距离内核(FP32 / INT8 / FP16 / BF16 全覆盖) - **`__riscv` 宏检测机制** — CMake 构建系统中标准化的 RISC-V 架构识别与适配模板 - **4 路循环展开 + 多累加器融合** — 最大化指令级并行度(ILP) - **批处理内核**(如 `fvec_inner_product_batch_4_rvv`)— 实测性能较标量提升 **3.0–3.5×**,能耗降低约 **20–25%** --- ## 🚀 Quick Start | 快速上手 ### Prerequisites | 环境要求 - RISC-V 64-bit 硬件或支持 **RVV 1.0** 的模拟器 - **EulixOS 3.0** / openEuler RISC-V(或兼容的 RISC-V Linux 发行版) - **GCC 15+**,支持 `rv64gcv_zvfhmin` - CMake 3.18+,Go 1.21+,Rust 1.75+,Conan 2.x ### Build from Source | 从源码编译 ```bash # 1. 克隆仓库 git clone https://github.com//rv-vecdb.git cd rv-vecdb # 2. 配置 RISC-V 工具链 export CC=riscv64-linux-gnu-gcc export CXX=riscv64-linux-gnu-g++ export ARCH_FLAGS="-march=rv64gcv_zvfhmin" # 3. 编译向量检索引擎(含 RVV 加速后端) cd veccore && mkdir build && cd build cmake .. \ -DCMAKE_BUILD_TYPE=Release \ -DVECCORE_WITH_RVVSIMD=ON make -j$(nproc) # 4. 编译完整数据库服务 cd ../../ make rv-vecdb # 5. 启动独立模式 ./scripts/start_standalone.sh ``` > 📖 完整依赖配置、工具链初始化与问题排查,请参阅 [**BUILDING.md**](./BUILDING.md)。 --- ## 🗺️ Roadmap | 未来规划 - [ ] **标准化 RVV 向量算子库** — 形成数据库通用 RVV 算子接口层,支持复用扩展 - [ ] **量化索引支持(PQ/OPQ)** — 利用 RVV 宽矢量与混合精度特性优化量化编码与距离压缩 - [ ] **异构协同执行** — 探索 RISC-V + MLU/NPU 异构架构,实现 CPU–加速器联合调度;结合 openEuler 实现功耗感知型向量调度 - [ ] **生态标准建设** — 联合 openEuler、RISC-V 国际基金会等组织,推动 RISC-V 向量数据库标准化接口建设 --- ## 👥 About | 关于项目组 本项目由**中国科学院软件研究所(ISCAS)**联合**南京大学**自主研发,致力于推进 RISC-V 基础软件生态与国产化 AI 基础设施建设。 This project is developed by the **RVOS Project Team at the Institute of Software, Chinese Academy of Sciences (ISCAS)**, focused on advancing the RISC-V open-source software ecosystem and domestic AI infrastructure. **我们长期招募对以下方向感兴趣的实习生与贡献者 | We are recruiting:** - RISC-V 系统软件 / RISC-V system software - 高性能 AI 基础设施 / High-performance AI infrastructure - 向量数据库优化 / Vector database optimization 欢迎对 RISC-V 生态感兴趣的开发者通过 Issue 或 Discussion 参与交流! --- ## 🤝 Contributing | 参与贡献 欢迎提交 PR 和 Issue!请在提交前阅读 [CONTRIBUTING.md](./CONTRIBUTING.md)。 ```bash # Fork → 新建分支 → 提交 → PR git checkout -b feat/your-feature git commit -m "feat: describe your change" git push origin feat/your-feature # 在 GitHub 发起 Pull Request ``` --- ## 📄 License 本项目基于 [Apache License 2.0](./LICENSE) 开源。 ---
国产向量数据库,原生驱动 RISC-V AI 时代 🌟 **Domestic Vector Database, Natively Powering the RISC-V AI Era** **中国科学院软件研究所 · Institute of Software, Chinese Academy of Sciences** **南京大学 · Nanjing University of Science and Technology**