已关闭
[Bug][Build]:CANN 8.5.1 下 build.sh 因默认包含 ascend950 导致编译失败 #184
changetheway创建于  6月12日关闭于  7月8日
changetheway成员
6月12日 创建

在提交新问题之前,请确保您已经在社区中搜索过相关问题,并使用了社区中提供的资源/工具后,仍未找到满意的解决方式。

⚠️ 安全信息提醒:请仔细检查提供的文本内容,确保其不包含敏感数据信息,包括但不限于:

  • API 令牌或密钥
  • 密码或身份验证凭证
  • 私有网址或接口地址
  • 个人或机密数据
  • ...

在分享配置信息或代码示例时,请将敏感信息脱敏处理,或使用 <TOKEN> 等占位符替代原有内容。

环境信息

- CANN软件版本:8.5.1

🐛 问题描述

【问题描述】

在 CANN 8.5.1 环境下执行 bash build.sh 编译 MindIE-SD,构建过程中因 ascend950 对应的 aic-ascend950-ops-info.json 文件缺失,导致 gmake 失败退出。

完整错误链:

cp: cannot stat '.../autogen/aic-ascend950-ops-info.json': No such file or directory
gmake[2]: *** [CMakeFiles/generate_ops_info_ascend950.dir/build.make:75: autogen/aic-ascend950-ops-info.json] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:1127: CMakeFiles/generate_ops_info_ascend950.dir/all] Error 2
gmake: *** [Makefile:156: all] Error 2
ERROR: Build failed: Script execution failed: build_ops.sh

【根因分析】

build/build_ops.sh 第 55 行中,默认的 ASCEND_COMPUTE_UNIT 包含了 ascend950:

local ascend_compute_unit=${ASCEND_COMPUTE_UNIT:-'ascend910;ascend910b;ascend910_93;ascend950'}

但 CANN 8.5.1 不包含 ascend950 芯片的任何支持文件(经确认 /usr/local/Ascend/cann-8.5.1 下无任何 ascend950 相关目录或文件),导致:

cmake/msopgen 阶段未生成 aic-ascend950-ops-info.ini
后续 parse_ini_to_json.py 缺少输入文件,无法生成 aic-ascend950-ops-info.json
cp 命令找不到 json 文件,构建失败
代码仓已有 CANN 版本检查逻辑跳过 quant_flash_attn 等需要 CANN ≥ 9.0 的算子,但未对 ascend950 计算单元做同样的版本兼容检查。

欢迎加入社区,感谢您对社区的贡献 🎉!

likedislike
Cchangetheway成员
6月12日 添加了label:bug
Cchangetheway成员
6月12日 关联了pull request:[Feature][Build]Conditionally set ascend_compute_unit by CANN version
Cchangetheway成员
6月15日 关联了pull request:[Feature][Build]Conditionally set ascend_compute_unit by CANN version
lanwangli成员
6月16日 评论:

Bug 问题已收到。本 Issue 已标记为 bug。

根因分析:

  1. 该问题与构建配置相关,可能是 CANN 版本与计算单元不匹配导致。
  2. 默认构建脚本可能未充分适配当前环境,缺少版本兼容性检查。

排查方向:

  1. 检查当前 CANN 版本与 ASCEND_COMPUTE_UNIT 的兼容性。
  2. 验证 build 脚本中是否存在硬编码的芯片型号。
  3. 查看 cmake 阶段的日志,确认 ops-info 生成步骤。

优化建议:

  1. 在 build 脚本中增加 CANN 版本自动检测逻辑。
  2. 对不支持的计算单元提供明确的跳过机制,而非直接报错。
  3. 补充不同 CANN 版本的构建兼容性矩阵。

请补充:

  1. 完整的错误日志和 traceback
  2. 复现步骤和环境信息(CANN 版本、硬件型号)
  3. 已尝试的排查手段

关联分析:

  • 发现 PR #367 ([Feature][Build]Conditionally set ascend_compute_unit by CANN version) 可能与本 Issue 相关。
    该 PR 状态:open(未合入),目标分支:dev。
  • 发现 PR #355 ([Feature][Build]Conditionally set ascend_compute_unit by CANN version) 可能与本 Issue 相关。
    该 PR 状态:closed(未合入),目标分支:master。
  • 发现 PR #347 ([feature][ops]: add mxfp4 quant flash attention softmax variants) 可能与本 Issue 相关。
    该 PR 状态:merged(未合入),目标分支:dev。

建议维护者确认关联关系。

likedislike
lanwangli成员
6月16日 评论:

Bug 问题已收到。本 Issue 已标记为 bug。

根因分析:

  1. 该问题与构建配置相关,可能是 CANN 版本与计算单元不匹配导致。
  2. 默认构建脚本可能未充分适配当前环境,缺少版本兼容性检查。

排查方向:

  1. 检查当前 CANN 版本与 ASCEND_COMPUTE_UNIT 的兼容性。
  2. 验证 build 脚本中是否存在硬编码的芯片型号。
  3. 查看 cmake 阶段的日志,确认 ops-info 生成步骤。

优化建议:

  1. 在 build 脚本中增加 CANN 版本自动检测逻辑。
  2. 对不支持的计算单元提供明确的跳过机制,而非直接报错。
  3. 补充不同 CANN 版本的构建兼容性矩阵。

请补充:

  1. 完整的错误日志和 traceback
  2. 复现步骤和环境信息(CANN 版本、硬件型号)
  3. 已尝试的排查手段

关联分析:

  • 发现 PR #367 ([Feature][Build]Conditionally set ascend_compute_unit by CANN version) 可能与本 Issue 相关。
    该 PR 状态:open(未合入),目标分支:dev。
  • 发现 PR #355 ([Feature][Build]Conditionally set ascend_compute_unit by CANN version) 可能与本 Issue 相关。
    该 PR 状态:closed(未合入),目标分支:master。
  • 发现 PR #347 ([feature][ops]: add mxfp4 quant flash attention softmax variants) 可能与本 Issue 相关。
    该 PR 状态:merged(未合入),目标分支:dev。

建议维护者确认关联关系。

likedislike
ascend-robotascend-robot成员
7月3日 关联了看板:MindStudio ISSUE管理
Cchangetheway成员
7月8日 issue状态由 TODO 改变为 DONE
Cchangetheway成员
7月8日 关闭了 issue
ascend-robotascend-robot成员
7月8日 添加了label:resolved
lijinxilijinxi成员
8月31日 关联了看板:MindIE-SD