NeMo MBridge CUDA 图优化
在 Megatron Bridge 训练中配置、验证并评估 CUDA Graph,以降低主机驱动开销。
技能明确披露了静态形状、内存占用、NCCL 环境、CPU offloading、重计算、MoE 范围和 packed sequence 等风险,也提供了图清理和基准比较建议;未见恶意行为、凭据处理或越权访问。扣分原因是缺少明确的用户确认门槛、通用回滚方案和失败时的恢复流程,且 local full_iteration 路径要求关闭 NaN 检查,安全边界仍需操作者自行把关。
内容结构基本一致,配置约束、代码锚点、常见失败模式和测试命令较完整,并说明了捕获与 replay 的区别。扣分原因是本次为静态审查,测试和功能 smoke test 未执行;依赖的 Megatron-Core、Transformer Engine、容器、GPU 架构和后端组合较复杂,部分异常路径仍只给出断言或简要修复建议。按静态校准不超过 10 分。
目标用户、CUDA graph 实现、作用域选择、MoE 与 dense 场景、适用条件和不适用条件较清楚;不依赖海外在线服务,未发现中国大陆网络可达性方面的核心阻碍。扣分原因是内容面向英文 NVIDIA/Megatron 环境,未提供中文说明;对具体版本、容器和硬件环境的适配边界仍有限,语义触发主要依赖配置关键词。
SKILL.md 采用了决策、启用示例、约束、代码锚点、陷阱和验证的渐进结构,并配有 card.yaml、BENCHMARK.md、评测任务和版本信息;技能声明 Apache-2.0,仓库也提供许可证与维护发布工作流。扣分原因是评测发现缺少推荐的 Instructions 和 Examples 小节、元数据未指定作者,更新日志和明确维护责任/更新路径不足;题定许可证元数据为 NOASSERTION,也降低了治理清晰度。
技能能直接产出 Megatron Bridge 的 CUDA graph 配置建议,覆盖 dense、MoE、full-iteration、TE scoped graph 以及 steady-state timing 比较,且文件记录了若干实测成功、变慢、阻塞和 OOM 案例。扣分原因是收益高度依赖 workload,部分效果证据不可在本次静态审查中复现,输出仍需结合目标容器、GPU、dispatcher 和显存余量进行人工验证。按静态校准最高 7 分。
文件提供了配置源码行号、训练循环锚点、MCore 类名、测试文件、评测记录和若干测量结果,具备一定审计线索;同时明确指出部分端到端测试未执行、loss 结论不充分和后续验证需求。扣分原因是缺少本次审查可独立复现的执行结果,证据主要来自技能随附报告和代码引用,交叉 corroboration 覆盖有限。按静态校准最高 5 分。
- 不要把技能中记录的 15–25% step-time 或 20–33% throughput 提升视为保证;应在目标 GPU、容器、dispatcher、batch shape 和显存配置上排除 warmup/capture 后重新测量。
- local + full_iteration 需要关闭 loss NaN 检查,并且 CUDA graph 会固定中间 buffer;启用前应确认监控、显存余量和中止/清理流程。
- TE scoped graphs 与 packed sequences、full recompute、CPU offloading、动态序列长度及部分 TE attention backend 组合可能直接失败。
这个 Skill 能做什么,适合哪些场景?
该技能面向使用 NeMo MBridge 和 Megatron Bridge 进行大规模模型训练的工程师,指导 CUDA Graph 的配置、捕获、回放与验证。它涵盖 MCore 的本地全迭代图,以及 Transformer Engine 针对注意力、MLP 和 MoE 模块的作用域图。内容包括配置示例、性能测试命令、代码锚点、约束条件、常见故障和单元测试与 GPU 冒烟测试。它适合需要降低主机端开销的训练工作负载,但成功捕获并不保证实际加速。
指导用户设置 cuda_graph_impl、cuda_graph_scope、预热步数和 TE RNG tracker;通过性能 harness 运行训练配置;解释 local full_iteration 与 transformer_engine 作用域图的捕获流程;检查静态张量形状、MoE 作用域、重计算、延迟权重梯度和 NCCL 内存注册等约束;运行针对 CUDA Graph 配置和通信重叠的 pytest 单元测试,以及需要 GPU 的功能冒烟测试;根据预热后的 eager 与图回放迭代比较性能。
- 训练稠密模型的工程师,希望先对 attention、再对 MLP 使用 TE 作用域图以降低主机驱动开销。
- 训练 dropless MoE 模型的工程师,需要配置 attn、moe_router 和 moe_preprocess 图作用域。
- 调试 CUDA Graph 配置变更导致的训练崩溃、断言或性能回归。
- 使用选择性重计算的训练工作负载,需要评估其与 TE 作用域图的组合。
- 需要全前向加反向迭代捕获,并能够满足更严格约束的训练工程师。
这个 Skill 有哪些优点和局限?
- 同时覆盖 local full_iteration 和 Transformer Engine 作用域图两种实现。
- 提供可复制的 Python 配置、性能 harness CLI 和 pytest 验证命令。
- 明确说明 RNG tracker、静态形状、MoE、重计算、CPU offloading 和 NCCL 注册等关键约束。
- 包含代码锚点、正向 recipe 示例和图清理逻辑,便于定位实现细节。
- CUDA Graph 会固定中间缓冲区,可能显著增加显存;全迭代图的峰值显存可能达到原来的 1.5–2 倍。
- 动态或变长序列、CPU offloading 和部分 MoE/重计算组合不兼容。
- 功能冒烟测试需要 GPU;文档没有提供跨硬件平台的完整测试矩阵。
- 文档中的成功捕获案例回放速度略慢于 eager,不能将捕获成功视为性能提升保证。
如何安装这个 Skill?
使用 NVIDIA skills CLI 安装指定技能:
npx skills add nvidia/skills --skill nemo-mbridge-perf-cuda-graphs --yes
README 未说明该技能在每种客户端中的具体安装目录;CLI 会提示或处理安装目标。
如何使用这个 Skill?
在已加载该技能的 Agent 中提出与 Megatron Bridge CUDA Graph 配置或性能验证相关的请求,例如:“为我的 Megatron Bridge dropless MoE 训练配置 transformer_engine CUDA Graph,并验证 warmup 后的 replay 性能。”根据模型类型选择 attn、mlp 或 MoE 作用域;固定 sequence length 和 micro-batch size,先稳定 eager 运行,再执行图捕获和回放比较。
这个 Skill 与同类方案有什么区别?
该技能明确比较 eager 执行与 CUDA Graph 回放,并在 local 全迭代图与 Transformer Engine 作用域图之间提供选择建议。它建议多数训练工作负载先尝试 TE 作用域图,只有需要全迭代捕获且能满足更严格限制时才使用 local full_iteration。