PyTorch1.9.0下fastmoe分布式训练报错 NCCL可用检测为False问题咨询
问题结论
torch.cuda.nccl.is_available(x)返回False已经明确说明当前PyTorch无法正常调用NCCL通信库,你遇到的是PyTorch版本、NCCL版本、fastmoe库三者的适配问题。
适配问题具体说明
- PyTorch 1.9.0官方默认绑定的NCCL版本为2.9.9,你查询到的2708对应NCCL 2.7.8,版本低于PyTorch 1.9.0的要求,版本不匹配直接导致PyTorch无法调用NCCL接口,触发
is_available返回False。 - 你使用的fastmoe 0.2.1版本对PyTorch版本有明确范围限制,其底层获取默认通信组的逻辑会校验PyTorch版本兼容性,PyTorch 1.9.0不在fastmoe 0.2.1的支持范围内,这是触发
RuntimeError: Unsupported PyTorch version报错的直接原因。
修复方案
- 优先匹配fastmoe支持的PyTorch版本:fastmoe 0.2.1推荐使用PyTorch 1.7.x ~ 1.8.x版本,卸载现有PyTorch后安装对应版本的官方预编译包,默认会携带适配好的NCCL版本。
- 如果必须保留PyTorch 1.9.0,需要升级fastmoe到适配1.9.0的最新版本,同时手动编译安装NCCL 2.9+版本,替换环境中现有2.7.8版本的NCCL。
- 修复完成后重新运行测试代码验证:
import torch x = torch.rand(10).cuda() print(torch.cuda.nccl.is_available(x))
返回True即代表NCCL适配正常。
内容的提问来源于stack exchange,提问作者f.k
相关产品推荐
相关产品推荐

