arle(1)
一个人 · 纯 rust · 从零写起 · 公开构建
rle

推理,不再是
魔法

现代推理栈的全部 —— continuous batching、radix 前缀缓存、paged KV、CUDA graphs、投机解码 —— 一个人用 Rust 手写,小到一个周末就能读完

cuda stable · ampere+ metal beta · apple silicon cpu dev only api openai · v1 release v0.1.5 · 2026-04-28
arle — bash ~/projects/arle
$ arle --doctor
cuda    ok    # nvidia-smi · cuda 12.x · ampere+
metal   beta  # apple m-series detected
cpu     ok    # dev-only smoke path
model   ok    # Qwen3-4B reachable
api     ok    # /v1/chat/completions · streaming

$ arle serve --backend cuda --model Qwen3-4B
listening on http://0.0.0.0:8000  · ready in 1.4s

为什么做这个

不是 wrapper,不是 binding,不是 fork。大引擎藏在 pip install 背后的每一层,在这里都是几百行可以单步调试的 Rust —— 还有每个决定为什么长这样的完整记录。

conviction · 01从零写起,就是目的。

自研 autograd、调度器、radix 前缀缓存、paged KV、CUDA graphs、MLX bridge。论文里见过的概念,在这里是一个个小 Rust 文件 —— 读一个 crate,吃透一个概念

conviction · 02被砍掉的也留档。

死路留在仓库里,标着 KILL 和杀死它的测量数据。你继承的是测量过程,不只是结论 —— 几个月的 A/B 实验,免费可读

conviction · 03数字都有日期。

每个基准都是 docs/experience/wins/ 里带日期的快照,环境、参数、回归俱全。没有精选。「快」要么是带日期的数字,要么什么都不是。

conviction · 04一个二进制,零胶水。

serving 时没有 Python,没有 sidecar 进程,没有配置蔓延。arle 是 workspace 唯一构建的二进制 —— 从 clone 到第一个 token 只要几分钟,GPU 机器或 MacBook 都行。

架构

2026-06-04 cutover 之后,单体 infer crate 已经不在了。运行时是一张设备无关的 crate 图 —— 依赖严格向下流动,infer-core 不依赖任何后端,后端在前门接入。权威拓扑见 docs/codebase-map.md

bin
arle the only binary the workspace builds · src/main.rs
control plane
cliagentchattools REPL · session loop · protocol · sandboxed tools
front door
infer-api InferenceEngine · LoadedInferenceEngine · backends plug in here
server · core
infer-serverinfer-core OpenAI v1 facade (axum) · Engine<E,K> · scheduler · radix prefix
seam · ir
infer-seaminfer-plan BackendExecutor + KvPool seam · ForwardPlan IR — host-only
backends
infer-cudainfer-metal feature-gated · metal’s host KV pool doubles as the cpu smoke path
kernels
cuda-kernelsmlx-syskv-native-sys CUDA C / TileLang · MLX C++ bridge · KV persistence
纯叶子 · infer-topo · infer-moe · infer-utilspecs · qwen3 · qwen35 · deepseekffi · deepep-sys · xgrammar-systrain · autograd + train — 2026-05-18 起仅 OPD

安装

每个平台一行能跑的命令。预编译 tarball 与 SHA 见每次 GitHub Release;curl 安装脚本会先校验 SHA256 再解压。

Apple Silicon · Homebrew zsh / bash
$ brew install cklxx/tap/arle
$ arle --doctor
Linux x86_64 / macOS · curl sh 兼容
$ curl -fsSL https://github.com/cklxx/arle/releases/latest/download/install.sh \
    | sh
$ arle --doctor
CUDA · GPU 容器 docker / nvidia
$ docker run --rm --gpus all -p 8000:8000 \
    -v /path/to/Qwen3-4B:/model:ro \
    ghcr.io/cklxx/arle:latest \
    serve --backend cuda --model-path /model
源码 · Cargo workspace
$ git clone https://github.com/cklxx/arle && cd arle
$ cargo build --release --features cuda --bin arle
# cli 默认开启; cpu: --no-default-features --features cpu,no-cuda

基准

直接来自 docs/experience/wins/ 的带日期快照。数字出自 scripts/bench_guidellm.sh 与标准 step-driver 冒烟,未做挑选。

2026-06-10 beta · 闸门已 license

cuda · 8×H20 TP=8 / EP=8 · DeepSeek-V4-Flash FP8 · B=1,官方 FlashMLA / DSA / DeepGEMM + MTP · 256K 可启动、needle 230K 精确命中

prefill
23ms
解码
15ms/tok
解码 +MTP
64.2tok/s
needle 精确
230Kctx
scripts/dsv4_lever_gate.sh 完整快照 ↗
2026-05-21 beta · 周期闭环

cuda · RTX 4070 Ti SUPER 16GB · Qwen3-0.6B 真实 checkpoint OPD step · 32 commit 单 session、kill-or-license 闸门

step
0.164s
对比 naive CPU
~170×
moderate vs PyTorch CUDA
1.71× ARLE 领先
held-out 5k overlap
82.8%(自 50)
cargo run -p train --example opd_step_cuda_realckpt_train --release --features cuda -- --lr 1e-7 --steps 5000 完整快照 ↗
2026-05-18 beta · 即席

metal · Apple M4 Pro 48GB · Qwen3.6-35B-A3B 4-bit MLX · HTTP serve、流式 /v1/completions

解码
85.6tok/s
e2e
76.1tok/s
TTFT
385ms
对比 mlx-lm
≈100%
arle serve --backend metal --model-path mlx-community/Qwen3.6-35B-A3B-4bit --port 8010 完整快照 ↗
2026-04-28 stable · CI 已门控

cuda · NVIDIA L4 · Qwen3-4B · BF16 + FP8 分页 KV(auto)· c=16

输出
197tok/s
ITL p50
77.9ms
对比 legacy
+64%
KV 利用率
69%
scripts/bench_guidellm.sh cuda-l4-hbm-tier-fp8-auto 完整快照 ↗
2026-04-27 beta · 持续验证

metal · Apple M4 Pro · Qwen3.5-0.8B Q4_K_M · GGUF decode

生成
211tok/s
e2e
202tok/s
decode
4.7ms/tok
TTFT
223ms
arle serve --backend metal --model-path Qwen3.5-0.8B-Q4_K_M.gguf 完整快照 ↗

支持矩阵

三种后端,一份运行时契约。权威矩阵见 docs/support-matrix.md

后端稳定度系统 / 硬件模型量化API
cudastableLinux + NVIDIA Ampere+Qwen3 / Qwen3.5 · DeepSeek-V4-Flash(8×H20)FP16 / BF16 · FP8 KV(auto)· GGUF Q4_KOpenAI v1
metalbetaApple Silicon(M1+)Qwen3.5 · Qwen3.6 MoE(canonical)FP16 / BF16 · MLX 4-bit · GGUF Q4_KOpenAI v1
cpudev only便携冒烟Qwen3 / Qwen3.5(小尺寸)FP16 / BF16OpenAI v1

贡献会落在哪

没有排队,没有委员会 —— 一个周末的 PR 就能改动头条数字,战场全部公开:串行 phase 计划在 ROADMAP.md,每条战线一个跟踪 issue。从 CONTRIBUTING.md 开始,不要先钻维护者计划树。

Star 是个人项目唯一的指标。如果这个仓库帮你省下了啃别人 CUDA 的时间 —— 或者只是证明了这件事 Rust 写得出来 —— 留一颗。它决定这件事能得到多少时间。

★ Star cklxx/arle

文件

仓库一览。每条都指回 cklxx/arle 的标准路径。