v05_decode_slots
本版本引入什么
本版本加入固定解码槽位。运行中的解码请求会获得稳定的槽位 ID,解码输入可以按最大槽位数构造固定形状。
为什么引入
连续批处理使活跃请求集合持续变化,而 CUDA Graph 和静态解码缓冲区需要稳定形状和可预测的张量地址。
解码槽位连接了这两个方向。
核心原则
槽位是解码批次中的稳定位置。请求进入槽位,经过多个步骤生成词元,并在结束时释放槽位。
引擎可以按 max_decode_slots 构建解码张量,未使用的槽位则通过活跃掩码或占位词元表示。
建议对比的文件
scheduler.py:槽位分配和释放。engine.py:固定宽度解码输入构造。forward_params.py:槽位元数据。layer/gqa.py:按槽位/请求映射索引的解码注意力。
保留的权衡
槽位增加了状态管理,也可能携带未激活的通道。这是让解码步骤更静态所付出的代价。