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


Ускорение GPU в контейнерах Windows

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

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

Заметка

Эта функция доступна в Docker Desktop версии 2.1 и Подсистеме Docker — Enterprise, версии 19.03 или более поздней.

Необходимые условия

Для работы этой функции среда должна соответствовать следующим требованиям:

  • Узел контейнера должен работать под управлением 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

Важно

DirectX (и все платформы, созданные на основе его) являются единственными API, которые можно ускорить с помощью GPU сегодня. Сторонние платформы не поддерживаются.

Поддержка контейнеров Windows с изоляцией Hyper-V

Ускорение GPU для рабочих нагрузок в контейнерах Windows с изоляцией Hyper-V в настоящее время не поддерживается.

Поддержка контейнеров Linux с изоляцией Hyper-V

Ускорение GPU для рабочих нагрузок в контейнерах Linux с изоляцией Hyper-V в настоящее время не поддерживается.

Дополнительные сведения

Полный пример контейнерного приложения DirectX, использующее ускорение GPU, см. в примере контейнера DirectX.