Scheduling Inference Services based on the CUDA version
Introduction
В кластере Kubernetes несоответствие моделей GPU и версий драйверов CUDA на разных GPU-узлах приводит к следующим проблемам:
-
Несовпадение версий: версия CUDA runtime, используемая приложениями, может быть несовместима с версией драйвера CUDA на некоторых узлах, что приводит к сбоям или проблемам с производительностью.
-
Проблемы с планированием: встроенный планировщик Kubernetes не учитывает зависимости от версии CUDA и не может гарантировать, что приложения будут запущены на GPU-узлах с совместимыми версиями.
-
Высокие затраты на обслуживание: ручное управление зависимостями версий CUDA между узлами и приложениями увеличивает операционную сложность.
В этом документе представлен пошаговый гид по планированию inference-сервисов на основе версии CUDA runtime и версии драйвера Nvidia. С помощью этих настроек можно решить проблему несовпадения версий CUDA Runtime и CUDA Driver на уровне планирования Kubernetes, чтобы обеспечить запуск приложений на совместимых GPU-узлах.
Steps
Добавление версии CUDA в метки узлов
-
На каждом GPU-узле выполните следующую команду для получения поддерживаемой версии CUDA runtime:
Например, вывод может быть 12.4.
-
На управляющем узле добавьте метку GPU-узлу с соответствующими основной и дополнительной версиями:
Если в вашем кластере много GPU-узлов, вручную их маркировать сложно. Вы можете установить кластерный плагин Node Feature Discovery.
Развернув плагин Node Feature Discovery (NFD) и включив расширение GFD, GPU-узлы будут автоматически маркироваться версией CUDA.
Кластерный плагин Node Feature Discovery доступен в Customer Portal. Для получения дополнительной информации обратитесь в Consumer Support.
Планирование inference-сервисов на основе версии CUDA
Начиная с Alauda AI 1.5, продукт автоматически планирует pod inference-сервисов по версии CUDA. Для более ранних версий можно выполнить следующие шаги:
- Определите, какой ClusterServingRuntime необходимо выбрать при создании inference-сервиса.
- Разберите метку ClusterServingRuntime:
Если
cpaas.io/accelerator-typeравен nvidia, дополнительно разберитеcpaas.io/cuda-version(пример 11.8). - Добавьте поле nodeAffinity в описание inference-сервиса, пример: