据所给公开材料《国产算力里程碑!华为昇腾910C千卡集群完成1.6万亿参数大模型全参数训练,算力利用率超30%》,6月11日,深圳河套学院联合哈尔滨工业大学(深圳)、深圳市大数据研究院及华为有关团队,使用1000颗昇腾910C完成了1.6万亿参数DeepSeek-V4-Pro的全参数后训练。
文章披露的指标包括:模型算力利用率(MFU)稳定超过30%,关键训练算子效率提升14%,1500余步训练没有中断或报错,故障率为0.3‰。
这些数字说明,一套特定的软硬件组合已经把千卡训练跑通。至于HCCL超时发生在哪个Rank、CANN与驱动用了什么版本、算子替换做过哪些取舍,公开材料没有给出逐条日志。与其补一套不存在的“完整日志”,不如把现场真正需要的排查顺序说清楚。
HCCL超时,先别急着改模型
HCCL(Huawei Collective Communication Library)负责昇腾集群中的集合通信。规模扩到百卡、千卡后,逻辑Rank、物理机架和交换机路径只要没有对齐,AllReduce等待就可能吃掉大量训练时间。
一轮排查通常从四件事开始:
- 先锁定版本组合。 启动脚本、CANN、驱动、训练框架和
rank_table.json要一起归档。版本还在变,报错很难稳定复现。 - 核对Rank和物理拓扑。 对照机架、交换机及线缆布局检查Rank映射,尽量让逻辑上相邻的Rank在物理位置上靠近,减少不必要的跨交换机通信。
- 看
AllReduce等待时间。 使用profiling结果判断时间花在计算、通信还是同步等待上,不要只盯着整机利用率。 - 找到最早异常的Rank。 HCCL超时往往出现在日志末尾,排查还要向前追。至少保留报错时间、Rank ID、节点、前序算子和版本信息,单张报错截图不够用。
直接重启有时能让任务暂时恢复,却不会修正错误的Rank映射或版本组合。不同CANN版本的配置项也不宜照搬,升级前要重新核对通信配置和op_info.json。
PyTorch迁移,报错码只是一条线索
对于已有PyTorch代码的团队,迁移到昇腾910C时,容易卡在FlashAttention、位置编码或其他自定义算子上。日志里的TBE_IMPL_ERROR、ACL_ERROR可以帮助判断问题所在层级,但无法直接给出根因。
更稳妥的处理方式是把问题缩小:
- 记录出错算子的名称、输入shape、数据类型,以及对应的CANN和驱动版本;
- 优先尝试昇腾已有算子,或使用
matmul、reshape、broadcast等标准算子组合替代非标实现; - 必须保留自定义算子时,再考虑Ascend C或TBE,并单独验证精度和执行时间;
- 使用
msprof或Ascend Profiler查看Kernel Execution Time和Memcpy,分清耗时来自算子计算还是内存搬运; - 在正式迁移前运行Porting Advisor,提前筛出需要改造的代码和依赖。
2025年6月20日的华为开发者大会上,华为云计算CEO张平安宣布新一代昇腾AI云服务全面上线。华为在2025年全联接大会相关演讲中还提到,研发团队到4月30日使Ascend 910B、910C的推理能力达到客户基本需求。这些进展说明平台和服务仍在完善,具体到训练任务,第三方算子依然需要逐项验证。
MFU上不去,要看整条时间线
公开案例给出的MFU超过30%,关键训练算子效率提升14%,但摘要没有说明收益来自哪个单一参数。实际调优时,应把一个训练step拆成计算、通信、内存搬运和重计算几部分,再决定先改哪里。
通信与计算重叠
PyTorch迁移时,需要确认torch.distributed使用backend='hccl',异步集合通信也确实出现在Profiler时间线上。配置文件里写了异步,不代表运行时已经形成重叠。MindSpore任务则要结合流水并行配置检查阶段间等待。
混合精度与内存搬运
FP16、BF16和FP32的选择不能只看显存占用。切换精度后,要重新核对关键层输出和收敛情况;Profiler中如果Memcpy持续偏高,还应检查同步执行和重复数据搬运。
激活值重计算与Checkpoint
激活值重计算可以缓解显存压力,也会增加计算和同步开销。开启范围应以step时间和Profiler结果为准,不宜套用固定层数。Checkpoint的保存频率同样要结合写盘开销、任务时长和可接受的回退范围来定。
故障恢复要先写进运行手册
现有素材没有说明此次训练是否使用动态Rank剔除,也没有给出HCCL自动移除故障卡后继续训练的实现细节。因此,生产环境不宜把这项能力当作默认前提。
运维手册至少要写清楚:节点异常如何确认,故障节点怎样隔离,通信组如何重新建立,使用哪个Checkpoint恢复,以及恢复后如何核对训练步数和参数状态。监控侧则应覆盖卡温、通信丢包和光模块误码率(BER),阈值按照设备与机房规范设置,避免套用缺少来源的统一数字。
1500余步没有中断,是一次训练结果。可复用的工程能力,还要经得住节点掉线、进程退出和版本回滚。
千卡成绩放回工程现场看
1000颗昇腾910C完成1.6万亿参数模型后训练,至少说明国产算力已经在特定配置下跑过千卡规模任务。对开发团队来说,接下来要回答的仍是一些具体问题:
- HCCL超时时,哪个Rank最先出现异常?
- CANN、驱动和框架的可复现版本组合是什么?
- 非标算子采用了哪种替代方案,精度是否重新验证?
- Checkpoint损坏或节点退出后,任务怎样恢复?
这些信息比一组通用环境变量更有用。涉及PyTorch迁移、算子开发和版本适配时,也可以继续查阅鲲鹏昇腾开发者社区中的工具说明与实操资料。