ノード:物理ノード、つまりコンピュータの数を表します。コンピュータは複数の GPU を搭載できます。
nnodes:物理ノードの数、つまりコンピュータの数
node_rank:物理ノードのシリアル番号、各コンピュータのシリアル番号
nproc_per_node:各物理ノード上のプロセスの数は、各コンピューター上の GPU の数、つまり開くことができるプロセスの数に相当します。
グループ:プロセスグループ。デフォルトではグループは 1 つだけです
ランクとローカルランク:
ディストリビューション全体のシリアル番号。各プロセスにはランクと local_rank があり、ランクはディストリビューション全体に相対的です (つまり、ディストリビューション全体の 0 から最後の GPU までのシリアル番号。 range(0 、分散 GPU の数)、ここではノードに対する相対的な値ではなく、すべてのノードの GPU の合計です)、local_rank は、どのノードに属しているかを基準とした各プロセスまたは GPU の数です。また、rank=0 はマスタープロセスを表します。
写真が示すように:
3 つのノードがあり、各ノードには 4 つの GPU があります (各ノードには 4 つのプロセスがあり、1 つのプロセスは 1 つの GPU に対応します)。
複数のカードを備えた単一マシンの場合: WORLD_SIZE は使用されるプロセスの数を表します (1 つのプロセスは 1 つの GPU に対応します)。RANK と LOCAL_RANK の値は同じで、WORLD_SIZE のプロセス (GPU) の数を表します。 。
複数のマシンと複数のカードの場合: WORLD_SIZE はすべてのマシンのプロセスの合計数を表し (1 つのプロセスは 1 つの GPU に対応します)、RANK はどのプロセスが WORLD_SIZE 内にあるかを表し、LOCAL_RANK は現在のマシン上のプロセスの数を表します (GPU )。
元のリンク: https://blog.csdn.net/shenjianhua005/article/details/127318594