
【免费下载链接】FlashRTFlashRT is a high-performance realtime inference engine for small-batch, latency-sensitive AI workloads. The flagship integration is production VLA control for Pi0, Pi0.5, GROOT N1.6, and Pi0-FAST. Also support llm e.g, qwen3.6-27B项目地址https://gitcode.com/gh_mirrors/fl/FlashRT点击查看免费下载FlashRT 是一款面向小批量、延迟敏感场景的高性能实时推理引擎也是 Pi0、Pi0.5、GROOT N1.6 等机器人 VLA 模型的生产级控制引擎。这篇文章带你一次讲透FlashRT 的完整架构从最底层的 CUDA 内核库到中间的 Python 前端、执行契约再到顶部的 Serving 场景宿主层共 8 大核心组件 2 个扩展层全部用大白话讲清楚。无论你是想评估它能否加速自己的模型还是想读懂源码再下手这份组件地图都能帮你快速定位每一块积木的位置与职责。先看懂全局四层运行时架构 FlashRT不是编译器或图重写器它的定位很朴素一个内核库 8 个基础设施组件由薄薄的每模型流水线拼装起来。整体分层如下层级目录职责一句话理解场景宿主层serving/会话、调度器、协议、机器人循环、OpenAI 兼容 HTTP/SSE怎么接客Python 前端层flash_rt/权重、校准、CUDA Graph 捕获、模型 API怎么搭车执行契约层exec/C ABIBuffer / Graph / Planreplay 期机制轨道标准内核库层csrc/CUDA/C 内核与注意力/GEMM 基础组件发动机本体这套设计的精髓在于Serving 层刻意放在模型运行时之上。它只管会话策略、流式协议、回合生命周期、中断/重置行为核心运行时只负责图与内核机制。两者各司其职互不纠缠。完整分层说明见 docs/architecture.md 与 docs/cpp_runtime_design.md。组件 1公共 API —— 三行代码的入口 一切从两个函数开始model flash_rt.load_model(checkpoint, configpi05, frameworktorch) actions model.predict(images..., prompt...)load_model内部只做三件事探测 GPU 算力compute capability解析出arch如thor、rtx_sm120、rtx_sm89拿着(config, framework, arch)三元组去硬件分派表里查对应的前端导入模块、实例化前端包在一个轻量的VLAModel适配器里返回。API 被刻意设计得小而稳定——不暴露注意力后端、校准内部状态、图捕获状态这些复杂概念新手只面对两行代码。源码入口flash_rt/api.py稳定 API 面文档docs/stable_api.md组件 2硬件分派表 —— 全仓库唯一的路由字典 ️这是整个代码库中唯一知道哪个前端处理哪种硬件的地方本质就是一个 Python 字典_PIPELINE_MAP { (pi05, torch, thor): (flash_rt.frontends.torch.pi05_thor, Pi05TorchFrontendThor), (pi05, torch, rtx_sm120): (flash_rt.frontends.torch.pi05, Pi05TorchFrontendRtx), # … 每个 (模型, 框架, 架构) 三元组一行 }设计哲学是极简分派没有插件清单、没有 entry-points 扫描、没有 manifest YAML就是一张显式的 Python 字典。外部插件可以在 import 时直接追加新行无需 fork 仓库——加一个新模型往往就是往这张表里多写一行。源码flash_rt/hardware/init.py插件扩展模板docs/plugin_model_template.md组件 3Frontend 前端 —— 每个模型唯一要写的文件 Frontend 是每模型一个文件的组件位于flash_rt/frontends/{torch,jax}/model_arch.py。它是新模型接入时唯一需要新写的部分其余全部复用共享基础设施。一个前端负责五件事每件事都外包给共享组件职责交给谁读 checkpoint → 填充模块属性权重加载器组件 4声明注意力形状 → 拿到后端Attention Backend组件 5计算/加载 FP8 激活缩放校准框架组件 6把 forward 捕获成静态图CUDA Graph 捕获组件 7在forward()里调用内核内核库组件 8前端文件通常 800–1500 行全部是线性代码没有复杂的继承层级——只有鸭子类型的set_prompt、infer等方法供公共 API 调用。同一模型的 Torch/JAX、Thor/RTX 前端之间不共享 forward 路径代码但通过组件 4–8 共享一切基础设施。目录flash_rt/frontends/添加新模型指南docs/adding_new_model.md组件 4声明式权重加载 —— 用规格表描述每一块权重 权重加载靠一份声明式规格表WEIGHT_SPEC完成它描述 checkpoint 中每个权重张量如何映射到模块属性包含转置、融合 Norm、FP8 量化等变换与量化缩放。关键点在于框架无关具体WeightSource有 safetensorsTorch和 Orbax dictJAX两种实现同一份WEIGHT_SPEC换一下 source 就能同时工作于两个框架——这也是PyTorch 和 JAX 前端共享同一份内核二进制、结果等价cosine ≥ 0.999的底层保障。核心代码flash_rt/executors/weight_loader.py规格表详解docs/extension/weight_spec.md组件 5Attention Backend —— 同一份流水线两种硬件都跑得动 注意力是模型里最难跨硬件的部分。FlashRT 用协议模式解耦前端只声明一个AttentionSpec一组 site如 SigLIP 视觉、PaliGemma 编码器、Pi0.5 解码器各自的 head 数、head 维度、最大序列长度框架据此返回对应的后端实例。于是同一份流水线源码在Thor上走 CUTLASS FMHA / 分解 cuBLAS 路径在RTX上走内置 FlashAttention-2 路径——切换的只是背后接线的后端实现前端的 pipeline 代码一字不改。协议定义flash_rt/hardware/backend.py完整文档docs/extension/attention_backend.md组件 6校准框架 —— FP8 量化不是脚本是框架 ⚖️FP8 校准在 FlashRT 里是一个框架而非每模型各写一遍的脚本。它统一管理缓存键推导{ckpt_hash}_Se{N}.json换 checkpoint 或改序列长度时缓存不会误命中缓存位置固定~/.flash_rt/calibration/跨模型、跨配置路径一致两阶段流程(a) 测量 pass记录每个 FP8 GEMM 输入的 amax(b) refit pass复合alpha act_scale × weight_scale并把它们作为宿主标量烤进捕获的图里。前端只需按协议写一个_calibrate(self, sample_obs)方法缓存查询、保存、文件命名等周边逻辑全部共享。框架代码flash_rt/core/quant/calibrator.py机制详解docs/calibration.md · docs/extension/calibration.md组件 7CUDA Graph 捕获 —— 只传指针的静态图 组件 7 是快的来源。它对torch.cuda.CUDAGraph做了两个 FlashRT 专属增强仅指针 forward被捕获的 forward 只接受int设备指针不接受 tensor/array。捕获时强制校验杜绝 replay 期间的意外内存分配tactic 稳定 autotune可选地重捕获最多 N 次并保留最快调度规避 Thor 上 Myelin / cuBLASLt tactic 的非确定性每次捕获约 2ms 方差。捕获后的图不落盘没有.engine文件、没有序列化图在进程内存里活到进程结束重启即重捕获热缓存下约 50–500 ms。这也是它能扛住 CUDA 驱动升级、换 GPU、换 prompt 都不需重建的原因。源码flash_rt/core/cuda_graph.py组件 8内核库 —— 手写的发动机 最底层是三个动态库全部由import flash_rt加载源码在csrc/下模块构建条件内容flash_rt_kernels.so始终构建约 98 个 pybind 入口norm / 激活 / 融合 / 量化 / GEMM / 注意力 / RoPE / 工具flash_rt_fp4.so仅 SM100约 23 个入口NVFP4 权重预处理 SM120 block-scaled GEMMflash_rt_fa2.so仅 RTX2 个入口FA2 fp16 / bf16 前向分工清晰内存受限的算子norm、激活、残差norm量化融合、qkv 拆分RoPE、patch embed 等全部手写算力受限的算子GEMM、注意力委托给 cuBLASLt FP8 GEMM、CUTLASS、内置 FA2 与 Thor 的 CUTLASS FMHA。内核库 API稳定——已发布内核的签名跨版本保持不变新内核可自由新增。全量内核清单docs/kernel_catalog.md融合模式与命名规范docs/kernel_fusion.md源码目录csrc/串起来看一次 predict 调用发生了什么 predict(images, prompt) │ 仅首次调用 │ set_prompt(prompt) │ ├─ 前端._calibrate() ← 校准框架(6)命中缓存或跑 1 次测量 │ ├─ 构建 AttentionSpec → 后端 ← 注意力后端(5) │ ├─ WeightLoader.run() ← 权重加载(4) │ └─ cuda_graph.capture() ← 图捕获(7) │ │ 之后每次调用 └─ graph.replay() 三次指针拷贝 ← 执行内核库(8)首次调用慢校准 捕获之后每次调用只是一次graph.replay()。不编译、不导出、prompt 变化不重捕获——因为所有会变化的东西prompt token、观测像素、动作噪声种子都是图的输入而非图拓扑。组合流程详见 docs/architecture.md §4。8 大组件之上exec 执行契约与 Serving 层 八个组件之上还有两个扩展层把一次性的快变成可运营的服务。exec/C ABI 执行契约exec/把内核图 replay 这套机制固化为一个极简 C ABI只有 3 个对象 1 把钥匙——Buffer命名的设备内存是唯一的状态KV 缓存、缩放因子、噪声、子目标 embedding图之间靠共享同一个 Buffer实现零拷贝交接GraphShapeKey → 图变体表精确键 LRU支持外部捕获后 adoptreplay 就是cudaGraphLaunch本身零额外开销Plan跨流的多图 DAG只有数据依赖不含优先级/抢占——那是上层策略的事。契约只定机制不定策略且对csrc/内核层零依赖。Python 前端负责冷启动加载、校准、autotune、捕获宿主进程只驱动热路径 replay。契约规范docs/exec_contract.md源码exec/serving/场景宿主层libflashrt_exec之上是一组场景宿主每个宿主为具体场景补齐策略宿主场景robot_recap/RL rollout 宿主回合状态机、键盘启停、episode 录制、跨 chunk 中断重置无需重新捕获robot_handoff/分层 planner→actor 的 buffer 交接、多速率、运行中子任务打断robot_host/C 实时 VLA 部署模式Plan、并发流、buffer 覆写中断面向上机 / ROS2qwen36_agent/Qwen3.6 长会话 Agent 服务精确 token 前缀复用、OpenAI 兼容工具调用、真 SSE 流式llm_agent/Rust 参考宿主per-token replay over C ABI 的高并发控制面实验其标志性设计是graph-replay 原生的执行状态胶囊快照/恢复/fork/时间旅行它填补了 vLLM/SGLang 的 block/radix KV 缓存不擅长的场景——混合循环状态、全图捕获、LLMVLA机器人同机制运行。宿主总览serving/README.md设计文档docs/serving_design.md · docs/serving_production.md它和 TensorRT / vLLM / SGLang 有什么不同一句话概括FlashRT 是按工作负载形状小批量实时设计的而不是按模型类别设计的。运行时直接执行前端写好的内核序列没有图编译器 / tactic 搜索——前端作者本人就是优化器KV 缓存是静态布局的每层设备 buffer支持图内小 batchCFG、多策略、多帧但不做跨请求连续 batching它可以选择部署成一个捕获图一个进程再由 Serving 层扇出到多个 FlashRT worker——这是显式的扩展路径。详细对比见 docs/inference_engine_differences.md。总结一张表记住 FlashRT 架构 ✅#组件位置一句话1公共 APIflash_rt/api.py两行入口稳定且极小2硬件分派表flash_rt/hardware/init.py全仓库唯一的路由字典3Frontendflash_rt/frontends/每模型唯一要写的文件4权重加载flash_rt/executors/weight_loader.py声明式 WEIGHT_SPEC框架无关5Attention Backendflash_rt/hardware/backend.py协议化Thor/RTX 一键换线6校准框架flash_rt/core/quant/calibrator.pyFP8 校准是框架不是脚本7CUDA Graph 捕获flash_rt/core/cuda_graph.py仅指针 forward 稳定 autotune8内核库csrc/ →flash_rt/*.so手写内存受限算子 委托算力受限算子执行契约exec/C ABIBuffer/Graph/PlanServing 宿主serving/机器人 rollout、LLM Agent 场景策略想动手上手建议路线先读 docs/INSTALL.md 装好环境跑通 examples/quickstart.py 的第一次predict再顺着本文的 8 个组件逐个对照源码。FlashRT 的基础设施侧不含内核与前端总共只有约 3000 行——读懂它比想象中轻松。赞分享【免费下载链接】FlashRTFlashRT is a high-performance realtime inference engine for small-batch, latency-sensitive AI workloads. The flagship integration is production VLA control for Pi0, Pi0.5, GROOT N1.6, and Pi0-FAST. Also support llm e.g, qwen3.6-27B项目地址https://gitcode.com/gh_mirrors/fl/FlashRT点击查看免费下载相关推荐librime核心架构揭秘从引擎到组件的深度剖析librime核心架构揭秘从引擎到组件的深度剖析 librime输入法引擎是一个模块化、可扩展的开源项目作为Rime输入法的核心库它采用跨平台C代码构NautilusTrader架构深度剖析从核心组件到模块设计NautilusTrader架构深度剖析从核心组件到模块设计 NautilusTrader作为高性能算法交易平台其架构设计涵盖了核心Rust组件的性能优化策金融科技LocalAI架构深度剖析与核心组件详解LocalAI架构深度剖析与核心组件详解 LocalAI是一个高度可扩展的本地AI推理平台采用微服务化设计理念通过GRPC协议实现后端服务与模型加载器的解耦人工智能大模型模型推理服务本地部署AI AgentRAGLLM 网关多模态语音/音频媒体生成MCP 服务创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考