资讯动态

TokenSpeed-Kernel 内核系统完全解析:集中式注册表、选择模型与插件机制终极指南

发布时间:2026/10/16 3:04:16 来源:尧图企业网站定制
TokenSpeed-Kernel 内核系统完全解析集中式注册表、选择模型与插件机制终极指南【免费下载链接】tokenspeedTokenSpeed is a speed-of-light LLM inference engine.项目地址: https://gitcode.com/GitHub_Trending/to/tokenspeedTokenSpeed-Kernel 是 TokenSpeed一个光速级大模型推理引擎的 GPU 内核库它用一套集中式注册表 智能选择模型 插件机制把注意力、GEMM、MoE 等数百个内核实现统一管理起来同一个算子可以注册多种后端Triton、FlashInfer、厂商库等运行时自动在你的硬件上挑出最合适、最快的那一个。本文将用零代码门槛的方式带你完整看懂这套内核系统的设计原理。 为什么需要一套内核选择系统大模型推理的性能瓶颈往往不在框架而在一个个具体的 GPU 内核注意力计算、矩阵乘法、MoE 专家混合……同一类操作在不同芯片、不同精度下的最优实现完全不同。TokenSpeed-Kernel 的设计目标见 README.md很明确支持多芯片NVIDIAAmpere/Hopper/Blackwell、AMDCDNA4/CDNA5、昇腾 NPU支持多种后端自研 Triton/Gluon 内核、厂商库封装FlashInfer、FlashMLA、AITER、PyTorch 参考实现一套统一的注册与选择逻辑新增一个后端只需要在正确的算子目录里加一个文件。下面这张图展示了 AMD MI355X 上注意力 Prefill 内核在不同后端之间的吞吐对比——正是选择系统要在运行时帮你做出这种判断 三层架构Public API → 选择器 → 注册表整个系统的骨架非常清晰源自 README.md 中的设计图公共 APImha_prefill、mm、moe_topk ... │ ▼ select_kernelfamily, mode, format_signature, traits │ 查询 ▼ KernelRegistry ← register_kernel(...) 把内核注册进来 │ ├─ attentiontriton / flash_mla / gluon ... ├─ gemm triton / flashinfer ... └─ moe triton / deepep ...用一句话概括你调用的是算子而不是内核具体跑哪个内核由选择器根据你的硬件和输入特征自动决定。 集中式注册表每个内核的身份证核心实现在 registry.py由一个全局单例KernelRegistry维护四张索引表按算子familymode、按名称、按实现函数、按选择结果缓存。每个内核注册时都会生成一张身份证——KernelSpec它声明了字段含义类比family/mode算子族与模式如attention.decode岗位名称solution实现方案如triton、flashinfer技术栈capability硬件要求厂商、最低架构、特性任职资格format_signatures支持的张量格式/精度组合能处理的数据类型traits算子级约束如 head_dim、对齐要求特殊技能priority优先级0~19资历等级注册本身只需一个装饰器register_kernel(...)见 registry.py所有内置内核则通过 load_builtin_kernels() 在启动时一次性导入覆盖 attention、gemm、moe、activation、quantization、sampling 等全部算子族。优先级段位表内建的公平规则优先级不是随意填的数字而是分成五档段位Priority 定义让插件作者不用审计所有内置内核就能预判如何胜出段位分值定位REFERENCE0数值参考实现只作 ground truth不会被自动选中PORTABLE4~7通用 Triton / PyTorch 兜底保证一定有得跑PERFORMANT8~11默认主力覆盖广泛架构的优化内核SPECIALIZED12~15针对特定架构形状的极致优化如 Blackwell 的 CuTe DSL FP8 注意力PLUGIN16~19专留给第三方插件内置内核禁止占用保证插件永远有胜出空间这种段位隔离设计非常聪明通用实现稳坐中档极致优化内核靠窄门控取胜插件则天然拥有最高档位。 选择模型select_kernel 如何挑出冠军选择入口是 select_kernel()selection.py完整流水线分五步查缓存相同 (family, mode, 格式签名, 架构, traits) 组合第二次调用直接返回只是一次字典查找几乎零开销尊重覆盖环境变量TOKENSPEED_KERNEL_OVERRIDE_*、上下文管理器kernel_override()或调用参数override可强制指定内核调试利器硬过滤按厂商/架构特性CapabilityRequirement定义在 platform.py、功能特性、张量格式签名、可选的 solution 层层筛选不满足硬件要求或精度格式的内核直接出局软排名幸存内核按(oracle, priority)字典序打分——每个算子族可注册一个领域先知SelectionOracle贡献专家分数与内核段位分共同决定名次返回可调用对象SelectedKernel既可直接调用又暴露获胜内核名称方便日志与追踪。platform.py会在启动时探测硬件NVIDIA 架构特性如tensor_core:f8、memory:tmaAMD 的 gfx950/gfx1250NVLink 拓扑、NUMA 亲和等全部封装进单例PlatformInfo供过滤使用。想验证为什么选了这个内核系统提供了explain_selection()输出候选排名与被淘汰原因设置TOKENSPEED_KERNEL_VERBOSE1还能在日志里看到每次选择的打分细节。策略上还支持SelectionPolicy启发式 HEURISTIC 为默认另预留 AUTOTUNE 实测竞速以及warmup_selection()在模型初始化阶段预热选择缓存避免首次请求卡顿。 插件机制不改一行源码加入你的内核这是系统最有生态价值的设计第三方包可以不修改 tokenspeed-kernel 本身就把自定义内核注册进全局注册表并参与选择详见 plugins/README.md。流程只有三步你的包写一个register()函数内部用同一个register_kernel装饰器注册内核并取Priority.PLUGIN16~19段位以覆盖内置实现在pyproject.toml中把它挂到tokenspeed_kernel.plugins入口点组宿主应用在启动时调用一次discover_plugins()实现见 plugins/init.py。几个值得注意的工程细节显式加载导入库不会自动发现插件防止隐式行为故障隔离某个插件注册失败只发警告不影响其他插件和主流程冲突告警同名优先级会触发告警提示设置显式优先级保证确定性一键禁用TOKENSPEED_KERNEL_DISABLE_PLUGINS插件名环境变量即可跳过无需卸载可观测python -m tokenspeed_kernel.plugins list直接列出已发现插件及其注册的内核。 端到端收益机制如何转化为性能这套注册-选择-插件体系最终服务的是推理吞吐。下图展示了 Kimi-K2.5 在不同并行配置下 TokenSpeed 与 TensorRT-LLM 的吞吐对比tokenspeed-k2.5 性能图——内核层每一次选对后端的决策都会累积成最终的大盘数字。⚠️ 提示上文 MLA 示意图与性能图为不同文件均只引用一次。✅ 总结三点设计精髓注册表集中化所有内核用统一的KernelSpec声明身份、硬件要求与优先级注册即索引查询 O(1)选择两层化硬过滤硬件/格式/形状保证正确段位Oracle 排名保证最优缓存覆盖机制兼顾性能与可控性生态开放化PLUGIN段位与 entry-point 插件协议为第三方留出确定性胜出通道多芯片扩展无需修改核心代码。如果你想动手体验克隆仓库后阅读这两个入口即可快速上手registry.py注册侧与 selection.py选择侧它们加起来不过千余行却撑起了整个内核调度体系。【免费下载链接】tokenspeedTokenSpeed is a speed-of-light LLM inference engine.项目地址: https://gitcode.com/GitHub_Trending/to/tokenspeed创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑