使用 NCCL Fast Socket 提高工作负载效率


本页面介绍如何使用 NVIDIA Collective Communication Library (NCCL) Fast Socket 插件在 Google Kubernetes Engine (GKE) 集群上运行更高效的工作负载。

Autopilot 集群不支持 NCCL Fast Socket。

准备工作

在开始之前,请确保您已执行以下任务:

  • 启用 Google Kubernetes Engine API。
  • 启用 Google Kubernetes Engine API
  • 如果您要使用 Google Cloud CLI 执行此任务,请安装初始化 gcloud CLI。 如果您之前安装了 gcloud CLI,请运行 gcloud components update 以获取最新版本。

限制

使用要求

  • 您的节点池必须启用 gVNIC 才能使用 NCCL Fast Socket。
  • GKE 节点必须使用 Container-Optimized OS 节点映像
  • 您的集群必须运行 GKE 1.25.2-gke.1700 或更高版本。

创建集群

创建新集群:

gcloud container clusters create CLUSTER_NAME \
    --cluster-version=VERSION \
    --region=COMPUTE_REGION

请替换以下内容:

  • CLUSTER_NAME:新集群的名称。
  • VERSION:GKE 版本,必须为 1.25.2-gke.1700 或更高版本。您还可以使用 --release-channel 标志来选择发布渠道。发布渠道的默认版本必须为 1.25.2-gke.1700 或更高版本。
  • COMPUTE_REGION:新集群的 Compute Engine 区域。对于可用区级集群,请使用 --zone=COMPUTE_ZONE

启用 NCCL Fast Socket

创建使用 NCCL Fast Socket 插件的节点池。您还可以使用 gcloud container node-pools update 更新现有节点池。

gcloud container node-pools create NODEPOOL_NAME \
    --accelerator type=ACCELERATOR_TYPE,count=ACCELERATOR_COUNT \
    --machine-type=MACHINE_TYPE \
    --cluster=CLUSTER_NAME \
    --enable-fast-socket \
    --enable-gvnic

请替换以下内容:

  • NODEPOOL_NAME:新节点池的名称。
  • CLUSTER_NAME:集群的名称。
  • ACCELERATOR_TYPE:GPU 类型。可以是下列选项之一:
    • nvidia-tesla-k80
    • nvidia-tesla-p100
    • nvidia-tesla-p4
    • nvidia-tesla-v100
    • nvidia-tesla-t4
    • nvidia-tesla-a100
    • nvidia-a100-80gb
    • nvidia-l4
  • ACCELERATOR_COUNT:每个节点的 GPU 数量。
  • MACHINE_TYPE:要使用的机器类型。内存优化机器类型不支持 NCCL Fast Socket。

安装 NVIDIA GPU 设备驱动程序

按照安装 NVIDIA GPU 设备驱动程序中的说明在节点上安装所需的 NVIDIA 设备驱动程序。

验证 NCCL Fast Socket 已启用

如需验证已启用 NCCL Fast Socket,请查看 kube-system Pod:

kubectl get pods -n kube-system

输出类似于以下内容:

NAME                         READY   STATUS    RESTARTS   AGE
nccl-fastsocket-installer-qvfdw  2/2     Running   0          10m
nccl-fastsocket-installer-rtjs4  2/2     Running   0          10m
nccl-fastsocket-installer-tm294  2/2     Running   0          10m

在此输出中,Pod 的数量应等于节点池中的节点数。

停用 NCCL Fast Socket

如需停用 NCCL Fast Socket,请运行以下命令:

gcloud container node-pools update NODEPOOL_NAME \
    --cluster=CLUSTER_NAME \
    --no-enable-fast-socket

现有节点仍安装有该插件。您必须手动调整节点池的大小以将工作负载迁移到新节点。

问题排查

如需排查 gVNIC 问题,请参阅排查 Google 虚拟 NIC 问题

后续步骤