TileRT: Tile-Based Runtime for Ultra-Low-Latency LLM Inference

framework tile-ai-tilert — Cross-paper Synthesis

TileRT — L3 · 代码实现 vs 博客叙事的交叉审计 #

相关论文 #

TileRT 开源代码仓库(tile-ai/TileRT)处于一个独特的位置:它是 persistent execution paradigm 在生产级推理引擎中的第一个可审计实例,但其核心调度逻辑封装在闭源 C++ 库中,仅 Python 编排层开源。围绕它的 4 个相关 entity 构成了一个完整的比对网格:

  1. tilert-speed-scaling-law(TileRT 官方博客):TileRT 的设计哲学宣言,提出"Speed as the Next Scaling Law"叙事,声称 AOT 编译将整个模型展开为单个 Persistent Engine Kernel,以 warp/block/GPU 三级特化实现 tile 粒度持续重叠 [tilert-speed-scaling-law]。这是代码仓库的"上游叙事",代码应当是该叙事的实现——但二者之间存在显著裂缝。
    1. 2604.17861(GPUOS):UC Santa Cruz 等提出的 persistent kernel + ring buffer + dynamic operator injection 原语,在 H100 上实现 element-wise 15.3×、attention decoding 8.7× 加速 [2604.17861]。GPUOS 与 TileRT 共享"launch once, dispatch many"的基本理念,但走的是通用原语路线(任意 PyTorch op 透明加速),而非 TileRT 的模型特化路线。
      1. 2604.15379(Fleet):AMD Research 提出的 chiplet-aware persistent megakernel,在 MI350 上通过 Chiplet-task 抽象 + M-major 协作式 tile 遍历实现 L2 cache 协作复用,bs=1 decode 比 vLLM 快 1.56× [2604.15379]。Fleet 是 persistent megakernel 的另一极端实现——完全学术化、单模型验证、AMD 专属——与 TileRT 的 NVIDIA 专属+生产部署形成对称对照。
        1. tokenspeed(TokenSpeed):LightSeek Foundation 的 speed-of-light 推理引擎,面向 agentic workloads,通过 C++ FSM 调度器 + Placement 编译器 + Blackwell MLA 内核追求 TRT-LLM 级性能和 vLLM 级可用性 [tokenspeed]。TokenSpeed 代表了"不走 persistent kernel 也能极致优化"的替代路径——模块化内核注册 + 静态 SPMD 编译,工程量大但可审计性强。
        2. 这四者在 persistent execution paradigm 维度上形成一个谱系:GPUOS(通用原语)→ Fleet(学术 megakernel)→ TileRT 博客叙事(生产 persistent engine)→ TileRT 代码(??? 真相待审)→ TokenSpeed(non-persistent 替代方案)。

          本篇 vs 相关论文的 delta #

          Delta 1:博客叙事 vs 代码实现的裂缝 #

          TileRT 博客宣称 "AOT 编译将整个模型静态展开为单个 Persistent Engine Kernel,host 仅启动一次" [tilert-speed-scaling-law]。但代码仓库揭示的执行模型与此叙事存在关键偏差:

          博客声称代码实际裂缝评估
          单个 Persistent Engine Kerneldsa_show_hands_prepare_money() 捕获 CUDA graph,dsa_show_hands() 回放 [tile-ai-tilert]CUDA graph ≠ persistent kernel。Graph 是录制-回放模型,kernel 在 graph replay 时仍会逐个被硬件 scheduler 调度;persistent kernel 是 GPU 端常驻执行,永不退出。二者的 host-device 交互模型根本不同
          Warp/Block/GPU 三级特化Python 层完全不可见;所有 fused op 的 tilert_forward() 最终 dispatch 到 torch.ops.tilert.* C++ 算子 [tile-ai-tilert]C++ 黑盒中可能确实存在 warp specialization,但开源代码无法验证
          AOT 编译期将整个模型静态展开代码构建路径是 Python 动态注册 register_op() → 运行时 init_tilert_weights()prepare_money() CUDA graph capture [tile-ai-tilert]看不到 AOT 编译器 IR、不可见的编译期优化;Python 层展示的是运行时组装 + 图捕获模式
          GPU-resident orchestration,通信从 NCCL 迁入 persistent kernel每个 fused op 带 AllReduce 后缀(UnProjOAllReduce, ExpertDownAllReduce),但 AllReduce 实现完全在 C++ 中 [tile-ai-tilert]通信原语的实现不可审计;是否真正绕过 NCCL 无法从开源代码确认
          Heterogeneous Workers: GPU0 = Sparse Indexer, GPU1-7 = MLA Workers代码中 num_devices=8 硬编码对称 TP,所有 8 个 GPU 构建相同的 Dsa 模型栈 [tile-ai-tilert]对称 vs 非对称直接冲突。博客描述的 GPU0 异构角色在开源 Python 代码中完全没有体现

          核心判断:博客叙事是 TileRT v0.1.4(生产版)的设计目标或内部实现的技术营销描述,但开源代码仓库(截至 v0.1.3/v0.1.4-dev)展示的是一个更保守的执行模型——CUDA graph 录制-回放 + 闭源 C++ tile 调度。"Persistent Engine Kernel"可能存在于 C++ 黑盒中(CUDA graph capture 内部的 C++ kernel 可以是 persistent 的),但从可审计的 Python 层无法确认。

          Delta 2:TileRT vs GPUOS —— 模型特化 vs 通用原语 #

          维度TileRTGPUOS
          设计目标单模型极致延迟 (batch=1)通用微操作加速
          kernel 策略整图 CUDA graph + 闭源 tile schedulerPersistent kernel + ring buffer + dynamic dispatch [2604.17861]
          可审计性Python 壳 + C++ 黑盒3793 行全开源 [2604.17861]
          动态性update_sampling_config() 需完全 teardown + re-capture [tile-ai-tilert]NVRTC JIT 零停机热更新 [2604.17861]
          硬件绑定8×B200 硬编码H100/RTX 5090/GB10 三平台 [2604.17861]
          batchingbatch=1 onlyhybrid:小 op 走 GPUOS,大 GEMM 走传统 launch
          生产状态Z.ai 生产部署学术原型

          GPUOS 的根本优势在于可组合性——它是 PyTorch TorchDispatch 层的透明加速,不需要重写模型 [2604.17861]。TileRT 的根本优势在于端到端极致——把 Norm+Proj+Quant+Comm 四类操作跨边界融合为 20+ fused ops [tile-ai-tilert],是 GPUOS per-op dispatch 做不到的。但 GPUOS 的 3793 行全开源在学术可信度上完全碾压 TileRT 的闭源黑盒。

          Delta 3:TileRT vs Fleet —— NVIDIA 手工优化 vs AMD 系统化抽象 #

          Fleet 的核心创新是 Chiplet-task 抽象——把"一颗 XCD + 其 4 MB L2"作为显式调度单元 [2604.15379]。TileRT 没有等价的硬件拓扑感知概念(代码中不可见 SM/GPC 级调度逻辑),其 tile 调度完全在 C++ 黑盒中。但 Fleet 在 bs=1 时加速仅来自 dispatch 压缩(L2 hit 16.9% ≈ baseline 的 16.4%)[2604.15379],而 TileRT 在 bs=1 达到 600 tok/s [tile-ai-tilert]——暗示 TileRT 的 tile 级计算-通信重叠在 bs=1 场景下远比 Fleet 的 L2 协作更有效。

          Delta 4:TileRT vs TokenSpeed —— 闭源黑盒 vs 全栈可审计 #

          TokenSpeed 选择了与 TileRT 完全对立的工程哲学 [tokenspeed]

          维度TileRTTokenSpeed
          调度器C++ 黑盒 tile schedulerC++ FSM 13 状态 + RAII 类型安全,全开源
          模型定义手写 fused ops per modelPlacement 注解 + 编译器自动通信
          内核闭源 tile-level 融合5-band 内核注册表 + 插件化
          并行模式8-way 对称 TP 硬编码不对称 TP(ATTN_TP ≠ MoE_TP),编译器自动 resharding
          batchingbatch=1 only连续 batching + retraction
          目标单请求极致 TPOTPareto: latency × throughput

          TokenSpeed 的 MLA q-head 折叠使 agent 典型 decode 延迟近乎减半 [tokenspeed]——这是一种可审计、可复现的 kernel 优化,与 TileRT 的闭源 tile 调度形成鲜明对比。

          可攻击面 #

          Attack 1:Persistent Engine Kernel 还是 CUDA Graph? #

          博客宣称 TileRT 是 "Persistent Engine Kernel" [tilert-speed-scaling-law],代码显示是 CUDA graph capture/replay [tile-ai-tilert]。这是两种根本不同的执行模型:

          • Persistent kernel(GPUOS/Fleet 的做法):kernel launch 一次,永不退出,通过 device-side polling 接收新任务 [2604.17861]
          • CUDA graph(TileRT 代码的做法):录制 kernel 序列为 DAG,一次性 replay,但每个 kernel 仍由硬件 scheduler 调度

          可能的调和解释:TileRT 的 C++ 自定义算子内部可能是一个 persistent kernel,被包装为单个 CUDA graph node。这在技术上可行(persistent kernel 可以被 graph capture),但意味着"persistent"的粒度不是"整个模型",而是"单个 C++ 算子内部"——这与博客叙事的宏大叙事有质的差异。无法从开源代码验证

          Attack 2:Heterogeneous Workers 的证据缺失 #

          博客详细描述 GPU0 = Sparse Indexer Worker,GPU1-7 = MLA Workers [tilert-speed-scaling-law]。但代码中 8 个 GPU 构建完全相同的 Dsa 模型栈,权重加载循环 for device_id in range(self.num_devices) 对所有设备一视同仁 [tile-ai-tilert]。稀疏注意力的 sparse_index 操作在每个 GPU 上都有对应的 fused op [tile-ai-tilert],未见到 GPU0 独占 sparse indexing 的逻辑。

          可能解释:(a) Heterogeneous Workers 仅在 GLM-5.1 的 C++ 后端实现,Python 层不体现;(b) 博客描述的是 v0.1.4 目标架构,v0.1.3 代码尚未实现。无论哪种,开源代码与博客声称不一致是事实。

          Attack 3:性能数字的可复现性 #

          TileRT 声称 DeepSeek-V3.2 达 600 tok/s,GLM-5 达 500 tok/s [tile-ai-tilert]。但:

          • 核心 tile 调度逻辑在闭源 C++ 中——外部无法审计性能优化的来源
          • 闭源 .so 发布为 Docker 镜像中的 pip wheel——无法从源码复现构建
          • 无与 vLLM/SGLang/TRT-LLM 在相同硬件上的受控对比实验
          • 无 profiler trace 或火焰图公开

          对比 GPUOS 的 3793 行全开源 + Table 2 多平台基准 [2604.17861],和 Fleet 的 rocprofiler L2 hit 数据 + HBM 流量逐 batch 对比 [2604.15379],TileRT 的性能声称缺乏最基本的可验证性。TokenSpeed 同样在 preview 状态,但至少公开了 Kimi K2.5 的 Pareto 曲线图 [tokenspeed]

          Attack 4:batch=1 硬编码的战略代价 #

          ModelArgs.max_batch_size = 1FlashSparseMLAassert batch == 1 将 TileRT 限制在纯 TPOT 优化 [tile-ai-tilert]。这意味着:

          • 不支持连续 batching——无法作为通用 serving engine
          • P/D 分离中 prefill 必须委托给外部系统(SGLang),增加系统复杂度
          • 无法利用 batch 间 KV cache 共享(prefix caching 不可能)
          • Fleet 证明了即使在 bs=1-16 区间,dispatch 压缩也有 1.15-1.5× 收益 [2604.15379]——但 TileRT 彻底放弃了 bs>1 的可能性

          TokenSpeed 的 retraction FSM 展示了如何在内存压力下优雅处理长 context agent 请求 [tokenspeed],而 TileRT 的 batch=1 硬编码完全避开了这类系统设计难题。

          Attack 5:update_sampling_config() 的生产脆弱性 #

          变更 temperature/top_p/top_k 时需完全 teardown + re-capture 整个 forward pass 的 CUDA graph [tile-ai-tilert]。在生产 serving 中,不同用户请求常有不同的 sampling 参数——每次切换就是一次完整的 graph re-capture。GPUOS 的 persistent kernel 天然支持动态 workload 且性能不退化 [2604.17861]

          Attack 6:稀疏注意力的独立发明声称 #

          TileRT 代码中的 sparse_index(64 个 index heads, top-2048 KV 位置选择)被 L2 蒸馏标注为"独立于 DeepSeek 原始论文的 TileRT 特有优化" [tile-ai-tilert]。但权重名称 self_attn.indexer.wk 直接出现在 DeepSeek-V3.2 的 model checkpoint 中——这些权重不是 TileRT 训练的,而是模型本身带的。TileRT 的贡献是在 batch=1 decode 下高效实现了这种稀疏注意力(将 160K 位置缩减为 2048,KV 读取量降低 ~78×),而非发明了这种机制。

          生态位 #

          TileRT 在 persistent execution paradigm 中的定位 #

          
          通用性 ←————————————————————————→ 极致性
               GPUOS                 Fleet                TileRT (code)
             (任意 op)         (单模型 AMD)         (单模型×单硬件 NVIDIA)
             3793 行全开源     学术原型未开源          Python 壳 + C++ 黑盒
             15.3× element     1.56× bs=1             600 tok/s bs=1
                                                     Z.ai 生产部署
          

          TileRT 占据了一个独特生态位:唯一在生产中验证 persistent execution 理念的系统。GPUOS 是学术原型(无 multi-GPU)[2604.17861];Fleet 是学术验证(单模型单卡)[2604.15379];TokenSpeed 走了 non-persistent 路线 [tokenspeed]。TileRT 虽然开源程度最低,但"Z.ai 生产部署"这一事实给了它不可替代的验证价值。

          范式演进中的位置 #

          将 TileRT 放入更大的范式演进主线 [2604.15379]

          范式被显式化的隐式约束代表系统
          PagedAttention (2023)KV cache 连续分配假设vLLM
          FlashAttention (2022)HBM 带宽约束FA1/FA2/FA3
          Chiplet-task (2026)L2 物理分区Fleet
          Tile-level fusion (2025-2026)kernel launch 边界TileRT
          FSM type-safe scheduling (2026)KV cache 资源安全TokenSpeed

          TileRT 的贡献是将"kernel 间的执行边界"从隐式约束变为显式优化目标——通过 tile-level fused ops 消除 RMSNorm/GEMM/AllReduce 之间的边界 [tile-ai-tilert]。博客将这个贡献叙述为 "Persistent Engine Kernel" [tilert-speed-scaling-law],代码实现为 "20+ fused ops + CUDA graph"——形式不同,但解决的根本问题一致:消除 kernel boundary overhead。

          博客-代码一致性的生态信号 #

          TileRT 博客-代码裂缝本身是一个有价值的生态信号。它揭示了 persistent execution paradigm 的成熟度阶梯

          1. 概念层(博客叙事):Persistent Engine Kernel, warp specialization, GPU-resident orchestration
          2. 工程层(代码实际):tile-level fused ops + CUDA graph capture + 闭源 C++ scheduler
          3. 生产层(Z.ai 部署):不可审计但已验证
          4. 从概念到生产的差距暗示:即使 TileRT 团队,也需要在"理想的 persistent kernel 架构"和"可以发货的 CUDA graph + fused ops 组合"之间做工程妥协。这对后续研究者是重要的参考——persistent kernel 的完整愿景(GPUOS/Fleet 描绘的那种)在生产中可能仍需要大量工程折衷。

            未探索方向 #

            方向 1:Persistent Kernel + Dynamic Operator Injection 的生产化 #

            GPUOS 的 NVRTC JIT + dual-slot aliasing 实现零停机热更新 [2604.17861],TileRT 的 update_sampling_config() 需完全 re-capture CUDA graph [tile-ai-tilert]。如果将 GPUOS 的 dynamic injection 机制引入 TileRT 的 tile scheduler——在 persistent kernel 内部支持运行时 operator 更新——可以消除 sampling config 变更时的 graph teardown 开销,同时保留 tile-level fusion 的延迟优势。这是 GPUOS 的通用性与 TileRT 的极致性的直接组合。

            方向 2:Chiplet-aware Tile Scheduling on Blackwell #

            Fleet 证明了 chiplet-aware scheduling 在 AMD MI350 上的价值 [2604.15379]。NVIDIA Blackwell 是双 die 架构(逻辑上相干但物理 NUMA),TileRT 在 B200 上运行但完全不可见是否有 die-aware 调度。将 Fleet 的 Chiplet-task 概念(把"一个 die + 其 L2 分区"作为调度单元)引入 TileRT 的 tile scheduler,可能在 batch>1 扩展时释放额外性能——但首先需要 TileRT 突破 batch=1 硬编码。

            方向 3:可审计的 Tile-level Fusion DSL #

            TileRT 当前 20+ fused ops 是手写的 Python 壳 + 闭源 C++ 实现。TokenSpeed 的内核注册表展示了 5-band 优先级插件化设计 [tokenspeed]。如果将 TileRT 的 fused op 规格(如 RMSNormProjxWqkvia = RMSNorm + QKV + FP8 解量化)表达为可编程的 tile-level DSL(类似 TileLang/Triton 但支持跨算子融合描述),社区可以审计、复现、扩展这些融合模式,而非依赖闭源 C++ 黑盒。TileRT 的参考内核已混合使用 TileLang 和 Triton [tile-ai-tilert]——这暗示 TileLang 生态可能是实现可审计 tile fusion DSL 的自然载体。

            方向 4:Fleet Expert-Chiplet-task + TileRT MoE Fusion #

            Fleet 的 Chiplet-task 对 MoE 不直接适用(M-major 协作假设被 expert routing 打破),但 MoE 的 expert 稀疏激活与 chiplet 私有 L2 天然亲和 [2604.15379]。TileRT 已实现 MoE routing 的 tile-level fusion(ExpertSelectUpGateSiLU 融合选择+投影+激活为单 kernel)[tile-ai-tilert]。组合两者:在 chiplet-aware 调度框架中,将 expert 按亲和性绑定到特定 XCD/die 的 L2,同时在每个 XCD 内部使用 TileRT 式 tile-level MoE fusion——这是 persistent execution paradigm 在 MoE 场景的自然延伸,但目前无论 Fleet 还是 TileRT 都没有探索。

            方向 5:Cross-engine P/D with Type-safe Handoff #

            TileRT 的 inject_cache() API 接受外部 prefill 系统的 KV cache [tile-ai-tilert],TokenSpeed 的 FSM 用 RAII 保证 KV cache 资源安全 [tokenspeed]。一个未探索的组合是:prefill engine(SGLang/TokenSpeed,支持连续 batching + 高吞吐)生产 KV cache,通过 type-safe 序列化协议传递给 decode engine(TileRT,batch=1 极致延迟),TokenSpeed 的 FSM 状态机保证 KV 页面在跨引擎传递时不会双重释放或遗漏。当前 TileRT 的 inject_cache() 接受裸 tensor tuple,无任何资源安全保证——这是 P/D 分离部署中的真实风险点。