マルチマシンマルチカードの基本概念

ノード:物理ノード、つまりコンピュータの数を表します。コンピュータは複数の 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

おすすめ

転載: blog.csdn.net/a545454669/article/details/128772522