已关闭
[Bug-Report|缺陷反馈]: AllToAllV 在 AICPU cache 场景下仅 self copy、remote count 全为 0 时执行失败 #843
洞庭湖畔_创建于  29 天前关闭于  19 天前
洞庭湖畔_
洞庭湖畔_
29 天前 创建

Thanks for sending an issue! Please fill in the following template to help quickly solve your problem.

Describe the current behavior / 问题描述 (Mandatory / 必填)

在 2 rank AllToAllV 场景下,当每个 rank 仅向自身发送数据、所有 remote rank 的 send/recv count 均为 0 时,CANN/HCCL 9.1.0 默认 AICPU cache 路径执行失败。

测试参数如下:

rank 0:
sendCounts = [1, 0]
recvCounts = [1, 0]

rank 1:
sendCounts = [0, 1]
recvCounts = [0, 1]

该通信参数合法:

每个 rank 只进行 self copy;
remote rank 通信量为 0;
各 rank send/recv 数量匹配;
count 与实际 tensor 大小一致。

同一用例在以下场景可以正常执行:

CANN/HCCL 8.5.2 PASS
CANN/HCCL 9.1.0 + HOST 展开 PASS
CANN/HCCL 9.1.0 + AIV 展开 PASS
CANN/HCCL 9.1.0 + AICPU_CacheDisable PASS

但 CANN/HCCL 9.1.0 默认 AICPU cache 路径失败。

原生 HcclAlltoAllV 与 torch.distributed.all_to_all_single 均可以复现,因此初步判断问题位于 HCCL/HCOMM AICPU cache 路径,而非 PTA 参数封装。

Environment / 环境信息 (Mandatory / 必填)

硬件型号:Ascend 910_9382
卡数:2
CANN/HCCL:9.1.0
HCOMM:9.1.0

Steps to reproduce the issue / 重现步骤 (Mandatory / 必填)

创建 2 rank HCCL 通信域。
rank 0 使用:
sendCounts = [1, 0]
recvCounts = [1, 0]

rank 1 使用:

sendCounts = [0, 1]
recvCounts = [0, 1]
调用:
HcclAlltoAllV(...)
等待 stream 执行完成:
aclrtSynchronizeStream(stream);
默认 AICPU cache 路径可以稳定复现失败。

临时设置:export HCCL_OP_EXPANSION_MODE=AICPU_CacheDisable 后,相同用例可以正常执行。

Describe the expected behavior / 预期结果 (Mandatory / 必填)

该 AllToAllV 参数属于合法的 zero-count 场景。

期望:

rank 0:完成自身 1 个元素的 LocalCopy
rank 1:完成自身 1 个元素的 LocalCopy
remote rank 不产生实际数据传输
接口执行成功

AICPU cache 是否开启不应影响该参数的功能正确性。

0b0e697363c74190aafdf5f43f6343e2.log484eebae697e4de793d9e7979f5aee42.logPasted image 20260903210208.png

失败时两个 rank 均出现:

[AlltoallvMetadata][Check] empty hcclOffsetDstRanksIdxMap for rankSize[2]
[PostProcessForCacheMiss]call trace: hcclRet -> 4

Special notes for this issue/备注 (Optional / 选填)

临时规避方案:
export HCCL_OP_EXPANSION_MODE=AICPU_CacheDisable
关闭 AICPU unfold cache 后,相同用例可以正常执行。

likedislike
Leewis成员
29 天前 评论:

/assign @muzhiyu6

likedislike
CANN-robotCANN-robot成员
29 天前 将 muzhiyu6 设为负责人
LLeewis成员
25 天前 关联了看板:HCOMM
LLeewis成员
25 天前 issue类型由 任务 改变为 缺陷
黄建波
黄建波成员
19 天前 评论:

@洞庭湖畔_ ,您好 该问题修复PR已上库。

likedislike
洞庭湖畔_洞庭湖畔_
19 天前 issue状态由 待办的 改变为 已完成
洞庭湖畔_洞庭湖畔_
19 天前 关闭了 issue
CANN-robotCANN-robot成员
19 天前 添加了label:resolved
LLeewis成员
16 天前 移除了看板:HCOMM