rank the following assets from(local_rank,rank,node等理解)
node: 代表物理节点 ,即电脑台数 ,一台电脑可以有多个GPU
nnodes:物理节点数 ,就是电脑数量
node_rank:物理节点的序号 ,每个电脑的序号
nproc_per_node:每个物理节点上面进程的数量 ,等价于每个电脑上GPU的数量 ,就是可以开几个进程 。
group:进程组 。默认只有一个组
rank & local_rank: 在整个分布式中的序号 ,每个进程都有一个rank和一个local_rank ,rank是相对整个分布式而言(就是序号从0开始一直到整个分布式中最后一个GPU的数 ,类似于range(0,整个分布式GPU数量),这里不是相对于一个node而言 ,是所有node的GPU总和) ,local_rank是每个进程或者GPU相对属于哪个node而言的编号。另外,rank=0代表master进程
如图所示:
有三个node ,每个node有4个GPU(则每个node会有四个进程 ,一个进程对应一个GPU)在单机多卡的情况下:
WORLD_SIZE代表着使用进程数量(一个进程对应一块GPU),这里RANK和LOCAL_RANK这里的数值是一样的 ,代表着WORLD_SIZE中的第几个进程(GPU) 。
在多机多卡的情况下:WORLD_SIZE代表着所有机器中总进程数(一个进程对应一块GPU) ,RANK代表着是在WORLD_SIZE中的哪一个进程 ,LOCAL_RANK代表着当前机器上的第几个进程(GPU) 。
图片来自:PyTorch多卡/多GPU/分布式DPP的基本概念(node&rank&local_rank&nnodes&node_rank&nproc_per_node&world_size)_hxxjxw的博客-CSDN博客_nproc_per_node
参考:
1.PyTorch多卡/多GPU/分布式DPP的基本概念(node&rank&local_rank&nnodes&node_rank&nproc_per_node&world_size)_hxxjxw的博客-CSDN博客_nproc_per_node
2.https://blog.csdn.net/qq_37541097/article/details/109736159
创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!