# 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://riscv.org/)
[](https://github.com/riscv/riscv-v-spec)
[](https://www.openeuler.org/)
[](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**