小秦哥 发表于 2024-12-18 12:13:16

RTX 4000 series doesn‘t support faster communication broadband via P2

利用分布式训练在RTX40系显卡报错:NotImplementedError: Using RTX 4000 series doesn’t support faster communication broadband via P2P or IB. Please set NCCL_P2P_DISABLE=“1” and NCCL_IB_DISABLE=“1” or use accelerate launch which will do this automatically.
体现 GPU 不支持某些高效的通信模式(P2P 和 InfiniBand)。
解决方案:
第一种:
在运行你的 Python 脚本之前手动设置环境变量来禁用这些通信模式,用命令行设置环境变量:
export NCCL_P2P_DISABLE=1
export NCCL_IB_DISABLE=1
然后在启动代码
也可以直接加载NCCL_P2P_DISABLE=1 NCCL_IB_DISABLE=1 python xx.py
如果在debug调试可以配置:
{
    "version": "0.2.0",
    "configurations": [
      {
            "name": "Python",
            "type": "debugpy",
            "request": "launch",
            "program": "${file}",
            "console": "integratedTerminal",
            "env": {
                "CUDA_VISIBLE_DEVICES": "1,2",
                "NPROC_PER_NODE": "2",
                "MASTER_PORT": "29500",
                "NCCL_P2P_DISABLE": "1",
                "NCCL_IB_DISABLE": "1"
            },
            "args": [
                "--rlhf_type", "dpo",
                "--model_type", "qwen2-0_5b-instruct",
                ]
            }
      }
第二种:
accelerate launch 可以自动设置这些环境变量。你只必要通过 accelerate 启动命令
例如accelerate launch --multi_gpu --num_processes 2 --num_machines 1 xx.py
或accelerate launch --config_file xx.yaml xx.py

补充: 那么deepspeed启动和torchrun启动和accelerate launch这种分布式框架有啥区别?
1、deepspeed step2.py --deepspeed:直接利用 deepspeed 命令来启动训练脚本会自动处置处罚了许多底层的配置。是微软开辟的一个深度学习优化库,最经典就是ZeRO 优化
2、torchrun --nnodes 1 --nproc_per_node 1 sft.py --deepspeed ds_config.json:是 PyTorch 提供的分布式启动工具,更机动可以直接控制 --nnodes 和 --nproc_per_node,是对 torch.distributed.launch 的改进和替代。并且不仅限于 DeepSpeed,还可以与其他分布式战略如DDP联合。
3、accelerate launch --multi_gpu --num_processes 2 dpo_train.py: Accelerate 是 Hugging Face 提供的一个高级封装工具,它将复杂的分布式训练配置简化为一个配置文件(或命令行选项),用户无需深入了解底层实现即可轻松启动分布式训练使命

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: RTX 4000 series doesn‘t support faster communication broadband via P2