Поделиться через


Совместное использование GPU на устройстве Azure Stack Edge Pro c GPU

Графический процессор (GPU) — это специализированный обработчик, предназначенный для ускорения отрисовки графики. Графические процессоры могут одновременно обрабатывать много фрагментов данных, что делает их полезными для машинного обучения, редактирования видео и игровых приложений. Помимо ЦП для вычислений общего назначения, устройства Azure Stack Edge Pro с GPU могут содержать один или два графических процессора NVIDIA Tesla T4 для рабочих нагрузок с ресурсоемкими вычислениями, таких как операции вывода с аппаратным ускорением. Подробнее см. в разделе Графический процессор NVIDIA Tesla T4.

Сведения о совместном использовании GPU

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

Использование GPU с виртуальными машинами

На устройстве Azure Stack Edge Pro нельзя предоставить общий доступ к GPU при развертывании рабочих нагрузок виртуальных машин. GPU можно сопоставить только с одной виртуальной машиной. Это означает, что на устройстве с одним GPU может быть только одна виртуальная машина с GPU, а на устройстве с двумя GPU — две виртуальные машины. При использовании виртуальных машин с GPU на устройстве со службой Kubernetes, настроенной для контейнерных рабочих нагрузок, необходимо учитывать и другие факторы. Подробнее см. в статье о виртуальных машинах с GPU и Kubernetes.

Использование GPU с контейнерами

При развертывании контейнерных рабочих нагрузок общий доступ к GPU можно предоставить несколькими способами на аппаратном и программном уровне. Если на устройстве Azure Stack Edge Pro установлен графический процессор Tesla T4, то общий доступ можно предоставить только на программном уровне. Чтобы предоставить общий доступ к GPU устройства на программном уровне, используются следующие два подхода.

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

    • Этот метод позволяет указать один, два или ни одного GPU. Количество используемых GPU нельзя выразить дробным числом.
    • С одним GPU можно сопоставить несколько модулей, но один и тот же модуль нельзя сопоставить с двумя и более GPU.
    • Выходные данные NVIDIA SMI показывают общую загрузку GPU, включая использование памяти.

    Подробнее см. в статье о том, как развернуть модуль IoT Edge, использующий GPU, на устройстве.

  • Второй подход связан с включением многозадачной службы (MPS) на графических процессорах Nvidia. MPS — это служба среды выполнения, которая обеспечивает параллельное выполнение нескольких процессов, использующих CUDA, на одном общем GPU. С MPS операции ядра и копирования памяти из разных процессов GPU могут перекрываться, чтобы добиться максимально эффективного использования ресурсов. Подробнее см. в разделе Многозадачная служба.

    При использовании такого подхода следует учитывать следующие предостережения.

    • MPS позволяет указать дополнительные флаги в развернутой службе GPU.
    • С помощью MPS можно задать дробные значения использования и тем самым ограничить использование каждого приложения, развернутого на устройстве. Можно указать процент использования GPU для каждого приложения в разделе env файла deployment.yaml, добавив следующий параметр:
    // Example: application wants to limit gpu percentage to 20%
    
        env:
            - name: CUDA_MPS_ACTIVE_THREAD_PERCENTAGE
                value: "20"
    

Использование GPU

Если GPU совместно используется контейнерными рабочими нагрузками, развернутыми на устройстве, можно задействовать интерфейс управления системами NVIDIA (NVIDIA SMI). NVIDIA SMI — это служебная программа командной строки, которая помогает управлять устройствами с графическими процессорами NVIDIA и осуществлять их мониторинг. Подробнее см. в разделе Интерфейс управления системами NVIDIA.

Чтобы просмотреть сведения об использовании GPU, сначала подключитесь к интерфейсу PowerShell устройства. Запустите команду Get-HcsNvidiaSmi и просмотрите выходные данные NVIDIA SMI. Можно также посмотреть, как меняется использование GPU, включив MPS, а затем развернув несколько рабочих нагрузок на устройстве. Подробнее см. в статье Включение многозадачной службы.

Следующие шаги