Skip to content

update cudnn-frontend to v1.27.0 - #1728

Open
risemeup1 wants to merge 2 commits into
PaddlePaddle:developfrom
risemeup1:update_cudnn_banrch
Open

update cudnn-frontend to v1.27.0#1728
risemeup1 wants to merge 2 commits into
PaddlePaddle:developfrom
risemeup1:update_cudnn_banrch

Conversation

@risemeup1

@risemeup1 risemeup1 commented Aug 13, 2026

Copy link
Copy Markdown
Collaborator

PR Category

Environment Adaptation

PR Types

Others

Description

升级cudnn-frontend到1.27.0,官方nvidia-cudnn-frontend需要nvidia-cutlass-dsl 4.5.0,paddlefleet之前的submodule sonic-moe、flsh_attention、cudnn-frontend 1.26都是依赖的4.4.1,导致不兼容,故此PR顺带升级nvidia-cutlass-dsl 到4.5.0

是否引起精度变化

Copilot AI lite review requested due to automatic review settings August 13, 2026 03:35

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot reviewed 1 out of 1 changed files in this pull request and generated no comments.


💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

swgu98
swgu98 previously approved these changes Aug 13, 2026

@risemeup1111 risemeup1111 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

序号 位置 优先级 状态
1 packages/paddlefleet_ops/setup.py:41 P1 🔴

结论:当前提交需要修复依赖兼容性后再合入。packages/paddlefleet_ops/setup.py:41 将 CUTLASS DSL 固定为 4.5.0,但当前 FlashMask 子模块的 setup.py 仍将同一依赖限制为 >=4.4.1,<=4.4.2;实际 ops wheel 构建会进入 FlashMask 的 setup 预安装逻辑,两个约束经解析器验证不可满足。请同步升级 FlashMask 的兼容约束/子模块,或选择同时满足 cuDNN frontend 与 FlashMask 的版本,并同步锁文件元数据。

上一轮已复核:cudnn-frontend v1.27.0 子模块变更本身未发现独立代码问题;本轮新增的 CUTLASS DSL 版本变更引入上述 P1 构建阻断。当前环境未执行 Blackwell 数值回归,但该 finding 由依赖元数据和构建调用链直接复现。

Powered by Nyanpasu with gpt-5.5 xhigh, please check the suggestions carefully.

@Paddle-CI-Bot

Copy link
Copy Markdown

PaddleFleet Log Analysis

Run #31665877219 · Attempt 1

日志分析报告

失败维度: 全矩阵失败(单卡/多卡/集成 × H20/A100,Python 3.12),失败点统一在 Install PaddleFleet 阶段,无任何测试 case 实际执行。

流水线名称 问题标签 修复建议 日志片段
Integration test (H20, multi-card) · job/94338770430 Paddle包兼容性 / 依赖冲突 锁定 nvidia-cutlass-dsl 版本或升级 paddlepaddle-gpu 至兼容版本 报错代码
Unit test (single card) · job/94338770431 Paddle包兼容性 / 依赖冲突 同上 报错代码
Unit test (multi-card) · job/94338770433 Paddle包兼容性 / 依赖冲突 同上 报错代码
Integration test (A100) · job/94338770438 Paddle包兼容性 / 依赖冲突 同上 报错代码
Integration test (H20, single card) · job/94338770473 Paddle包兼容性 / 依赖冲突 同上 报错代码
Coverage Upload And Check · job/94340131693 覆盖率数据缺失(级联失败) 上游 Install 修复后自动恢复,无需单独处理 报错代码

失败的测试 case:

所有测试 case 均未执行——5 个测试 job 全部在 "Install PaddleFleet" 步骤因
ImportError 退出(exit code 1),下游测试步骤被跳过(skipped):

- Single card test              [SKIPPED]
- Multi-card test               [SKIPPED]
- GLM4.5 pre-train (H20)        [SKIPPED]
- GLM4.5 sft (H20)              [SKIPPED]
- GLM4.5 single-card (H20)      [SKIPPED]
- Qwen3-vl-8k-single-card (H20) [SKIPPED]
- GLM4.5 pre-train (A100)       [SKIPPED]
- GLM4.5 sft / lora / dpo (A100)[SKIPPED]
- Qwen pre-train (A100)         [SKIPPED]
- Coverage Upload And Check     [FAILED - 级联]

根本原因分析:

所有 5 个测试 job 的 唯一直接原因 是同一条 ImportError

ImportError: cannot import name 'OperandMajorMode' from 'cutlass.cute.nvgpu'
  (/usr/local/lib/python3.12/site-packages/nvidia_cutlass_dsl/python_packages/cutlass/cute/nvgpu/__init__.py)

ImportError: Failed to import ecosystem library 'cudnn': cannot import name 'OperandMajorMode'
  from 'cutlass.cute.nvgpu'

paddlepaddle-gpuimport paddle 时会尝试加载 cudnn 生态库,其内部依赖 nvidia-cutlass-dsl 中的 OperandMajorMode 符号。当前 CI 环境中安装的 nvidia_cutlass_dsl wheel(位于 Python 3.12 site-packages)不包含该符号,说明:

  1. nvidia-cutlass-dsl 版本过新或过旧,与本次 CI 安装的 paddlepaddle-gpu 版本不匹配;
  2. 该错误 与 PR update cudnn-frontend to v1.27.0 #1728 代码本身无关,属于 环境/依赖版本漂移——CI 安装脚本中 nvidia-cutlass-dsl 未锁定版本,近期上游发布了不兼容的新版本导致符号缺失;
  3. 故障覆盖全部 GPU 型号(H20 + A100)和全部测试类型(单卡/多卡/集成),进一步印证是 环境级别 而非代码级别的问题。

job/94340131693(Coverage Upload And Check)是纯级联失败:因上游 5 个 job 均未产出 coverage XML 并上传 BOS,下载时收到 404,后续 XML 解析和覆盖率 merge 步骤均报错退出。


修复建议:

  1. 锁定 nvidia-cutlass-dsl 版本:在 CI 安装脚本(install_paddlefleet.shrequirements-ci.txt)中明确指定与当前 paddlepaddle-gpu 兼容的 nvidia-cutlass-dsl 版本,例如:

    pip install "nvidia-cutlass-dsl==<兼容版本>" --force-reinstall

    具体兼容版本可通过 pip index versions nvidia-cutlass-dsl 列出后,在隔离环境中验证 import paddle 通过的最新可用版本。

  2. 验证 Paddle 导入:在安装步骤末尾添加冒烟检查,快速失败并给出明确错误信息:

    python -c "import paddle; print(paddle.__version__)" || exit 1
  3. 短期 workaround:若无法立即确认兼容版本,可在 Dockerfile 或安装脚本中降级 nvidia-cutlass-dsl 到上一个已知可用版本(需查 CI 历史最近一次绿色构建时的依赖快照)。

  4. Coverage job 无需单独处理,上游 Install 修复后自动恢复。


🔍 准确性记录:请点击评论底部 😊 图标,选择 👍(准确)或 👎(有误),将自动记录到 CI 监控系统

🔄 每次 Re-run 后自动更新

"triton", # for deep_gemm, flashmask
"einops", # for flash-linear-attention
"nvidia-cutlass-dsl[cu13]==4.4.1", # for sonic_moe and flash_attention
"nvidia-cutlass-dsl[cu13]==4.5.0", # for sonic_moe and flash_attention

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 该版本固定会让 FlashMask 的依赖解析失败。当前 third_party/flash-attention/flashmask/setup.py:161 仍声明 nvidia-cutlass-dsl[cu13]>=4.4.1,<=4.4.2,而此处改为 ==4.5.0;构建流程实际执行 FlashMask 的 setup.py,其预安装逻辑会同时处理这两个约束。我用解析器验证两者组合得到 requirements are unsatisfiable,因此 CUDA/NVIDIA 的 ops wheel 构建无法稳定完成。请同步升级 FlashMask 的兼容约束/子模块,或选择同时满足 cuDNN frontend 与 FlashMask 的 CUTLASS DSL 版本,并同步锁文件元数据。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants