Запуск рабочих нагрузок с GPU
Кластер Managed Service for Kubernetes позволяет запускать рабочие нагрузки на видеопроцессорах (GPU), что может быть полезно для задач с особыми вычислительными требованиями.
Чтобы запустить рабочие нагрузки с GPU на подах кластера Managed Service for Kubernetes:
Если созданные ресурсы вам больше не нужны, удалите их.
Перед началом работы
-
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра
--folder-name
или--folder-id
. -
Создайте группы безопасности для кластера Managed Service for Kubernetes и входящих в него групп узлов.
Важно
От настройки групп безопасности зависит работоспособность и доступность кластера, а также запущенных в нем сервисов и приложений.
-
Создайте кластер Managed Service for Kubernetes любой подходящей конфигурации. При создании укажите группы безопасности, подготовленные ранее.
-
Создайте группу узлов Managed Service for Kubernetes с настройками:
- Платформа — выберите
Есть GPU
→Intel Broadwell with NVIDIA® Tesla v100
. - GPU — укажите нужное количество GPU.
- Группы безопасности — выберите созданные ранее группы безопасности.
- Платформа — выберите
-
Установите kubectl
и настройте его на работу с созданным кластером.
Создайте под с GPU
-
Сохраните спецификацию для создания пода с GPU в YAML-файл с названием
cuda-vector-add.yaml
:apiVersion: v1 kind: Pod metadata: name: cuda-vector-add spec: restartPolicy: OnFailure containers: - name: cuda-vector-add # https://github.com/kubernetes/kubernetes/blob/v1.7.11/test/images/nvidia-cuda/Dockerfile image: "registry.k8s.io/cuda-vector-add:v0.1" resources: limits: nvidia.com/gpu: 1 # Запрос 1 GPU.
Подробнее о спецификации для создания пода читайте в документации Kubernetes
. -
Создайте под с GPU:
kubectl create -f cuda-vector-add.yaml
Проверьте работу пода
-
Посмотрите информацию о созданном поде:
kubectl describe pod cuda-vector-add
Результат:
Name: cuda-vector-add Namespace: default Priority: 0 ... Normal Pulling 16m kubelet, cl1i7hcbti99********-ebyq Successfully pulled image "registry.k8s.io/cuda-vector-add:v0.1" Normal Created 16m kubelet, cl1i7hcbti99********-ebyq Created container cuda-vector-add Normal Started 16m kubelet, cl1i7hcbti99********-ebyq Created container
-
Посмотрите логи работы пода:
kubectl logs -f cuda-vector-add
Результат:
[Vector addition of 50000 elements] Copy input data from the host memory to the CUDA device CUDA kernel launch with 196 blocks of 256 threads Copy output data from the CUDA device to the host memory Test PASSED Done
Удалите созданные ресурсы
Удалите ресурсы, которые вы больше не будете использовать, чтобы за них не списывалась плата:
- Удалите кластер Managed Service for Kubernetes.
- Если вы зарезервировали для кластера Managed Service for Kubernetes публичный статический IP-адрес, удалите его.