Pytorch 多GPU训练-多计算节点并行-All you need
本篇介绍多计算节点上的pytorch分布式训练。从环境配置到运行demo的所有步骤,step by step。没有理论原理,理论原理可以参考 这里 . 多台linux计算节点,通过网络连接,不同主机之间可以相互ping通。网速越快越好,如果通信速度比较慢,就不用怎么考虑分布式训练。 所有linux计算节点都包含若干GPU,GPU数量可以不一致,但是所有GPU计算速度尽量一致,否则模型的同步时会等待大量时间(短板效应)。 所有计算节点都拥有Pytorch运行环境,即都可以单独的运行训练代码。 这里NFS有两个作用:(1)集群初始化时作为多个进程(不同主机上) UDS (unix domain socket)的通信地址;(2)数据集统一存放在NFS目录上,所有进程都可以同时访问。 选择一台与计算节点同一网段的linux主机作为存储节点,或者使用计算节点中的一台作为存储节点。 存储节点操作如下: apt-get install nfs-kernel-server <path to share> *(rw,sync,no_root_squash,no_subtree_check) # insert this line to /etc/exports, save & exit exportfs -a 数据集保存到共享目录中。 所有计算节点将共享目录挂载到本地: mkdir /mnt/nfs