同步操作将从 Ascend/MindSpeed-LLM 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
仅限于版本标识为CANN 8.0.RC2
和Ascend HDK 24.1.RC2
及其后续所有迭代版本的系统环境。
若在非指定版本中尝试采用该配置,可能触发系统级的异常行为,包括但不限于运行时错误。
MindSpeed-LLM 中 mc2 功能默认关闭,如需开启MC2,需将 modellink/training/arguments.py
文件下,validate_args_decorator
函数中的args.use_mc2 = False
语句注释掉。
在开启了TP和SP的大模型训练场景下,存在matmul计算和all-reduce操作的强依赖关系(不开启SP),或存在matmul计算和all_gather/reduce_scatter操作的强依赖关系(开启SP)。当模型参数量较大时,此处通信量和计算量都较大,在串行执行时,会引入较长的等待闲置时间。
针对存在强依赖关系的matmul计算和通信操作,昇腾自研MC2解决方案。
MC2通过融合算子的方式将matmul计算和集合通信操作进行融合,将较大的计算和通信任务切分成了较小的计算子任务和通信子任务,并通过流水的方式使得通信子任务和计算子任务可以互相掩盖,从而减少等待和闲置时间,提高利用率。
在python脚本侧将原本串行的matmul和all_gather/reduce_scatter操作通过MC2融合算子接口进行了融合。
具体实现参见link。
MC2算子接口参见link。
当开启了TP和SP时,建议开启MC2进一步优化。
设置--use-mc2即可使能MC2算子。
在开启TP和SP的训练场景下,使用MC2可以减少内存开销并提高计算效率。
mcore场景下(开启--use-mcore-models
),MoE模型,MLP部分不使能MC2。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。