关键词:TileRT、超低延迟、LLM推理、tile 级运行时 、多GPU、编译器驱动
TileRT: Tile-Based Runtime for
Ultra-Low-Latency LLM Inference
- https://github.com/tile-ai/TileRT
- https://github.com/tile-ai/TileRT/releases/tag/v0.1.0-alpha.1
- 特别说明:TileRT 是一个不断发展的项目。我们正在进行的计划包括追求更激进的优化、支持各种 batch 大小、更多模型系列和更多硬件,以及为低延迟 AI 推理建立新的基础。
在高频交易、实时 AI 交互、智能编码助手、智能体等场景中,LLM 推理的延迟表现直接决定了产品体验的上限。
传统推理系统大多聚焦于批量处理的吞吐量优化,却难以满足单请求毫秒级响应的严苛需求。而 TileRT 的出现,通过创新的 tile 级运行时设计,为超低延迟 LLM 推理提供了全新解决方案。

评估设置:批处理大小:1,输入序列长度/输出序列长度:1K/1K,SGLang-0.5.5,vLLM-0.11.0,CUDA-12.9
使用 DeepSeek-V3.2-Exp 模型(未采用量化或蒸馏等有损优化),在 8×NVIDIA B200 GPU 上以 1 的批次大小评估了 TileRT 的初步性能,TileRT 的性能显著优于现有的推理系统。

图:使用DeepSeek-V3.2-Exp模型通过SGLang(左)、vLLM(中)和TileRT(右)进行序列生成
TileRT 采用编译器驱动的方法,将大语言模型算子分解为细粒度的 tile 级任务,并借助 tile 级运行时,以高度重叠的方式在多个设备间重新调度计算、输入/输出和通信。这使得 TileRT 能够最大限度地减少空闲时间,提高硬件利用率。
这些编译技术将被整合到 TileLang 和 TileScale 中。
注:TileScale 是 TileLang 的分布式扩展。它将 TileLang 的 tile 级编程扩展到多 GPU、多节点乃至分布式芯片架构范围,并引入了一些新的功能设计,如 tile 级通信和分层编程。见:https://github.com/tile-ai/tilescale
一、TileRT 是什么?—— 重新定义 LLM 推理的优化方向
TileRT(Tile-Based Runtime)是一款专为超低延迟 LLM 推理设计的实验性推理系统,与 SGLang、vLLM 等吞吐量优先的批量处理系统形成鲜明对比。它的核心目标 是实现单请求的极致低延迟,这对于需要实时反馈的场景至关重要。
目前 TileRT 已实现 DeepSeek-V3.2-Exp 模型(约 671B 参数,支持 MoE 稀疏性),运行在 8×NVIDIA B200 GPU 上,在不使用量化、蒸馏等有损优化的前提下,实现了显著更低的每输出 token 时间(TPOT)。
其核心创新在于 tile 级运行时引擎(Tile-Level Runtime),作为 TileRT 的核心执行引擎,它通过编译器驱动 的方式实现三大突破:
- 将 LLM 核心算子(MLA Attention、FFN、MoE)分解为细粒度的 tile 级独立任务(如 Q 投影、专家计算、注意力计算等)
- 跨 8 个 NVIDIA B200 GPU 调度,实现计算、I/O(内存传输)、通信(GPU 间数据交换)操作的重叠执行
- 通过任务依赖跟踪与异步调度,最小化设备空闲时间,最大化硬件利用率,从根源降低推理延迟
二、核心设计:为什么 TileRT 能做到超低延迟?
2.1 tile 级执行:打破层级执行的性能枷锁
传统 LLM 推理系统采用层级算子执行模式,在层与层之间存在不可避免的同步等待,导致大量硬件空闲时间。而 TileRT 的 tile 级执行机制完全重构了执行逻辑:
| 传统层级执行 | TileRT tile 级执行 |
|---|---|
| 层级算子执行(整层完成后再推进) | 细粒度 tile 级任务执行(拆分至算子子步骤) |
| 串行流程:计算 → I/O → 通信 | 重叠流程:计算 ∥ I/O ∥ 通信(并发执行) |
| 设备同步屏障(层间强制等待) | 异步 tile 调度(满足依赖即执行) |
| 操作间大量空闲(硬件利用率低) | 硬件利用率最大化(减少空闲时间) |
| 任务粒度粗(仅按层拆分) | 任务粒度细(覆盖 MLA/FFN/MoE 子任务) |
| 无专门任务队列管理 | 三类队列调度(计算/IO/通信队列) |
每个 LLM 算子都会被分解为可独立调度的小 tile ,这些 tile 能在多设备间异步执行,无需等待 整个层完成即可推进, 从根本上减少了 pipeline 阻塞 。
具体而言:
- MLA Attention 算子会拆分为 Q 投影、KV 压缩、注意力计算、输出投影等 tile 任务;
- FFN 算子拆解为门投影、上投影、下投影等子任务;
- MoE 算子则涵盖专家路由、专家计算、结果聚合等细粒度操作,所有 tile 任务通过调度器统一管理,基于依赖关系异步分配至 GPU 执行单元。
2.2 混合架构与分层设计:兼顾灵活性与性能
TileRT 采用 Python 和 C++ 混合架构,实现了“高层灵活配置+底层性能优化”的完美平衡:
- Python 层:提供用户 API(如
ShowHandsGenerator)、模型定义和权重管理,支持快速开发与实验。 - C++ 层:通过核心库
libtilert.so实现性能关键的 tile 级操作、任务调度与多设备协调,保障微秒级执行效率。
此外,系统构建了职责清晰的六层架构(从下到上),确保各模块协同高效:
- 硬件层:8×NVIDIA B200 GPU(核心硬件支撑)。
- C++ Runtime 层:
libtilert.so核心库,实现 tile 调度、重叠执行、内存管理。 - Runtime API 层:通过
torch.ops.tilert命名空间暴露核心操作。 - Python 层:封装 API、实现生成逻辑、管理模型状态。
- 核心系统层:负责初始化、日志记录和 C++ 库集成。
- 用户接口层:
generate.py命令行工具和ShowHandsGeneratorPython API。
2.3 双执行模式:正确性与优化兼得
TileRT 的 TileRTModule 基类支持两种执行模式,解决了优化与正确性验证的矛盾,为开发者提供可靠的调试与验证机制:
- 黄金模式(golden):基于标准 PyTorch 算子的参考实现,用于正确性验证(确保优化不会引入功能问题)。
- TileRT 模式(tilert):基于自定义
torch.ops.tilert.*操作的优化实现,调用 tile 级运行时引擎,用于生产环境低延迟推理。
这种设计允许开发者在不破坏正确性的前提下测试新优化,通过模式切换快速定位性能与功能问题,大幅降低优化迭代的调试成本。
2.4 重叠执行模型:核心延迟优化核心
TileRT 实现超低延迟的核心在于其创新的重叠执行模型,通过调度器精准管理任务依赖,让计算、I/O(内存传输)、通信(GPU 间数据交换)三类任务并发执行,最大化 GPU 利用率:
- 依赖管理:调度器实时跟踪各 tile 任务的依赖关系,当任务所需的输入数据就绪、硬件资源空闲时,立即分配至执行单元。
- 无空闲时间:避免传统模式中“计算完成后等待 I/O,I/O 完成后等待通信”的串行瓶颈,三类操作无缝衔接。
- 效果显著:该模型大幅减少 GPU 空闲时间,直接降低单输出令牌时间(TPOT),这也是 TileRT 性能优于传统系统的关键原因。
2.5 核心组件各司其职
TileRT 的超低延迟 LLM 推理能力,由四大核心组件与自定义 PyTorch 操作协同支撑。
- ShowHandsGenerator:用户面向的核心 API,封装模型初始化、分词解码、生成流程管理,屏蔽底层 tile 调度细节。
- ShowHandsDSALayer:推理核心层,实现 DeepSeek V3.2 前向传播逻辑,协调 8 GPU 间的 tile 操作与数据通信,是连接高层 API 与底层 runtime 的关键。
- WeightLoader:权重加载器,支持从 safetensors 文件加载权重,提供行分割、列分割和不分割三种策略,实现权重在 8 GPU 间的均匀分片。
- 自定义 PyTorch 操作:通过
torch.ops.tilert暴露四大核心功能,是 Tile-Level Runtime 的对外接口,具体如下:
| API 名称 | 核心用途 | 对应生命周期阶段 |
|---|---|---|
dsa_show_hands_prepare_money |
初始化 GPU 资源、分配参数分片、预分配中间缓冲、初始化 KV 缓存(支持 enable_fused_op 融合算子优化) |
准备阶段 |
dsa_show_hands |
执行令牌级前向传播,分解 tile 任务并调度跨设备执行,更新 KV 缓存 | 执行阶段 |
dsa_show_hands_reset |
重置序列状态(清空 KV 缓存、重置位置计数器等),为新序列生成做准备 | 重置阶段 |
dsa_show_hands_go_home |
释放 GPU 资源(参数/缓冲/KV 缓存),完成清理工作 | 清理阶段 |
torch.ops.tilert 系列操作覆盖准备、执行、重置、清理全生命周期,层层衔接屏蔽底层复杂度,高效赋能单请求毫秒级推理。
2.6 文本生成流程:token 级实时流输出
TileRT 采用自回归解码,每个 token 生成过程都经过精细优化,严格遵循“准备-执行-重置-清理”的生命周期,实现毫秒级 token 输出延迟:
- 准备阶段:初始化
ShowHandsGenerator时,调用dsa_show_hands_prepare_money完成 GPU 资源初始化、参数分片分配、中间缓冲与 KV 缓存预分配(一次性分配所有内存,执行阶段无额外分配开销)。 - prompt 处理:应用聊天模板,完成分词并初始化 token 张量和掩码。
- 自回归循环:逐 token 调用
ShowHandsDSALayer.forward(),内部通过dsa_show_hands分解 tile 任务并调度执行,通过IntermediateMapper提取下一个 token 预测。 - 实时流输出:生成 token 后立即解码并打印,无需等待完整序列生成,提升交互式体验。
- 状态重置:单轮生成完成后,调用
dsa_show_hands_reset清理 KV 缓存与位置计数器,为下一轮推理做准备(无需重新执行准备阶段)。 - 清理阶段:销毁生成器时,调用
dsa_show_hands_go_home释放所有 GPU 资源,确保资源回收。
此外,TileRT 还支持性能分析功能,通过 profile_logs 张量(最大支持 65536 条指令记录)采集任务执行时间、调度决策、重叠效果、通信开销等数据,用于后执行瓶颈分析与优化。
三、快速上手:从环境搭建到首次推理
3.1 环境要求
虽然是实验性项目,但是 TileRT 也给出了明确的安装配置要求,确保发挥最佳性能:
- 硬件:8×NVIDIA B200 GPU(当前仅支持该配置)。
- 操作系统:Linux x86_64 推荐 Ubuntu 20.04 或更新版本。
- 软件依赖:CUDA 12.9、Python 3.11-3.12、PyTorch for CUDA 12.8 or 12.9(确保驱动、运行时与 B200 匹配)。
- 内存:需满足 DeepSeek V3.2 模型的 VRAM 需求(支撑 671B 参数分片存储)。
3.2 安装方式
TileRT 是一个实验性项目。当前的预览版本支持 8-GPU B200 配置。为获得最可靠的体验,建议在提供的 Docker 镜像中安装该软件包。
直接拉取镜像,并使用下面提供的命令启动:
docker pull tileai/tilert:v0.1.0
IMAGE_NAME="tileai/tilert:v0.1.0"
WORKSPACE_PATH="xxx" # Path to the workspace you want to mount
docker run --gpus all -it
-v $WORKSPACE_PATH:/workspace/
$IMAGE_NAME
容器启动完成后,安装 TileRT 包:
pip install tilert
3.3 DeepSeek-V3.2-Exp 推理示例
这部分来自代码仓库 README。
下载模型权重
下载与运行
在 HuggingFace 上可以直接下载已为 TileRT 分片策略预处理的 DeepSeek-V3.2-Exp 模型权重文件。请选择以下任一方式进行下载:
# 方式1:使用 huggingface-cli(推荐)
hf download Tile-AI/DeepSeek-V3.2-Exp-TileRT --local-dir ./tilert_weights
# 方式2:使用 Git + Git LFS
git lfs install
git clone https://huggingface.co/Tile-AI/DeepSeek-V3.2-Exp-TileRT
下载完成后,设置环境变量指向权重文件目录:
export MODEL_WEIGHTS_DIR=/path/to/tilert_weights
运行生成示例
准备好权重文件后,可以通过 Docker 容器运行 TileRT:
MODEL_WEIGHTS_DIR="/path/to/tilert_weights"
docker run --gpus all -it
-v $WORKSPACE_PATH:/workspace/
-v $MODEL_WEIGHTS_DIR:$MODEL_WEIGHTS_MOUNT
tilert:v0.1.0
进入容器后,可以运行以下 Python 脚本进行生成测试:
import torch # TileRT 需要先加载 PyTorch 运行时
from tilert.generate import ShowHandsGenerator
# 使用自定义设置初始化生成器
generator = ShowHandsGenerator(
max_new_tokens=4000,
temperature=0.0,
model_weights_dir="xxx", # 在此处指定你的模型权重目录
)
# 加载预训练权重
generator.from_pretrained()
# 用于测试模型生成能力的示例提示词
prompt = """Tell me three jokes:
1. A dad joke,
2. A programmer joke,
3. A joke that only makes sense if you've ever tried to train a large language model.
Keep each joke under 15 words.
"""
print("Prompt:", prompt)
print("Completion:")
completion = generator.generate(prompt)
针对上述提示词,TileRT 可能会生成类似以下的回复:
1. I'm afraid for the calendar. Its days are numbered.
2. There are 10 types of people: those who understand binary and those who don't.
3. My model just generated a coherent sentence. I think I'll go lie down.
也可以通过命令行方式进行便捷的交互式生成:
python tilert/generate.py
--model-weights-dir /path/to/model
--max-new-tokens 4000
--interactive # 交互式模式,支持多轮对话(自动处理状态重置)
四、适用场景与优势总结
4.1 最佳应用场景
- 高频交易:需要毫秒级响应的实时决策支持。
- 交互式 AI 助手:要求毫秒级反馈以提升用户体验。
- 实时决策系统:如自动驾驶、工业控制,低延迟是系统可靠性的关键。
- AI 编码工具:代码补全需要即时反馈以提高开发效率。
4.2 核心优势
- 极致低延迟:通过 Tile 级异步执行以及计算、I/O、通信的重叠,大幅减少硬件空闲时间,降低 TPOT。
- 无损优化:不依赖量化、蒸馏等有损技术,完全保持模型的原始精度。
- 原生多卡支持:从设计之初即支持 8 GPU,通过精细化的参数分片与通信优化,实现计算能力的线性扩展。
- 易于验证:提供“黄金模式”与“TileRT模式”双执行模式,确保优化不牺牲正确性,降低调试成本。
- 实时流输出:支持 Token 级解码与即时打印,完美适配交互式场景需求。
4.3 注意事项
- 硬件依赖严格:目前仅支持 8×NVIDIA B200 GPU 配置,兼容性有待扩展。
- 聚焦单请求优化:设计目标为单请求低延迟,在批量处理场景下的吞吐量可能不及 vLLM 等吞吐量优先的系统。
- 实验性系统:当前主要支持 DeepSeek-V3.2-Exp 模型,模型覆盖范围有限。
- API 稳定性:作为 Alpha 版本,部分 API 可能在后续版本中发生变更。
五、未来展望与社区反馈
TileRT 作为一个专注于超低延迟推理的实验性系统,为 LLM 的实时应用提供了全新的技术路径。目前已在 671B 参数的 DeepSeek V3.2 模型上验证了其技术优势,后续有望支持更多模型架构和硬件配置。
针对社区关心的硬件兼容性问题,官方在仓库 issue 中回应,支持 H100、H200 等更多 GPU 平台已在路线图中,但当前团队的核心优先级仍是持续将低延迟 Token 生成能力推向新高度。由于 TileRT 目前由一个小团队维护,开发计划需要审慎安排。
对于需要极致响应速度的 LLM 应用开发者而言,TileRT 是值得关注的技术方案。其 Tile 级执行、跨设备操作重叠、精细化参数管理 等核心设计,不仅实现了性能突破,更为解决大模型推理延迟问题提供了宝贵的参考思路。
如果你正在构建实时性要求高的 LLM 应用,不妨尝试通过 TileRT 突破延迟瓶颈,体验毫秒级推理带来的极致体验!
关注“鲸栖”小程序,掌握最新AI资讯
本文来自网络搜集,不代表鲸林向海立场,如有侵权,联系删除。转载请注明出处:https://www.itsolotime.com/archives/13913
