Esta página descreve como implementar cargas de trabalho de contentores de GPU na SKU otimizada para IA da sandbox do Google Distributed Cloud (GDC).
Implemente cargas de trabalho de contentores de GPU
A SKU otimizada para IA da GDC Sandbox inclui quatro GPUs NVIDIA H100 80GB HBM3 no cluster org-infra. Estas GPUs são acessíveis através do nome do recurso
nvidia.com/gpu-pod-NVIDIA_H100_80GB_HBM3
. Esta secção descreve como atualizar a configuração de um contentor para usar estas GPUs.
As GPUs na SKU otimizada para IA da GDC Sandbox estão associadas a um projeto pré-configurado, "sandbox-gpu-project". Tem de implementar o contentor através deste projeto para usar as GPUs.
Antes de começar
Para executar comandos no cluster de infraestrutura da organização, certifique-se de que tem o kubeconfig do cluster
org-1-infra
, conforme descrito em Trabalhar com clusters:- Configurar e autenticar com a linha de comandos
gdcloud
e - gerar o ficheiro kubeconfig para o cluster de infraestrutura da organização e
atribuir o respetivo caminho à variável de ambiente
KUBECONFIG
.
- Configurar e autenticar com a linha de comandos
Para executar as cargas de trabalho, tem de ter a função
sandbox-gpu-admin
atribuída. Por predefinição, a função é atribuída ao utilizadorplatform-admin
. Pode atribuir a função a outros utilizadores iniciando sessão comoplatform-admin
e executando o seguinte comando:kubectl --kubeconfig ${KUBECONFIG} create rolebinding ${NAME} --role=sandbox-gpu-admin \ --user=${USER} --namespace=sandbox-gpu-project
Configure um contentor para usar recursos da GPU
Adicione os campos
.containers.resources.requests
e.containers.resources.limits
à especificação do contentor para pedir GPUs para a carga de trabalho. Todos os contentores no sandbox-gpu-project podem pedir até um total de 4 GPUs em todo o projeto. O exemplo seguinte pede uma GPU como parte da especificação do contentor.apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment namespace: sandbox-gpu-project labels: app: nginx spec: replicas: 1 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:latest resources: requests: nvidia.com/gpu-pod-NVIDIA_H100_80GB_HBM3: 1 limits: nvidia.com/gpu-pod-NVIDIA_H100_80GB_HBM3: 1
Os contentores também requerem autorizações adicionais para aceder às GPUs. Para cada contentor que solicite GPUs, adicione as seguintes autorizações à especificação do contentor:
securityContext: seLinuxOptions: type: unconfined_t
Aplique o ficheiro de manifesto do contentor:
kubectl apply -f ${CONTAINER_MANIFEST_FILE_PATH} \ -n sandbox-gpu-project \ --kubeconfig ${KUBECONFIG}