本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
分布式GPU训练
本节用于在多节点GPU集群上运行分布式训练。
设置集群以进行分布式训练
要在上运行分布式训练EKS,你需要在集群上安装以下组件。
-
Kubeflow
的默认安装,其中包含所需的组件,例如 PyTorch 运算符和插件。NVIDIA -
MPI运营商。
下载并运行脚本以在集群中安装所需的组件。
$ wget -O install_kubeflow.sh https://raw.githubusercontent.com/aws/deep-learning-containers/master/test/dlc_tests/eks/eks_manifest_templates/kubeflow/install_kubeflow.sh $ chmod +x install_kubeflow.sh $ ./install_kubeflow.sh
<EKS_CLUSTER_NAME>
<AWS_REGION>
PyTorch分布式GPU训练
本教程将指导您在多节点GPU集群 PyTorch 上进行分布式训练。它使用 Gloo 作为后端。
-
确认已安装 PyTorch 自定义资源。
$
kubectl get crd该输出应包含
pytorchjobs.kubeflow.org
。 -
确保NVIDIA插件
daemonset
正在运行。$
kubectl get daemonset -n kubeflow输出应类似于以下内容。
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE nvidia-device-plugin-daemonset 3 3 3 3 3 <none> 35h
-
使用以下文本创建基于 Gloo 的分布式数据并行作业。将其保存在名为的文件中
distributed.yaml
。apiVersion: kubeflow.org/v1 kind: PyTorchJob metadata: name:
"kubeflow-pytorch-gpu-dist-job"
spec: pytorchReplicaSpecs: Master: replicas: 1 restartPolicy: OnFailure template: spec: containers: - name:"pytorch"
image:"763104351884.dkr.ecr.us-east-1.amazonaws.com/aws-samples-pytorch-training:1.7.1-gpu-py36-cu110-ubuntu18.04-example"
args: - "--backend" - "gloo" - "--epochs" - "5" Worker: replicas: 2 restartPolicy: OnFailure template: spec: containers: - name:"pytorch"
image:"763104351884.dkr.ecr.us-east-1.amazonaws.com/aws-samples-pytorch-training:1.7.1-gpu-py36-cu110-ubuntu18.04-example"
args: - "--backend" - "gloo" - "--epochs" - "5" resources: limits: nvidia.com/gpu: 1 -
使用您刚刚创建的 pod 文件运行分布式训练作业。
$
kubectl create -f distributed.yaml -
您可以使用以下方法检查作业的状态:
$
kubectl logs kubeflow-pytorch-gpu-dist-job要连续查看日志,请使用:
$
kubectl logs -f<pod>