多机多卡训练组网及配置NCCL_GDR_IB

GPU+Mellanox HCA GDR TEST 环境部署

1、安装nvidia驱动(建议采用最新驱动),根据操作系统和显卡型号选择即可

https://www.nvidia.cn/Download/index.aspx?lang=cn

2、安装CUDA

https://developer.nvidia.com/cuda-downloads

3、安装对应操作系统版本的Mellanox OFED

https://www.mellanox.com/products/infiniband-drivers/linux/mlnx_ofed

上述安装完成后可以使用nvidia-smi以及ibstat查看GPU/HCA卡的状态

4、关闭selinux;配置cuda环境变量;

# set enforce 0

# export PATH=$PATH:/usr/local/cuda/bin

# export LD_LIBRARY_PATH=/usr/local/cuda/lib:/usr/local/cuda/lib64:$LD_LIBRARY_PATH

5、安装nv_peer_memory

https://github.com/Mellanox/nv_peer_memory

# ./build_module.sh

# rpmbuild --rebuild /tmp/nvidia_peer_memory-1.0-8.src.rpm

# rpm -ivh <path to generated binary rpm file>

6、安装GDR TEST的相关套件并测试(perftest)

https://github.com/linux-rdma/perftest

7、nccl test

https://www.jianshu.com/p/f34c08ccc2ff

https://github.com/NVIDIA/nccl-tests

NCCL环境变量理解(影响通信效率)

https://docs.nvidia.com/deeplearning/nccl/user-guide/docs/env.html

修改环境变量或在nccl.conf中修改相关参数选项。可以改变通信特点,进而起到影响通行性能的作用。

NCCL_P2P_DISABLE 默认是开启P2P通信的,这样一般会更高效,用到点对点通信延迟会有所改善,带宽也是。

NCCL_P2P_LEVEL 开启P2P后可以设置P2P的级别,比如在那些特定条件下可以开启点对点通信,具体的可以参看文档(0-5)

NCCL_SOCKET_NTHREADS 增加它的数量可以提高socker传输的效率,但是会增加CPU的负担

NCCL_BUFFLE_SIZE 缓存数据量,缓存越大一次ring传输的数据就越大自然对带宽的压力最大,但是相应的总延迟次数会少。缺省值是4M(4194304),注意设置的时候使用bytes(字节大小)

NCCL_MAX/MIN_NCHANNELS 最小和最大的rings,rings越多对GPU的显存、带宽的压力都越大,也会影响计算性能

NCCL_CHECKS_DISABLE 在每次集合通信进行前对参数检验校对,这会增加延迟时间,在生产环境中可以设为1.缺省是0

NCCL_CHECK_POINTERS 在每次集合通信进行前对CUDA内存 指针进行校验,这会增加延迟时间,在生产环境中可以设为1.缺省是0

NCCL_NET_GDR_LEVEL GDR触发的条件,默认是当GPU和NIC挂载一个swith上面时使用GDR

NCCL_IGNORE_CPU_AFFINITY 忽略CPU与应用的亲和性使用GPU与nic的亲和性为主

NCCL_ALGO 通信使用的算法,ring Tree Collnet

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在PaddleX中进行YOLOv8多机多卡训练的步骤如下: 1. 首先,确保你已经安装了PaddlePaddle和PaddleX。可以使用以下命令来安装: ``` pip install paddle paddlepaddle paddlepaddle-gpu pip install paddlex ``` 2. 准备数据集:将数据集划分为训练集、验证集和测试集,并按照Pascal VOC或COCO格式组织数据集。 3. 创建并配置训练任务:在PaddleX中,可以使用`paddlex.det.TrainTask`类来创建训练任务。在创建任务时,需要指定模型类型为YOLOv8,并设置其他相关参数,如学习率、批量大小、训练轮数等。 4. 设置多机多卡训练:在PaddleX中,可以通过设置`use_gpu`参数为True,启用GPU加速训练。如果你的机器上有多个GPU,可以通过设置`num_gpus`参数来指定使用的GPU数量。PaddleX会自动进行多机多卡训练。 5. 开始训练:调用`train`方法开始训练任务。训练过程中,PaddleX会自动进行数据增强、模型训练和评估,并将训练日志保存在指定的目录中。 请注意,进行多机多卡训练需要满足以下条件: - 你的机器上有多个GPU,并且已经正确安装和配置了CUDA。 - 你的数据集足够大和复杂,以保证多机多卡训练的性能提升。 参考资料: ***.3/tutorials/models/detection.html#id2) : PaddlePaddle官方文档 (https://www.paddlepaddle.org.cn/documentation/docs/zh/guides/02_paddle2.0_develop/start_ml/debug_paddle/parallel_training***

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值