环境:windows11 python3.10 按照要求安装了环境,pip install "modelscope[nlp]" -f https://modelscope.oss-cn-beijing.aliyuncs.com/releases/repo.html
和pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
,运行报错Distributed package doesn't have NCCL built in
,查询资料发现windows系统不支持NCCL 需要改为gloo,请问是在代码的哪一处改?或者有其他解决方法?
NCCL 是 NVIDIA 提供的用于实现 GPU 加速的通信库,目前主要用于分布式训练。然而,NCCL 并不支持在 Windows 操作系统上运行,因此需要使用其它的通信库来替代 NCCL。在 PyTorch 中,可以将分布式后端设置为 "gloo",来使用 Gloo 通信库来替代 NCCL。
为了替换 PyTorch 中的后端为 "gloo",可以在 PyTorch 代码的开头添加以下代码:
scheme
Copy
import os
os.environ['NCCL_SOCKET_IFNAME'] = 'eth0' # 替换为你的网络接口名称
os.environ['NCCL_IB_DISABLE'] = '1'
os.environ['NCCL_DEBUG'] = 'INFO'
os.environ['MASTER_ADDR'] = 'localhost'
os.environ['MASTER_PORT'] = '12345' # 替换为你的端口号
torch.distributed.init_process_group(backend='gloo')
这里的 backend='gloo' 指定了使用 Gloo 通信库作为分布式后端。这段代码还设置了一些环境变量,用于指定通信参数。需要注意的是,这段代码需要在 PyTorch 初始化之前运行,以保证正确地替换分布式后端。
您好,如果是 nccl 改 gloo 可以通过修改配置文件中的 megatron: { "world_size": ... "distributed_backend": "gloo", <-- 添加这行 ... }