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

打印 上一主题 下一主题

主题 1620|帖子 1620|积分 4860

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
利用分布式训练在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 脚本之前手动设置环境变量来禁用这些通信模式,用命令行设置环境变量:
  1. export NCCL_P2P_DISABLE=1
  2. export NCCL_IB_DISABLE=1
复制代码
然后在启动代码
也可以直接加载NCCL_P2P_DISABLE=1 NCCL_IB_DISABLE=1 python xx.py
如果在debug调试可以配置:
  1. {
  2.     "version": "0.2.0",
  3.     "configurations": [
  4.         {
  5.             "name": "Python",
  6.             "type": "debugpy",
  7.             "request": "launch",
  8.             "program": "${file}",
  9.             "console": "integratedTerminal",
  10.             "env": {
  11.                 "CUDA_VISIBLE_DEVICES": "1,2",
  12.                 "NPROC_PER_NODE": "2",
  13.                 "MASTER_PORT": "29500",
  14.                 "NCCL_P2P_DISABLE": "1",
  15.                 "NCCL_IB_DISABLE": "1"
  16.             },
  17.             "args": [
  18.                 "--rlhf_type", "dpo",
  19.                 "--model_type", "qwen2-0_5b-instruct",
  20.                 ]
  21.             }
  22.         }
复制代码
第二种:
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企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

小秦哥

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表