update
RustInfer是一个用Rust语言实现的高性能大语言模型(LLM)推理引擎,手写CUDA算子,支持BF16与INT4(AWQ)量化推理,单请求decode吞吐量超越vLLM。
高性能推理内核架构 - 从零成本抽象到显存优化
RustInfer 采用分层模块化架构,核心包括:
测试环境: H20, Batch Size=1, BF16, CUDA Graph enabled, vLLM compile disabled, temperature = 0, topk = None
Batch Size=1, compressed-tensors K-packed INT4, BF16 activation
注意: 长序列性能受到 flashdecode 影响,输出越长越慢。
v0.7.0 优化路径(259 → 281 tok/s, Qwen3-4B):
RustInfer/ ├── crates/ │ ├── infer-protocol/ # 通信协议定义(MessagePack) │ ├── infer-engine/ # 独立推理引擎进程 │ ├── infer-core/ # 核心推理库 │ │ ├── base/ # 内存管理、分配器 │ │ ├── tensor/ # 张量系统(零拷贝) │ │ ├── op/ # 算子库(CPU/CUDA) │ │ ├── model/ # 模型实现(Llama3 / Qwen3) │ │ └── cuda/ # CUDA集成 │ ├── infer-server/ # HTTP API服务器(Axum) │ │ ├── api/ # OpenAI兼容端点 │ │ ├── chat/ # 聊天模板 │ │ └── zmq_client.rs # ZMQ客户端 │ └── infer-frontend/ # Web UI(Dioxus WASM) ├── DEVELOPERS.md # 开发者文档(架构深度解析) ├── README.md # 本文件 └── Cargo.toml # 工作区配置
# Ubuntu/Debian sudo apt-get update sudo apt-get install clang libclang-dev pkg-config libssl-dev # OpenBLAS(CPU后端) sudo apt-get install libopenblas-dev # 或使用Conda conda install conda-forge::libclang anaconda::openssl
git clone https://github.com/Vinci-hit/RustInfer.git cd RustInfer
# CPU版本 cargo build --release # CUDA版本(需要CUDA toolkit) cargo build --release --features cuda
注意: build.rs 会自动检测GPU计算能力(通过 nvidia-smi),也可通过 CUDA_ARCH=sm_90 环境变量手动指定。
build.rs
CUDA_ARCH=sm_90
先下载测试模型(Llama-3.2-1B-Instruct):
uv run hf download unsloth/Llama-3.2-1B-Instruct --local-dir ./Llama-3.2-1B-Instruct
# 基础测试 cd RustInfer/crates/infer-core cargo test # CUDA性能测试 cargo test test_llama3_cuda_performance --release -- --nocapture --ignored # CPU推理测试 cargo test test_llama3_cpu_loading_and_generation --release -- --nocapture --ignored
下载地址:
支持格式:
测试环境: H20, Qwen3-4B, Batch Size=1
发布日期: 2026-04
核心改进:
__ldg
性能:
发布日期: 2026-01
发布日期: 2025-10
CUDA内存池化 (/crates/infer-core/src/base/allocator.rs)
/crates/infer-core/src/base/allocator.rs
零拷贝模型加载 (/crates/infer-core/src/model/loader.rs)
/crates/infer-core/src/model/loader.rs
Workspace预分配 (/crates/infer-core/src/model/llama3.rs)
/crates/infer-core/src/model/llama3.rs
CUDA Graph捕获 (/crates/infer-core/src/cuda/config.rs)
/crates/infer-core/src/cuda/config.rs
Flash Attention (/crates/infer-core/src/op/kernels/cuda/flash_attn_gqa/)
/crates/infer-core/src/op/kernels/cuda/flash_attn_gqa/
算子融合
手写 BF16 GEMV kernel
INT4 AWQ 量化推理
BF16混合精度
中优先级:
低优先级:
详细技术实现指南请参阅 DEVELOPERS.md
请参阅 DEVELOPERS.md 中的详细模板和示例。
关键步骤:
Op
参考 /crates/infer-core/src/model/llama3.rs 实现:
完整指南: DEVELOPERS.md
Apache License 2.0 - 详见 LICENSE
灵感来源:
技术栈:
如果这个项目对你有帮助,请给我们一个 ⭐ Star!
Made with ❤️ and 🦀 Rust
GitHub • Issues
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802032778号
RustInfer: Rust实现的高性能LLM推理引擎
RustInfer是一个用Rust语言实现的高性能大语言模型(LLM)推理引擎,手写CUDA算子,支持BF16与INT4(AWQ)量化推理,单请求decode吞吐量超越vLLM。
🏗️ 核心架构
高性能推理内核架构 - 从零成本抽象到显存优化
RustInfer 采用分层模块化架构,核心包括:
📊 性能对比:RustInfer vs vLLM
Qwen3-4B
Llama-3.2-1B-Instruct
INT4 AWQ 量化推理
v0.7.0 优化路径(259 → 281 tok/s, Qwen3-4B):
项目结构
🚀 快速开始
1. 安装依赖
2. 克隆仓库
3. 构建项目
注意:
build.rs会自动检测GPU计算能力(通过 nvidia-smi),也可通过CUDA_ARCH=sm_90环境变量手动指定。4. 运行测试
先下载测试模型(Llama-3.2-1B-Instruct):
📦 支持的模型
Llama 3 系列
Qwen3 系列
下载地址:
支持格式:
📊 性能基准与版本演进
性能提升历程
版本历史
v0.8.0 (当前) - INT4 AWQ 量化推理
发布日期: 2026-04
核心改进:
v0.7.0 - 手写GEMV + Kernel级优化,281 tok/s
发布日期: 2026-04
核心改进:
__ldgread-only cache,小矩阵(QKV/wo/w2)比 cublasLt 快 25-44%性能:
v0.6.0 - Decode性能优化,超越vLLM
发布日期: 2026-04
核心改进:
v0.5.0 - Qwen3 模型支持
发布日期: 2026-04
v0.4.0 - 架构升级
发布日期: 2026-01
v0.3.0 - CUDA Graph优化
发布日期: 2026-01
v0.2.0 - 性能突破
发布日期: 2026-01
v0.1.0 - 初始版本
发布日期: 2025-10
⚡ 性能优化技术
已实现的优化
CUDA内存池化 (
/crates/infer-core/src/base/allocator.rs)零拷贝模型加载 (
/crates/infer-core/src/model/loader.rs)Workspace预分配 (
/crates/infer-core/src/model/llama3.rs)CUDA Graph捕获 (
/crates/infer-core/src/cuda/config.rs)Flash Attention (
/crates/infer-core/src/op/kernels/cuda/flash_attn_gqa/)算子融合
手写 BF16 GEMV kernel
__ldgread-only cache 路径减少 L1 thrashingINT4 AWQ 量化推理
BF16混合精度
⚠️ 当前限制
已实现 ✅
待实现 🔄
高优先级:
中优先级:
低优先级:
详细技术实现指南请参阅 DEVELOPERS.md
🛠️ 开发指南
添加新算子
请参阅 DEVELOPERS.md 中的详细模板和示例。
关键步骤:
Optrait添加新模型
参考
/crates/infer-core/src/model/llama3.rs实现:完整指南: DEVELOPERS.md
📄 许可证
Apache License 2.0 - 详见 LICENSE
🙏 致谢
灵感来源:
技术栈:
如果这个项目对你有帮助,请给我们一个 ⭐ Star!
Made with ❤️ and 🦀 Rust
GitHub • Issues