软件栈
Shape 分桶
也称为 shape bucketing、编译 shape bucket、padding bucket、token bucket
先用大白话
shape 分桶把每个 batch 向上取整到少数几个预编译尺寸之一,编译器就不必为每种请求数重新构建程序。
技术定义
shape 分桶是为固定的一组张量形状编译 kernel 或计算图,并把每个实际 batch 补齐到最近的桶,以少量浪费换取避免重新编译。
工程细节
XLA 等提前编译器针对静态形状特化,推理引擎不可能为每种请求数和序列长度组合编译新程序,因此改用桶。当桶按数百个并发请求调优、而实际只有 4 或 8 个请求在飞行时,元数据按配置的最大值分配,padding token 触发无效的专家计算,调度开销占据主导。TPU 栈现在按活跃请求数对请求元数据分桶,为并发 4 增加专用 attention 桶,降低最小 token 桶,并把 padding token 路由到 0 号专家以免加载额外的专家权重。
为什么重要
InferenceX 的工作点正好落在这些低并发上,因此桶的调优直接改变报告的曲线。GPU 上的对应问题是 CUDA graph 的捕获尺寸,TPU 版本更严格,因为 XLA 按形状编译整个计算图。
如何在 InferenceX 中解读
按活跃请求分桶元数据后,8k1k 并发 64 下 GDN 调度开销从 283 微秒降到 97 微秒,吞吐量从每芯片每秒 2,328 token 提高到 2,516。Qwen3.5 的 InferenceX 调优在并发 4 下 8k1k 提高 13.3%、1k1k 提高 15.5%,后续一轮在并发 4 下 1k1k 再提高 22.9%。