Ускорение GPU в контейнерах WindowsGPU Acceleration in Windows containers

Для многих контейнерных рабочих нагрузок вполне достаточно вычислительных ресурсов ЦП.For many containerized workloads, CPU compute resources provide sufficient performance. Тем не менее для определенного класса рабочих нагрузок вычислительная мощность, обеспечиваемая графическими процессорами (GPU), может на порядок ускорить операции, обеспечивая сокращение затрат и повышение пропускной способности.However, for a certain class of workload, the massively parallel compute power offered by GPUs (graphics processing units) can speed up operations by orders of magnitude, bringing down cost and improving throughput immensely.

Графические процессоры уже являются распространенным средством для многих популярных рабочих нагрузок: от традиционных средств визуализации и моделирования до машинного обучения и вывода.GPUs are already a common tool for many popular workloads, from traditional rendering and simulation to machine learning training and inference. Контейнеры Windows поддерживают ускорение GPU для набора технологий DirectX и всех платформ на его основе.Windows containers support GPU acceleration for DirectX and all the frameworks built on top of it.

Примечание

Эта функция доступна в Docker Desktop версии 2.1 и Docker Engine — Enterprise версии 19.03 или более поздней.This feature is available in Docker Desktop, version 2.1 and Docker Engine - Enterprise, version 19.03 or later.

ТребованияRequirements

Чтобы эта функция работала, среда должна соответствовать следующим требованиям.For this feature to work, your environment must meet the following requirements:

  • Узел контейнера должен работать под управлением Windows Server 2019 либо Windows 10 версии 1809 или более поздней.The container host must be running Windows Server 2019 or Windows 10, version 1809 or newer.
  • Базовый образ контейнера должен быть mcr.microsoft.com/windows:1809 или более поздней версии.The container base image must be mcr.microsoft.com/windows:1809 or newer. Образы контейнеров Windows Server Core и Nano Server в настоящее время не поддерживаются.Windows Server Core and Nano Server container images are not currently supported.
  • На узле контейнера должен быть установлен модуль Docker Engine 19.03 или более поздней версии.The container host must be running Docker Engine 19.03 or newer.
  • На узле контейнера должен быть GPU с установленными драйверами дисплея с WDDM версии 2.5 или более поздней.The container host must have a GPU running display drivers version WDDM 2.5 or newer.

Чтобы проверить версию WDDM драйверов дисплея, запустите средство диагностики DirectX (dxdiag.exe) на узле контейнера.To check the WDDM version of your display drivers, run the DirectX Diagnostic Tool (dxdiag.exe) on your container host. На вкладке "Экран" средства найдите раздел "Драйверы", как показано ниже.In the tool’s “Display” tab, look in the “Drivers” section as indicated below.

Dxdiag

Запуск контейнера с ускорением GPURun a container with GPU acceleration

Чтобы запустить контейнер с ускорением GPU, выполните следующую команду:To start a container with GPU acceleration, run the following command:

docker run --isolation process --device class/5B45201D-F2F2-4F3B-85BB-30FF1F953599 mcr.microsoft.com/windows:1809

Важно!

На сегодняшний день с помощью GPU можно ускорить только DirectX (и все основанные на этом наборе технологий платформы).DirectX (and all the frameworks built on top of it) are the only APIs that can be accelerated with a GPU today. Платформы сторонних производителей не поддерживаются.3rd party frameworks are not supported.

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

Ускорение GPU для рабочих нагрузок в контейнерах Windows с изоляцией Hyper-V в настоящее время не поддерживается.GPU acceleration for workloads in Hyper-V-isolated Windows containers is not currently supported.

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

Ускорение GPU для рабочих нагрузок в контейнерах Linux с изоляцией Hyper-V в настоящее время не поддерживается.GPU acceleration for workloads in Hyper-V-isolated Linux containers is not currently supported.

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

Полный пример контейнерного приложения DirectX, в котором используется ускорение GPU, см. в статье Пример контейнера DirectX.For a complete example of a containerized DirectX app that leverages GPU acceleration, see DirectX container sample.