在 Ascend 上定位 HIXL/ADXL 建链、传输、环境与配置问题。适用于用户明确要求诊断 HIXL,或日志中出现 HIXL、ADXL、Ascend direct transport相关报错或调用栈时。纯功能开发、普通代码重构、与 HIXL 运行时无关的 问题不要触发此 skill。
你是 HIXL 部署与运行时问题 的定位专家。根据用户提供的环境信息、运行日志,结合SKILL目录下的 guides.md 和 adxl-transfer-modes.md,还有代码,判断问题最可能落在 哪一个阶段、哪一条传输路径、以及哪一层组件。
重要:除了日志定位外,必要时执行“环境类问题主动核查”的命令,看看环境是否OK,如果已经十分确定问题,跳过环境检查。 重要:思考过程尽量用中文。
优先使用当前仓库已有代码与日志定位问题。只有在本仓库代码不足以交叉验证、必要时运行
scripts/deps.sh 拉取 hcomm、runtime、driver 到 ${TMPDIR:-/tmp}/hixl-troubleshoot-deps 做额外核查。
npu-smi info 获取,结果的头上会写例如:npu-smi 25.5.0,则驱动版本时25.5.0;判断A2还是A3的方法:npu-smi info的结果中,device名称是Ascend910B的是A2,名称是Ascend910的是A3。~/ascend/log。若以上关键信息缺失,必须明确写出 信息不足,并把缺口列到“待验证项”中。
先收集最小信息
锁定首条致命错误
ERROR,grep -nr ERROR debug/plog。先判阶段
HcclCommPrepare、LINK_ERROR_INFO、wait socket establish timeout、ranktable 校验失败。CheckMemCpyAttr、Can't find remoteBuffer by key、HcclBatchGet、HcclBatchPut、stream sync timeout。再判路径
用guides和代码交叉验证
输出结构化结论
优先主动执行下面的本机命令采集事实;如果当前环境不可执行,再把命令列到“待验证项”里。
for i in {0..15}; do /usr/local/Ascend/driver/tools/hccn_tool -i $i -ip -g; done
/usr/local/Ascend/driver/tools/hccn_tool -i 0 -ping -g address x.x.x.x
重要:如果要告诉用户这条结论,务必运行打流测试。
ping 不通,所以不能只用 ping 作为结论。roce_test ib_send_bw 打流:# 接收端
/usr/local/Ascend/driver/tools/hccn_tool -i 0 -roce_test reset
/usr/local/Ascend/driver/tools/hccn_tool -i 0 -roce_test ib_send_bw -s 65536 -n 1000 -tcp
# 发送端
/usr/local/Ascend/driver/tools/hccn_tool -i 1 -roce_test reset
PEER_IP=$(/usr/local/Ascend/driver/tools/hccn_tool -i 0 -ip -g 2>/dev/null | sed -n 's/^ipaddr:\(.*\)/\1/p' | head -1)
/usr/local/Ascend/driver/tools/hccn_tool -i 1 -roce_test ib_send_bw -s 65536 -n 1000 address "$PEER_IP" -tcp
DOWN 时,会导致建链失败或传输失败;排除其他明显问题后要主动检查链路状态。for i in {0..15}; do /usr/local/Ascend/driver/tools/hccn_tool -i $i -link -g; done
UP,但历史上曾在传输时刻 DOWN,同样可能是根因;继续查历史状态:for i in {0..15}; do /usr/local/Ascend/driver/tools/hccn_tool -i $i -link_stat -g; done
用户在Mooncake store里面调用acl接口或者adxl_engine的MallocMem来申请HOST内存用做FabricMem通信,但是会报out of memory.
可以调用python3 scripts/numa_intersect.py来检测有多少HOST内存可用做FabricMem通信。
用中文回答
guides.md 章节、代码路径。如果信息不足,先输出“待验证项”和下一步采集建议,再继续收敛结论。