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


Расширение драйвера GPU NVIDIA для Linux

Это расширение устанавливает драйверы GPU NVIDIA на виртуальных машинах серии N для Linux. В зависимости от семейства виртуальных машин расширение устанавливает драйверы CUDA или GRID. При установке драйверов NVIDIA с помощью этого расширения вы принимаете и соглашаетесь с условиями лицензионного соглашения NVIDIA End-User. Во время установки драйвера виртуальная машина может быть перезагружена для завершения процедуры.

Доступны инструкции по установке драйверов вручную и сведения о поддерживаемых сейчас версиях. Расширение также доступно для установки драйверов GPU NVIDIA на виртуальных машинах серии Windows N.

Примечание.

При активации безопасной загрузки все компоненты загрузки ОС (загрузчик, ядро, драйверы ядра) должны быть подписаны доверенными издателями. (ключ, доверенный для системы). Безопасная загрузка не поддерживается с помощью расширений Windows или Linux. Дополнительные сведения об установке драйверов GPU с поддержкой безопасной загрузки вручную см. в статье о настройке драйвера GPU серии N в Azure для Linux.

Примечание.

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

Предварительные условия

Операционная система

Это расширение поддерживает указанные ниже дистрибутивы, в зависимости от поддержки драйвера в конкретной версии ОС.

Водитель Linux: Ubuntu Linux: Red Hat Enterprise Linux
CUDA 20.04 LTS 7.9
СЕТКА 22.04 LTS 8.2

Примечание.

Последняя поддерживаемая версия драйверов CUDA для виртуальных машин серии NC в настоящее время: 470.82.01. Более поздние версии драйверов не поддерживаются на картах K80 в серии NC. Пока обновляется расширение с учетом завершения поддержки NC, вы можете вручную установить драйверы CUDA для карт K80 в серии NC.

Внимание

Этот документ ссылается на версию Linux, которая приближается к окончанию срока службы (EOL). Пожалуйста, рассмотрите возможность обновления до более текущей версии.

Подключение к Интернету

Для работы расширения Microsoft Azure для драйверов GPU NVIDIA требуется, чтобы целевая виртуальная машина была доступна и подключена к Интернету.

Схема расширения

Следующий код JSON демонстрирует схему расширения:

{
  "name": "<myExtensionName>",
  "type": "extensions",
  "apiVersion": "2015-06-15",
  "location": "<location>",
  "dependsOn": [
    "[concat('Microsoft.Compute/virtualMachines/', <myVM>)]"
  ],
  "properties": {
    "publisher": "Microsoft.HpcCompute",
    "type": "NvidiaGpuDriverLinux",
    "typeHandlerVersion": "1.6",
    "autoUpgradeMinorVersion": true,
    "settings": {
    }
  }
}

Свойства

Имя. Значение или пример Тип данных
apiVersion 15.06.2015 Дата
издатель Microsoft.HpcCompute струна
тип NvidiaGpuDriverLinux струна
версияТипаОбработчика 1,6 инт

Настройки

Все эти параметры не являются обязательными. По умолчанию ядро не обновляется, если это не требуется для установки драйвера, затем устанавливается последний поддерживаемый драйвер и набор инструментов CUDA Toolkit (если применимо).

Имя. Описание: Значение по умолчанию Допустимые значения Тип данных
обновление ОС Обновите ядро, даже если это не требуется для установки драйвера. неправда истинно, ложно булевый
версия драйвера NV: версия драйвера GRID
NC/ND: версия набора инструментов CUDA Toolkit. Последние версии драйверов для выбранного CUDA устанавливаются автоматически.
последний Список поддерживаемых версий драйверов струна
installCUDA Установка набора инструментов CUDA Toolkit. Это относится только к виртуальным машинам серии NC/ND. истина истинно, ложно булевый

Развертывание

Портал Azure

Расширения виртуальной машины NVIDIA Azure можно развернуть на портале Azure.

  1. В браузере перейдите на портал Azure.

  2. Перейдите к виртуальной машине, на которой требуется установить драйвер.

  3. В меню слева выберите "Расширения".

    Снимок экрана: выбор расширений в меню портала Azure.

  4. Нажмите кнопку "Добавить".

    Снимок экрана: добавление расширения V M для выбранного V M.

  5. Прокрутите страницу, чтобы найти и выбрать расширение драйвера GPU NVIDIA, а затем нажмите кнопку "Далее".

    Снимок экрана: выбор расширения драйвера NVIDIA G P U.

  6. Выберите "Просмотр и создание" и нажмите кнопку "Создать". Подождите несколько минут, пока завершится развертывание драйвера.

    Снимок экрана, на котором показано нажатие кнопки

  7. Убедитесь, что расширение добавлено в список установленных.

    Снимок экрана: новое расширение в списке расширений для V M.

Шаблон Azure Resource Manager

Вы можете использовать шаблоны Azure Resource Manager для развертывания расширений виртуальной машины Azure. Шаблоны идеально подходят для развертывания одной или нескольких виртуальных машин, требующих настройки после развертывания.

Конфигурацию JSON для расширения виртуальной машины можно вложить в ресурс виртуальной машины либо поместить в корневой (верхний) уровень JSON-файла шаблона Resource Manager. Размещение конфигурации JSON влияет на значения имени и типа ресурса. Дополнительные сведения см. в разделе "Задание имени и типа" для дочерних ресурсов.

В следующем примере предполагается, что расширение встроено в ресурс виртуальной машины. Когда ресурс расширения является вложенным, JSON-код помещается в объект виртуальной машины "resources": [].

{
  "name": "myExtensionName",
  "type": "extensions",
  "location": "[resourceGroup().location]",
  "apiVersion": "2015-06-15",
  "dependsOn": [
    "[concat('Microsoft.Compute/virtualMachines/', myVM)]"
  ],
  "properties": {
    "publisher": "Microsoft.HpcCompute",
    "type": "NvidiaGpuDriverLinux",
    "typeHandlerVersion": "1.6",
    "autoUpgradeMinorVersion": true,
    "settings": {
    }
  }
}

PowerShell

Set-AzVMExtension
    -ResourceGroupName "myResourceGroup" `
    -VMName "myVM" `
    -Location "southcentralus" `
    -Publisher "Microsoft.HpcCompute" `
    -ExtensionName "NvidiaGpuDriverLinux" `
    -ExtensionType "NvidiaGpuDriverLinux" `
    -TypeHandlerVersion 1.6 `
    -SettingString '{ `
	}'

Azure CLI (Интерфейс командной строки для Azure)

Представленный ниже пример в точности соответствует предыдущим примерам для Azure Resource Manager и PowerShell.

az vm extension set \
  --resource-group myResourceGroup \
  --vm-name myVM \
  --name NvidiaGpuDriverLinux \
  --publisher Microsoft.HpcCompute \
  --version 1.6

Также этот пример добавляет два необязательных настраиваемых параметра, чтобы продемонстрировать установку драйвера в конфигурации, отличной от конфигурации по умолчанию. В частности, ядро ОС обновляется до последней версии и устанавливается определенный драйвер версии CUDA Toolkit. Снова обратите внимание, что --settings является необязательным и имеет значение по умолчанию. Обновление ядра может замедлить установку расширения. Кроме того, некоторые (старые) версии CUDA Toolkit не всегда совместимы с новыми ядрами.

az vm extension set \
  --resource-group myResourceGroup \
  --vm-name myVM \
  --name NvidiaGpuDriverLinux \
  --publisher Microsoft.HpcCompute \
  --version 1.6 \
  --settings '{ \
    "updateOS": true, \
    "driverVersion": "10.0.130" \
  }'

Устранение неполадок и поддержка

Устранение неполадок

Данные о состоянии развертываний расширений можно получить на портале Azure, а также с помощью Azure PowerShell и Azure CLI. Чтобы просмотреть состояние развертывания расширений для определенной виртуальной машины, выполните следующую команду:

Get-AzVMExtension -ResourceGroupName myResourceGroup -VMName myVM -Name myExtensionName
az vm extension list --resource-group myResourceGroup --vm-name myVM -o table

Выходные данные выполнения расширения регистрируются в следующем файле. Для отслеживания состояния любой долгой установки и устранения сбоев обратитесь к этому файлу.

/var/log/azure/nvidia-vmext-status

Коды выхода

Код выхода Значение Возможное действие
0 Операция выполнена успешно
1 Неправильное использование расширения Проверьте журнал выходных данных выполнения.
10 Службы Integration Services в Linux для Hyper-V и Azure недоступны или не установлены Проверьте выходные данные lspci.
11 Для этого размера виртуальной машины не обнаружен драйвер GPU NVIDIA Используйте поддерживаемый размер виртуальной машины и ОС.
12 Поддержка функции изображения не предоставляется
13 (тринадцать) Размер виртуальной машины не поддерживается Для развертывания используйте виртуальную машину серии N
14 Не удалось выполнить операцию. Проверьте журнал выходных данных выполнения.

Известные проблемы

  1. Драйвер GRID 16.x и 17.x имеют проблемы с установкой в ядре Azure 6.11. Nvidia работает над решением этой проблемы, тем временем перенизите ядро Azure до 6.8, выполнив следующие действия. Попробуйте переустановить драйверы вручную или с помощью расширения после понижения уровня ядра до 6.8.
// Get the installed kernel. If kernel 6.11 is installed,  downgrade it to 6.8.
uname -a

// Install  kernel 6.8. Note that kernel  6.11  is not supported.
$ sudo apt install linux-image-6.8.0-1015-azure

// Get the list of installed kernels.
dpkg --list | egrep -i --color 'linux-image|linux-headers|linux-modules' | awk '{ print $2 }'

// Uninstall any 6.11 kernels.
sudo apt purge linux-headers-6.11.0-1013-azure  linux-image-6.11.0-1013-azure  linux-modules-6.11.0-1013-azure

// Run the following command to ensure only 6.8 images, headers, and modules are installed and no other versions are present.
dpkg --list | egrep -i --color 'linux-image|linux-headers|linux-modules' | awk '{ print $2 }'

// Results from the previous command:
linux-headers-6.8.0-1015-azure
linux-image-6.8.0-1015-azure
linux-modules-6.8.0-1015-azure

// Open the grub settings and modify the GRUB_DEFAULT="0" to GRUB_DEFAULT="Advanced options for Ubuntu>Ubuntu, with Linux 6.8.0-1015-azure".
$ sudo vim /etc/default/grub 
 
// The grub file will look like the following:
GRUB_DEFAULT="Advanced options for Ubuntu>Ubuntu, with Linux 6.8.0-1015-azure"
GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=0
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""
///////////////////

// Update GRUB and reboot.
$ sudo update-grub && sudo update-grub2
$ sudo reboot

// Reinstall the driver after reboot.
  1. NvidiaGpuDriverLinux В настоящее время устанавливает последние 17.5 драйверы GRID, которые имеют проблемы с CUDA в серии A10. NVIDIA работает над решением этой проблемы, тем временем используйте драйвер 16.5 GRID, передав параметр среды выполнения в расширение.
az vm extension set  --resource-group <rg-name> --vm-name <vm-name>  --name NvidiaGpuDriverLinux --publisher Microsoft.HpcCompute --settings "{'driverVersion':'535.161'}"
{
  "name": "NvidiaGpuDriverLinux",
  "type": "extensions",
  "apiVersion": "2015-06-15",
  "location": "<location>",
  "dependsOn": [
    "[concat('Microsoft.Compute/virtualMachines/', <myVM>)]"
  ],
  "properties": {
    "publisher": "Microsoft.HpcCompute",
    "type": "NvidiaGpuDriverLinux",
    "typeHandlerVersion": "1.11",
    "autoUpgradeMinorVersion": true,
    "settings": {
         "driverVersion": "535.161"
    }
  }
}
  1. Версия 17.x драйвера GRID несовместима с NVv3 (NVIDIA Tesla M60). Поддерживаются драйверы GRID до версии 16.5 . NvidiaGpuDriverLinux устанавливает последние драйверы, несовместимые с NVv3 SKU. Вместо этого используйте следующие параметры среды выполнения, чтобы принудительно установить более раннюю версию драйвера. Дополнительные сведения о версиях драйверов см. в ресурсах NVIDIA GPU.
az vm extension set  --resource-group <rg-name> --vm-name <vm-name>  --name NvidiaGpuDriverLinux --publisher Microsoft.HpcCompute --settings "{'driverVersion':'535.161'}"
{
  "name": "NvidiaGpuDriverLinux",
  "type": "extensions",
  "apiVersion": "2015-06-15",
  "location": "<location>",
  "dependsOn": [
    "[concat('Microsoft.Compute/virtualMachines/', <myVM>)]"
  ],
  "properties": {
    "publisher": "Microsoft.HpcCompute",
    "type": "NvidiaGpuDriverLinux",
    "typeHandlerVersion": "1.11",
    "autoUpgradeMinorVersion": true,
    "settings": {
         "driverVersion": "535.161"
    }
  }
}
  1. Драйвер Grid 17.5 для Linux имеет ошибку, которая влияет на рабочие нагрузки, связанные с CUDA. Подпись ошибки обычно указывает на недоступность устройств CUDA. Хотя Azure работает над решением этой проблемы, используйте драйвер GRID 16.5 для продолжения выполнения рабочей нагрузки.

Поддержка

Если вам нужна дополнительная помощь в любой момент этой статьи, обратитесь к экспертам Azure на форумах MSDN Azure и Stack Overflow. Кроме того, можно зарегистрировать обращение в службу поддержки Azure. Перейдите в службу поддержки Azure и выберите "Получить поддержку". Дополнительные сведения об использовании поддержки Azure см. в статье "Часто задаваемые вопросы о поддержке Azure".

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