Closed
[Requirement|需求建议]: attention_updata支持单tensor输入和localout非连续 #7113
yyt_hwAdd on  11 days agoClosed at  10 days ago
yyt_hw
yyt_hwCollaborators
11 days ago Create

Backgroud(背景信息)

KimiK3推理模型开启DCP提升性能,发现AttentionUpdate算子的tensorList输入导致前插大量slice操作,需要支持单个tensor输入以消除Slice操作。

Benefit / Necessity (价值/作用)

支撑模型达成极致性能目标。

Design(设计方案)

AttentionUpdate算子支持单个tensor输入
原先tensorlist输入,需要变成首轴concat在一起的tensor输入。
输入localout和lse是尾轴拼接在一起的,localout非连续,locallse框架有额外处理,传给算子是连续的

likedislike
yyt_hwyyt_hwCollaborators
11 days ago Added label: requirement
周云飞
周云飞Collaborators
11 days ago Comments:

/assign @yyt_hw

likedislike
CANN-robotCANN-robotCollaborators
11 days ago Assign yyt_hw as responsible person
周云飞
周云飞Collaborators
11 days ago Comments:

问题说明

这是输入形式与内存布局的扩展需求。现有接口按 aclTensorList 检查输入,所示内核也使用列表描述符,因此支持首轴拼接的单个 Tensor 不只是修改接口参数。按您描述,尾轴拼接后 localout 非连续,而 locallse 经框架处理后连续,两者需要分别处理。

处理建议

可以考虑增加单 Tensor 输入路径,并保留原有列表接口以兼容已有调用;同步调整形状校验、分块参数和内核寻址,使 localout 按实际步长读取,避免用额外连续化拷贝抵消减少 Slice 的收益。重点验证结果一致性及端到端性能。

请补充一组拼接后 localout、locallse 的形状和步长,用于明确首轴分组方式及需支持的非连续布局。

likedislike
CANN-robotCANN-robotCollaborators
10 days ago Close issue
CANN-robotCANN-robotCollaborators
10 days ago Added label: resolved
周云飞
周云飞Collaborators
5 days ago Comments:

PR #14910 已合入,AttentionUpdate 新增了以下支持:

  • 支持通过长度为 1 的 TensorList 输入首轴拼接的 lse 和 localOut,以减少 DCP 场景中的前置 Slice 操作。
  • 支持非连续 localOut:行步长不连续时直接读取,其他非连续布局通过连续化处理,并兼容已有分片输入。
  • 补充了形状、步长等输入校验,并更新了接口文档。

关联 PR:PR #14910

likedislike