Совместное использование GPU на устройстве Azure Stack Edge Pro c GPU
Графический процессор (GPU) — это специализированный обработчик, предназначенный для ускорения отрисовки графики. Графические процессоры могут одновременно обрабатывать много фрагментов данных, что делает их полезными для машинного обучения, редактирования видео и игровых приложений. Помимо ЦП для вычислений общего назначения, устройства GPU Azure Stack Edge Pro могут содержать один или два GPU NVIDIA Tesla T4 для вычислительных рабочих нагрузок, таких как аппаратное ускорение вывода. Дополнительные сведения см. в разделе NVIDIA Tesla T4 GPU.
Сведения о совместном использовании 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, на устройстве.
Второй подход требует включения многопроцессной службы на GPU 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 GPU и отслеживать их. Дополнительные сведения см. в разделе "Интерфейс управления системой NVIDIA".
Чтобы просмотреть сведения об использовании GPU, сначала подключитесь к интерфейсу PowerShell устройства. Выполните команду и просмотрите выходные Get-HcsNvidiaSmi
данные NVIDIA SMI. Можно также посмотреть, как меняется использование GPU, включив MPS, а затем развернув несколько рабочих нагрузок на устройстве. Подробнее см. в статье Включение многозадачной службы.