Планирование служб инференса на основе версии CUDA
Введение
В кластере Kubernetes несоответствия моделей GPU и версий драйверов CUDA на разных узлах GPU приводят к следующим проблемам:
-
Несовпадение версий: версия CUDA runtime, используемая приложениями, может быть несовместима с версией драйвера CUDA на некоторых узлах, что приводит к сбоям или проблемам с производительностью.
-
Проблемы с планированием: встроенный планировщик Kubernetes не учитывает зависимости от версии CUDA и не может гарантировать, что приложения будут запущены на узлах GPU с совместимыми версиями.
-
Высокие затраты на обслуживание: ручное управление зависимостями версий CUDA между узлами и приложениями увеличивает сложность эксплуатации.
В этом документе представлен пошаговый гид по планированию служб инференса на основе версии CUDA runtime и версии драйвера Nvidia. С помощью этих настроек можно решить проблему несовпадения версий CUDA Runtime и CUDA Driver на уровне планирования Kubernetes, чтобы обеспечить запуск приложений на совместимых узлах GPU.
Шаги
Добавление версии 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 для получения дополнительной информации.
Планирование служб инференса на основе версии CUDA
Начиная с версии Alauda AI 1.5, продукт автоматически планирует pod служб инференса по версии CUDA. Для более ранних версий можно выполнить следующие шаги:
- Определите, какой ClusterServingRuntime необходимо выбрать при создании службы инференса.
- Разберите метку ClusterServingRuntime:
Если
cpaas.io/accelerator-typeравен nvidia, дополнительно разберитеcpaas.io/cuda-version(например, 11.8). - Добавьте поле nodeAffinity в службу инференса, пример: