Ускорение GPU в контейнерах Windows
Для многих контейнерных рабочих нагрузок вполне достаточно вычислительных ресурсов ЦП. Но для определенного класса рабочих нагрузок вычислительная мощность, обеспечиваемая графическими процессорами (GPU), может на порядок ускорить операции, обеспечивая сокращение затрат и повышение пропускной способности.
Графические процессоры уже являются распространенным средством для многих популярных рабочих нагрузок: от традиционных средств визуализации и моделирования до машинного обучения и вывода. Контейнеры Windows поддерживают ускорение GPU для набора технологий DirectX и всех платформ на его основе.
Примечание.
Эта функция доступна в Docker Desktop версии 2.1 и Docker Engine — Enterprise версии 19.03 или более поздней.
Requirements
Чтобы эта функция работала, среда должна соответствовать следующим требованиям.
- Узел контейнера должен работать под управлением Windows Server 2019 либо Windows 10 версии 1809 или более поздней.
- Базовый образ контейнера должен быть mcr.microsoft.com/windows:1809 или более поздней версии. Образы контейнеров Windows Server Core и Nano Server в настоящее время не поддерживаются.
- На узле контейнера должен быть установлен модуль Docker Engine 19.03 или более поздней версии.
- На узле контейнера должен быть GPU с установленными драйверами дисплея с WDDM версии 2.5 или более поздней.
Чтобы проверить версию WDDM драйверов дисплея, запустите средство диагностики DirectX (dxdiag.exe) на узле контейнера. На вкладке "Отображение" средства просмотрите раздел "Драйверы", как показано ниже.
Запуск контейнера с ускорением GPU
Чтобы запустить контейнер с ускорением GPU, выполните следующую команду:
docker run --isolation process --device class/5B45201D-F2F2-4F3B-85BB-30FF1F953599 mcr.microsoft.com/windows:1809
Важно!
На сегодняшний день с помощью GPU можно ускорить только DirectX (и все основанные на этом наборе технологий платформы). Платформы сторонних производителей не поддерживаются.
Поддержка контейнеров Windows с изоляцией Hyper-V
Ускорение GPU для рабочих нагрузок в контейнерах Windows с изоляцией Hyper-V в настоящее время не поддерживается.
Поддержка контейнеров Linux с изоляцией Hyper-V
Ускорение GPU для рабочих нагрузок в контейнерах Linux с изоляцией Hyper-V в настоящее время не поддерживается.
Дополнительные сведения
Полный пример контейнерного приложения DirectX, в котором используется ускорение GPU, см. в статье Пример контейнера DirectX.