Использовать Службу Azure Kubernetes для размещения рабочих нагрузок на основе GPU.

В этой статье описывается, как эффективно запускать рабочие нагрузки, использующие узлы графической обработки (GPU) в кластере Службы Azure Kubernetes (AKS). Узнайте, как выбрать правильный номер SKU, использовать узлы GPU для обучения моделей машинного обучения и использовать узлы GPU для выполнения вывода в AKS.

Сценарии

Рабочие нагрузки GPU могут быть дорогостоящими для выполнения. Чтобы избежать ненужных затрат, знают, когда следует развертывать узлы на основе GPU в кластерах AKS.

Графические процессоры специально разрабатываются для обработки графики, искусственного интеллекта, машинного обучения и специализированных задач, что делает их идеальными для работы с вычислительно интенсивными нагрузками. Центральные единицы обработки (ЦП) эффективно управляют сложной логикой и ветвлением. Графические процессоры оптимизированы для пропускной способности и эффективно обрабатывают основные арифметические и векторные операции.

Чтобы определить, когда следует использовать gpu для рабочих нагрузок AKS, необходимо понимать оптимизацию GPU, интенсивность вычислений и другие факторы, влияющие на производительность. Чтобы лучше узнать об использовании GPU для рабочих нагрузок AKS, рассмотрим следующие примеры рабочих нагрузок, которые пользуются узлами GPU в кластере AKS.

Обработка и анализ данных

Используйте графические процессоры для ускорения предварительной обработки данных, проектирования признаков и обучения моделей в рабочих процессах обработки и анализа данных. Чтобы эффективно использовать графические процессоры, платформы, такие как RAPIDS и поддержка GPU в Dask , расширяют популярные библиотеки обработки данных, такие как pandas и scikit-learn.

Программные средства с открытым исходным кодом, такие как движки SQL-запросов и столбцовые базы данных, например HeavyDB, используют GPU для выполнения запросов и анализа больших наборов данных.

машинное и глубокое обучение.

Популярные платформы машинного обучения и глубокого обучения, такие как TensorFlow, PyTorch, vLLM и Сервер вывода Triton , получают преимущества от gpu, так как они ускоряют задачи, обучающие модели и выполняющие вывод. Например, Машинное обучение Azure поддерживает высокопроизводительное развертывание модели на управляемой сетевой конечной точке с использованием Triton Inference Server.

Модели глубокого обучения используют сложные нейронные сети. Параллельная обработка на GPU ускоряет их вычисления. Графические процессоры обеспечивают высоко эффективное умножение матриц и операции свертывания, которые являются фундаментальными операциями в глубоком обучении.

Вы также можете использовать графические процессоры для ускорения задач, таких как классификация изображений, обнаружение объектов, обработка естественного языка и распознавание речи.

Компьютерное зрение и обработка изображений

Задачи компьютерного зрения интерпретируют визуальные данные для извлечения значимых сведений. Эти задачи отображаются в приложениях, использующих ИИ, таких как автономные транспортные средства, медицинская визуализация, системы наблюдения и дополненная реальность. Графические процессоры используют параллельную обработку для эффективной обработки данных изображений большого масштаба и сложных вычислений для таких задач, как обнаружение объектов, классификация изображений и извлечение признаков.

Обработка и потоковая передача видео

Рабочие нагрузки, которые перекодируют, кодируют и транслируют видео, являются ресурсоемкими, особенно если у них высокое разрешение. Графические процессоры обеспечивают эффективную платформу для низкой задержки, высокой пропускной способности видеообработки в таких приложениях, как потоки спортивных событий и корпоративные видео.

Узлы агента с поддержкой GPU разгружают графически-усиленные задачи на GPU в средах виртуального рабочего стола. Возможности кодирования видео и декодирования, которые используют графические процессоры, поддерживают потоковую передачу видео в режиме реального времени, транскодирование и аналитику.

Для ускорения задач компьютерного зрения, таких как обнаружение объектов, отслеживание объектов и обработка изображений или видео, используйте платформы, такие как OpenCV, OpenCL, NVIDIA CUDA и NVIDIA cuDNN.

Игровые платформы и облачные игровые службы используют графические процессоры для отрисовки высококачественной графики и потоковой передачи плавного игрового процесса через Интернет.

Высокопроизводительные вычисления

Для высокопроизводительных вычислений (HPC) часто требуются сложные имитации, числовый анализ и научные вычисления. Для эффективного выполнения этих задач можно использовать графические процессоры для параллелизации рабочей нагрузки между несколькими ядрами. Примеры приложений HPC, которым требуется массовая параллельная обработка энергии, включают научные моделирования, прогнозирование погоды, динамику вычислительной жидкости и молекулярное моделирование. Графические процессоры поддерживают параллельные вычисления и ускоряют рабочие нагрузки HPC. Они также повышают производительность в научных и исследовательских вычислениях.

Для ускорения приложений HPC, таких как NVIDIA CUDA, OpenCL и OpenACC , предоставляют API и библиотеки с поддержкой GPU.

Геномический анализ и биоинформатика

Рабочие нагрузки в области здравоохранения и наук о жизни, такие как анализ генома и биоинформатические приложения, обработка генетических данных, таких как последовательности ДНК и структуры белка. Они полагаются на сложные алгоритмы для выравнивания последовательностей, определения вариантов и анализа геномических данных. Графические процессоры ускоряют рабочие процессы анализа генома, чтобы исследователи могли быстро обрабатывать данные и выявлять аналитические сведения.

Модели генеративного ИИ

Языковые модели, такие как OpenAI GPT, Meta Llama, Falcon и Phi open models, могут воспользоваться преимуществами возможностей параллельной обработки GPU. Используйте графические процессоры для запуска этих моделей и повышения производительности.

Графические процессоры ускоряют обучение и вывод задач, которые включают сложные вычисления и большие объемы данных. Gpu имеют возможности параллельной обработки, которые разделяют большие вычислительные задачи заданной модели на небольшие подзадачи, которые выполняются одновременно. Этот процесс уменьшает задержку и повышает производительность.

Языковые модели часто имеют сложные нейронные сети с несколькими слоями и параметрами, что может увеличить вычислительный спрос. Графические процессоры ускоряют ключевые операции в обработке языка, такие как умножение матрицы и свертки, что сокращает время, необходимое для обучения и вывода.

Графические процессоры обеспечивают достаточную емкость памяти, пропускную способность и мощность обработки для обработки приложений на основе языковой модели, имеющих диалоговые интерфейсы и создающие текст. Например, улучшения GPU предоставляют ответы с низкой задержкой для пользователей, взаимодействующих с чат-ботами и помощниками по искусственному интеллекту.

Не все рабочие нагрузки получают преимущества от узлов агента с поддержкой GPU. В некоторых случаях ЦП достаточно. Например, рабочие нагрузки, которые являются главным образом входными и выходными или не требуют больших вычислений, могут не воспользоваться графическими процессорами.

Истории клиентов

Многие клиенты Майкрософт используют преимущества рабочих нагрузок GPU для инноваций для своих клиентов. Рассмотрим следующие примеры:

Рекомендации по развертыванию рабочей нагрузки GPU

AKS предоставляет различные варианты развертывания пулов узлов и рабочих нагрузок с поддержкой GPU в Linux и Windows.

Развертывание рабочих процессов Linux

  • Создайте пул узлов с поддерживаемой виртуальной машиной с поддержкой GPU, использующую ГРАФИЧЕСКИе процессоры NVIDIA или GPU AMD. Следуйте инструкциям поставщика GPU, чтобы установить соответствующий модуль устройства Kubernetes. Этот метод не позволяет обновлять существующий пул узлов для добавления gpu.

  • Ознакомьтесь с ограничениями при использовании пула узлов с поддержкой GPU в Azure Linux. AKS не применяет автоматические исправления безопасности, а поведение по умолчанию для кластера неуправляемо.

  • Используйте селекторы узлов Kubernetes, сходство узлов и таинты и терпимости при планировании рабочих нагрузок в пулах узлов с поддержкой GPU.

Развертывание рабочих задач Windows

  • Создайте пул узлов с помощью поддерживаемой виртуальной машины с поддержкой GPU. Этот подход создает пул узлов Windows с поддержкой GPU. AKS автоматически устанавливает драйверы и подключаемый модуль устройства Kubernetes. Этот метод не позволяет обновлять существующий пул узлов для добавления gpu.

    При выборе поддерживаемой виртуальной машины с поддержкой GPU AKS автоматически устанавливает необходимый драйвер NVIDIA CUDA или GRID. Некоторые рабочие нагрузки зависят от конкретного драйвера, который может повлиять на развертывание. Для размеров виртуальных машин серии NC и серии ND AKS устанавливает драйвер CUDA. Для размеров виртуальных машин серии NV AKS устанавливает драйвер GRID.

  • Ознакомьтесь с ограничениями при использовании пула узлов Windows.

  • Используйте селекторы узлов Kubernetes, связь узлов, таинты и допуски при планировании рабочих нагрузок в пулах узлов с включенной поддержкой GPU.

Замечание

Windows GPU: это функция в предварительном доступе. Необходимо зарегистрировать флаг компонента WindowsGPUPreview.

Оператор GPU NVIDIA

Используйте оператор GPU NVIDIA для развертывания ресурсов GPU и управления ими в кластерах Kubernetes. Оператор автоматизирует установку, настройку и обслуживание необходимых компонентов программного обеспечения. Этот подход помогает обеспечить оптимальное использование GPU NVIDIA для ресурсоемких рабочих нагрузок, таких как ИИ и машинное обучение.

Оператор GPU NVIDIA автоматически управляет компонентами программного обеспечения NVIDIA, которые необходимы для развертывания GPU, например подключаемый модуль устройства NVIDIA для Kubernetes и контейнерный runtime NVIDIA. Оператор автоматически устанавливает драйвер. Дополнительные сведения см. в разделе "Оператор GPU NVIDIA".

Если вы хотите улучшить управление и гибкость для расширенных рабочих нагрузок GPU, используйте оператор NVIDIA GPU с узлами AKS с поддержкой GPU. Оператор не поддерживает графические процессоры Windows.

Учитывайте приведенные ниже рекомендации.

  • Используйте оператор GPU NVIDIA для выполнения расширенных конфигураций GPU, таких как выбор версии драйвера и срез времени GPU.

  • Перед использованием оператора пропустите автоматическую установку драйвера.

  • Задайте минимальное число 1 при использовании оператора с автомасштабированием кластера.

Замечание

Корпорация Майкрософт не поддерживает или не управляет обслуживанием и совместимостью драйверов NVIDIA в процессе развертывания образа узла при использовании оператора GPU NVIDIA. Дополнительные сведения см. в рекомендациях по GPU для AKS.

Развертывание рабочей нагрузки GPU для языковых моделей

Оператор цепочки инструментов ИИ упрощает запуск языковых моделей с открытым кодом, таких как Falcon, в кластере Kubernetes. Вы можете развернуть оператор цепочки инструментов ИИ в кластере AKS в качестве управляемой функции для AKS. Оператор цепочки инструментов искусственного интеллекта использует Karpenter для автоматической подготовки и развертывания узлов GPU на основе спецификации в определении пользовательского ресурса рабочей области выбранной модели. Оператор цепочки инструментов ИИ создает сервер вывода в качестве конечной точки для языковой модели и сокращает время подключения, чтобы сосредоточиться на операциях машинного обучения вместо настройки и обслуживания инфраструктуры.

Чтобы улучшить операции искусственного интеллекта в AKS, оператор цепочки инструментов ИИ предоставляет следующие возможности:

  • Управляет образами контейнеров: Используйте образы контейнеров для управления языковыми моделями. Оператор цепочки инструментов ИИ предоставляет HTTP-сервер, чтобы использовать предустановленные рабочие области модели для выполнения вывода, средств вызова и использования протокола контекста модели (MCP).

  • Поддерживает модели «принеси свои собственные» (BYO): Используйте оператор цепочки инструментов искусственного интеллекта для интеграции предварительно обученных языковых моделей, применяя пользовательский шаблон развертывания и HuggingFace Transformers для вывода.

  • Настраивает оборудование GPU: Оператор цепочки инструментов ИИ автоматически применяет предварительно настроенные конфигурации на основе требований модели. Вам не нужно вручную настраивать параметры развертывания, чтобы подстроиться под оборудование GPU, или устранять дорогостоящие ошибки переполнения памяти GPU (OOM).

  • Предоставляет встроенный мониторинг инференса: При развертывании модели с помощью системы инференса vLLM по умолчанию оператор цепочки инструментов ИИ показывает метрики vLLM в режиме реального времени через Prometheus и Grafana и предоставляет метрики производительности инференса и работоспособности в кластере AKS.

Дополнительные сведения о операторе цепочки инструментов ИИ см. в следующих ресурсах:

Масштабирование рабочей нагрузки и кластера

Для сценариев искусственного интеллекта и машинного обучения необходимо различать рабочие нагрузки обучения и вывод с предварительно обученными моделями. Чтобы создать и обучить модель машинного обучения, используйте вычислительные ресурсы GPU, предназначенные для глубокого обучения и параллелизации вычислений ИИ. Для обучения часто требуется постепенно масштабировать ресурсы GPU и распределять большие объемы данных между GPU, чтобы обеспечить высокую точность с помощью параллелизма данных.

Сегментирование моделей — это распространенная расширенная методика деления этапов обучения модели. Вы можете назначить графические процессоры отдельным задачам и максимизировать их использование, включив gpu с несколькими экземплярами (MIG) в пулах узлов GPU NVIDIA в AKS. Графические процессоры могут увеличивать масштаб и распределять рабочие задачи HPC, такие как виртуальные машины NV и ND на Azure. Эта возможность помогает поддерживать высокий уровень использования ресурсов и уменьшать вмешательство пользователей для процессов обучения машинного обучения, которые являются длительными и дорогостоящими.

Кроме того, для вывода можно использовать предварительно обученные, модели ИИ с открытым исходным кодом и машинного обучения. Начните с популярных моделей, таких как Llama, Falcon или Phi, как более экономичный вариант, чем создание и обучение полностью настраиваемой языковой модели. Дополнительные сведения см. в разделе "Языковые модели" в AKS.

При использовании предварительно обученных моделей для вывода использование ресурсов может меняться на основе объема обрабатываемых данных. При обработке данных в реальном времени с помощью выбранной модели трафик может возрасти в зависимости от размеров модели и её требований. Сохраняйте низкую задержку во время процесса вывода. Чтобы эффективно использовать графические процессоры для высокой производительности и низкой задержки, проводите распределённое выводы с помощью моделей, поддерживаемых оператором ИИ-инструментов. Этот подход расширяет возможности вычислений, чтобы включить SKU с меньшим количеством GPU, содержащие один или два GPU, обеспечивает высокий уровень доступности в регионах Azure и снижает затраты на обслуживание.

Мониторинг работоспособности GPU

Проблемы с GPU могут быть трудными для обнаружения и часто вызывать незаметные ошибки или ухудшать производительность вместо окончательной поломки. Эти проблемы добавляют времени на устранение неполадок, потребляют ресурсы без необходимости и увеличивают эксплуатационные затраты.

Мониторинг работоспособности GPU в AKS обеспечивает последовательные и частые проверки событий узла и условий. Детектор проблем узлов (NPD) сообщает об этих событиях по определенным размерам виртуальных машин GPU. NPD выдает ключевые сигналы, такие как неверное количество GPU или ошибки сетевого подключения непосредственно в условиях узла Kubernetes, что помогает командам выявлять и реагировать на проблемы. Этот подход поддерживает автоматическое оповещение, кордонирование узлов и перепланирование рабочих нагрузок. Она также помогает поддерживать надежность приложения и производительность в вычислительных средах.

Управление затратами на рабочую нагрузку GPU

Графические процессоры могут увеличить затраты. Отслеживайте рабочие нагрузки, чтобы понять, что влияет на затраты на GPU и находить возможности для оптимизации. Чтобы повысить видимость затрат, используйте средство анализа затрат AKS.

В следующих сценариях можно воспользоваться видимостью затрат.

Стоимость размера виртуальной машины с поддержкой GPU

Выберите нужный размер виртуальной машины с поддержкой GPU, чтобы оптимизировать затраты на запуск GPU. Ежедневные затраты могут отличаться в зависимости от выбранного размера виртуальной машины. Графические процессоры A100 являются дорогостоящими, поэтому избегайте их использования, если ваша рабочая нагрузка не требует их. Анализ затрат AKS показывает ежедневные затраты для каждой виртуальной машины и показывает связанные затраты на каждую рабочую нагрузку, которая выполняется на виртуальной машине с поддержкой GPU. Используйте эти данные для оценки того, имеется ли у вас соответствующий размер виртуальной машины или требуется более экономичный вариант.

Затраты на простой

После создания пула узлов с поддержкой GPU вы несете расходы на ресурс Azure, даже если не запускаете рабочую нагрузку GPU. Затраты на простой представляют стоимость доступной емкости ресурсов, которую рабочие нагрузки не используют. Эти затраты могут быстро добавиться, если у вас есть несколько неиспользуемых узлов. Чтобы избежать высоких затрат на простой, создайте пулы узлов только при выполнении рабочей нагрузки и используйте такие методы, как функция остановки кластера , если не выполняете рабочую нагрузку. Анализ затрат AKS показывает затраты из-за простоя для каждого узла.

Избыточное выделение ресурсов и недоиспользование ресурсов

Перепредоставление происходит, когда вы выделяете больше ресурсов, чем необходимо для pod. Чрезмерное выделение приводит к потере ресурсов и недостаточному использованию. Узел продолжает резервировать избыточные ресурсы, даже если рабочие нагрузки не используют их. Чтобы уменьшить избыточное развертывание, используйте вертикальное автомасштабирование pod, чтобы задавать точные запросы и ограничения на основе предыдущих шаблонов использования.

Недостаточное использование может возникать, если ваши нагрузки не используют графические процессоры в полной мере. Рассмотрите дополнительные методы для совместного использования и секционирования GPU. Вместо развертывания нескольких узлов можно использовать один узел с секциями для максимально эффективного использования GPU. Эти методы помогают выделить соответствующее количество ускорения GPU для каждой рабочей нагрузки, что может повысить использование и снизить эксплуатационные затраты на развертывание.

Развертывания рабочих нагрузок GPU Linux в AKS поддерживают gpu с несколькими экземплярами. Используйте эту функцию для секционирования GPU NVIDIA A100 и H100 на до семи независимых экземпляров. Каждый экземпляр имеет собственную память и стриминговый мультипроцессор.

NVIDIA поддерживает другие техники разделения, такие как временная нарезка и многопроцессная служба (MPS). Чтобы вручную применить эти конфигурации, используйте оператор GPU NVIDIA.

В сложных сценариях можно улучшить упаковку корзин ресурсов на узлах AKS и оптимизировать использование ресурсов GPU в кластере. Конфигурации планировщика можно задать с помощью одного или нескольких встроенных (или in-tree) плагинов для планирования Kubernetes, чтобы внедрить стратегии размещения рабочих нагрузок, отличные от планировщика AKS по умолчанию. Дополнительные сведения см. в разделе концепций конфигурации планировщика для размещения рабочих нагрузок в AKS (предварительная версия).

Соавторы

Корпорация Майкрософт поддерживает эту статью. Следующие авторы написали эту статью.

Основной автор:

  • Ayobami Ayodeji | Старший менеджер по программам

Другие участники:

Чтобы просмотреть неопубликованные профили LinkedIn, войдите в LinkedIn.

Дальнейшие шаги