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


Подготовка gpu для локальной среды Azure (предварительная версия)

Область применения: Локальная версия Azure, версия 23H2

В этой статье описывается, как подготовить графические единицы обработки (GPU) в локальном экземпляре Azure для вычислительных рабочих нагрузок, работающих на виртуальных машинах Arc и AKS, включенных Azure Arc. Графические процессоры используются для вычислительных рабочих нагрузок, таких как машинное обучение и глубокое обучение.

Внимание

Эта функция сейчас доступна в режиме предварительной версии. Юридические условия, применимые к функциям Azure, которые находятся в состоянии бета-версии, предварительной версии или иным образом еще не выпущены в общедоступной версии, см. на странице Дополнительные условия использования предварительных версий в Microsoft Azure.

Присоединение gpu в локальной среде Azure

Вы можете подключить графические процессоры одним из двух способов для Локальной среды Azure:

  • Дискретное назначение устройств (DDA) позволяет выделить физический GPU рабочей нагрузке. В развертывании DDA виртуализированные рабочие нагрузки выполняются на собственном драйвере и обычно имеют полный доступ к функциям GPU. DDA обеспечивает высокий уровень совместимости приложений и потенциальную производительность.

  • Секционирование GPU (GPU-P) позволяет совместно использовать GPU с несколькими рабочими нагрузками, разделив GPU на выделенные дробные секции.

Рассмотрим следующие функциональные возможности и различия в поддержке двух вариантов использования графических процессоров:

Description Дискретное назначение устройств Секционирование GPU
Модель ресурсов GPU Все устройство Равно секционированного устройства
Плотность виртуальных машин Низкий (один GPU на одну виртуальную машину) Высокий (один GPU для многих виртуальных машин)
Совместимость приложений Все возможности графического процессора, предоставляемое поставщиком (12 DX, OpenGL, CUDA). Все возможности графического процессора, предоставляемое поставщиком (12 DX, OpenGL, CUDA).
Видеопамять графического процессора. К видеопамяти, поддерживаемой графическим процессором. До VRAM, поддерживаемого GPU для каждой секции
Драйвер графического процессора в гостевом режиме. Драйвер поставщика GPU (NVIDIA) Драйвер поставщика GPU (NVIDIA)

Поддерживаемые модели GPU

Чтобы просмотреть полный список поддерживаемых решений и графических процессоров, см . статью "Локальные решения Azure" и выберите поддержку GPU в меню слева.

NVIDIA поддерживает рабочие нагрузки отдельно с помощью программного обеспечения виртуального GPU. Дополнительные сведения см. в статье Microsoft Azure Local — поддерживаемые GPU NVIDIA и проверенные серверные платформы.

Сведения о рабочих нагрузках AKS см. в разделе GPU для AKS для Arc.

Следующие модели GPU поддерживаются с помощью DDA и GPU-P для рабочих нагрузок виртуальных машин Arc:

  • NVIDIA A2
  • NVIDIA A16

Эти дополнительные модели GPU поддерживаются с помощью GPU-P (только) для рабочих нагрузок виртуальных машин Arc:

  • NVIDIA A10
  • NVIDIA A40
  • NVIDIA L4
  • NVIDIA L40
  • NVIDIA L40S

Требования к узлам

Локальный узел Azure должен соответствовать следующим требованиям:

  • Ваша система должна поддерживать локальное решение Azure с поддержкой GPU. Чтобы просмотреть параметры, ознакомьтесь с локальным каталогом Azure.

  • У вас есть доступ к локальной версии Azure, версии 23H2.

  • Необходимо создать однородную конфигурацию для gpu на всех компьютерах в системе. Однородная конфигурация состоит из установки одной и той же модели GPU.

  • Для GPU-P убедитесь, что поддержка виртуализации и SR-IOV включены в BIOS каждого компьютера в системе. Обратитесь к поставщику оборудования, если не удается определить правильный параметр в BIOS.

Подготовка драйверов GPU на каждом узле

Процесс подготовки и установки драйверов GPU для каждого компьютера отличается несколько между DDA и GPU-P. Выполните применимый процесс для вашей ситуации.

Поиск графических процессоров на каждом узле

Сначала убедитесь, что для каждого компьютера не установлен драйвер. Если установлен драйвер узла, удалите драйвер узла и перезапустите компьютер.

После удаления драйвера узла или если у вас нет установленного драйвера, запустите PowerShell от имени администратора с помощью следующей команды:

Get-PnpDevice -Status Error | fl FriendlyName, ClusterId

Устройства GPU должны отображаться в состоянии ошибки, как 3D Video Controller показано в примере выходных данных, в списке понятного имени и идентификатора экземпляра GPU:

[ASRR1N26R02U46A]: PS C:\Users\HCIDeploymentUser\Documents> Get-PnpDevice - Status Error

Status		Class			FriendlyName
------		-----			------------
Error					SD Host Controller
Error					3D Video Controller
Error					3D Video Controller
Error		USB			Unknown USB Device (Device Descriptor Request Failed)

[ASRR1N26R02U46A]: PS C:\Users\HCIDeploymentUser\Documents> Get-PnpDevice - Status Error | f1 InstanceId

InstanceId : PCI\VEN_8086&DEV_18DB&SUBSYS_7208086REV_11\3&11583659&0&E0

InstanceId : PCI\VEN_10DE&DEV_25B6&SUBSYS_157E10DE&REV_A1\4&23AD3A43&0&0010

InstanceId : PCI\VEN_10DE&DEV_25B6&SUBSYS_157E10DE&REV_A1\4&17F8422A&0&0010

InstanceId : USB\VID_0000&PID_0002\S&E492A46&0&2

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

Выполните этот процесс, если используется DDA:

1. Отключение и отключение GPU из узла

Для DDA при удалении драйвера узла или наличии новой локальной установки Azure физический GPU переходит в состояние ошибки. Для продолжения необходимо отключить все устройства GPU. Вы можете использовать диспетчер устройств или PowerShell для отключения и отключения GPU с помощью полученного ClusterID на предыдущем шаге.

$id1 = "GPU_instance_ID"
Disable-PnpDevice -ClusterId $id1 -Confirm:$false
Dismount-VMHostAssignableDevice -ClusterPath $id1 -Force

Убедитесь, что графические процессоры были правильно отключены с хост-компьютера. Теперь графические процессоры будут находиться в Unknown состоянии:

Get-PnpDevice -Status Unknown | fl FriendlyName, ClusterId

Повторите этот процесс для каждого компьютера в системе для подготовки gpu.

2. Скачивание и установка драйвера устранения рисков

Программное обеспечение может включать компоненты, разработанные и принадлежащие КОРПОРАЦИИ NVIDIA или ее лицензиаров. Использование этих компонентов регулируется лицензионным соглашением NVIDIA.

См. документацию ПО NVIDIA, чтобы скачать применимый драйвер для устранения рисков NVIDIA. После скачивания драйвера разверните архив и установите драйвер устранения рисков на каждом хост-компьютере. Используйте следующий скрипт PowerShell, чтобы скачать драйвер устранения рисков и извлечь его:

Invoke-WebRequest -Uri "https://docs.nvidia.com/datacenter/tesla/gpu-passthrough/nvidia_azure_stack_inf_v2022.10.13_public.zip" -OutFile "nvidia_azure_stack_inf_v2022.10.13_public.zip"
mkdir nvidia-mitigation-driver
Expand-Archive .\nvidia_azure_stack_inf_v2022.10.13_public.zip .\nvidia-mitigation-driver

После извлечения файлов драйверов устранения рисков найдите версию для правильной модели GPU и установите ее. Например, если вы установили драйвер устранения рисков NVIDIA A2, выполните следующую команду:

pnputil /add-driver nvidia_azure_stack_A2_base.inf /install /force

Чтобы подтвердить установку этих драйверов, выполните следующую команду:

pnputil /enum-devices OR pnputil /scan-devices

Вы должны видеть правильно определенные графические процессоры в Get-PnpDevice:

Get-PnpDevice -Class Display | fl FriendlyName, ClusterId

Повторите описанные выше действия для каждого узла в локальной среде Azure.

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

Выполните этот процесс, если используется GPU-P:

Скачивание и установка драйвера узла

GPU-P требует драйверов на уровне узла, отличающихся от DDA. Для GPU NVIDIA потребуется драйвер графической графики NVIDIA vGPU на каждом узле и на каждой виртуальной машине, которая будет использовать GPU-P. Дополнительные сведения см. в последней версии документации по NVIDIA vGPU и сведения о лицензировании в руководстве пользователя по лицензированию клиентов.

После идентификации gpu как 3D Video Controller на хост-компьютере скачайте драйвер vGPU узла. С помощью лицензии NVIDIA GRID вы сможете получить соответствующий драйвер узла, .zip файл.

Вам потребуется получить и переместить следующую папку на главный компьютер: \vGPU_<Your_vGPU_version>_GA_Azure_Stack_HCI_Host_Drivers

Перейдите к папке \vGPU_<Your_vGPU_version_GA_Azure_Stack_HCI_Host_Drivers>\Display.Driver и установите драйвер.

pnputil /add-driver .\nvgridswhci.inf /install /force

Чтобы подтвердить установку этих драйверов, выполните следующую команду:

pnputil /enum-devices

Вы должны видеть правильно определенные графические процессоры в Get-PnpDevice:

Get-PnpDevice -Class Display | fl FriendlyName, ClusterId

Вы также можете запустить интерфейс nvidia-smi управления системой NVIDIA для перечисления gpu на хост-компьютере следующим образом:

nvidia-smi

Если драйвер установлен правильно, вы увидите выходные данные, аналогичные следующему примеру:

Wed Nov 30 15:22:36 2022
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 527.27       Driver Version: 527.27       CUDA Version: N/A      |
|-------------------------------+----------------------+----------------------+
| GPU  Name            TCC/WDDM | Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  NVIDIA A2          WDDM  | 00000000:65:00.0 Off |                    0 |
|  0%   24C    P8     5W /  60W |  15192MiB / 15356MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
|   1  NVIDIA A2          WDDM  | 00000000:66:00.0 Off |                    0 |
|  0%   24C    P8     5W /  60W |  15192MiB / 15356MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
 
+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+

Настройка количества разделов GPU

Выполните следующие действия, чтобы настроить количество секций GPU в PowerShell:

Примечание.

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

  1. Подключитесь к компьютеру, число секций GPU которого необходимо настроить.

  2. Выполните команду и перейдите Get-VMHostPartitionableGpu к значениям Name и ValidPartitionCounts .

  3. Выполните следующую команду, чтобы настроить количество секций. Замените GPU-name значением Name и partition-count одним из поддерживаемых счетчиков из значения ValidPartitionCounts:

    Set-VMHostPartitionableGpu -Name "<GPU-name>" -PartitionCount <partition-count>
    

    Например, следующая команда настраивает число секций следующим 4образом:

    PS C:\Users> Set-VMHostPartitionableGpu -Name "\\?\PCI#VEN_10DE&DEV_25B6&SUBSYS_157E10DE&REV_A1#4&18416dc3&0&0000#{064092b3-625e-43bf-9eb5-dc845897dd59}" -PartitionCount 4
    

    Вы можете выполнить команду Get-VMHostPartitionableGpu | FL Name,ValidPartitionCounts,PartitionCount еще раз, чтобы убедиться, что для счетчика секций задано значение 4.

    Ниже приведен пример выходных данных.

    PS C:\Users> Get-VMHostPartitionableGpu | FL Name,ValidPartitionCounts,PartitionCount
    
    Name                    : \\?\PCI#VEN_10DE&DEV_25B6&SUBSYS_157E10DE&REV_A1#4&18416dc3&0&0000#{064092b3-625e-43bf-9eb5-dc845897dd59}
    ValidPartitionCounts    : {16, 8, 4, 2...}
    PartitionCount          : 4
    
    Name                    : \\?\PCI#VEN_10DE&DEV_25B6&SUBSYS_157E10DE&REV_A1#4&5906f5e&0&0010#{064092b3-625e-43bf-9eb5-dc845897dd59}
    ValidPartitionCounts    : {16, 8, 4, 2...}
    PartitionCount          : 4
    
  4. Чтобы сохранить конфигурацию однородной, повторите шаги конфигурации счетчика секций на каждом компьютере в вашей системе.

Требования к гостям

Управление GPU поддерживается для следующих рабочих нагрузок виртуальных машин Arc:

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