多机多卡的基本概念

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)。

原文链接:https://blog.csdn.net/shenjianhua005/article/details/127318594

猜你喜欢

转载自blog.csdn.net/a545454669/article/details/128772522
今日推荐