Подготовка 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.
Подключитесь к компьютеру, число секций GPU которого необходимо настроить.
Выполните команду и перейдите
Get-VMHostPartitionableGpu
к значениям Name и ValidPartitionCounts .Выполните следующую команду, чтобы настроить количество секций. Замените
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
Чтобы сохранить конфигурацию однородной, повторите шаги конфигурации счетчика секций на каждом компьютере в вашей системе.
Требования к гостям
Управление GPU поддерживается для следующих рабочих нагрузок виртуальных машин Arc:
Виртуальные машины 2-го поколения
Поддерживаемая 64-разрядная ОС, как описано в последней версии NVIDIA vGPU, поддерживает поддерживаемые продукты.