Instalar drivers NVIDIA GPU em VMs da série N que executam o Linux
Cuidado
Este artigo faz referência ao CentOS, uma distribuição Linux que está em status de fim do serviço (EOL). Considere seu uso e planeje adequadamente. Para obter mais informações, consulte as Diretrizes de fim de vida do CentOS.
Aplica-se a: ✔️ VMs do Linux
Para aproveitar as funcionalidades de GPU das VMs da série N do Azure que contam com GPUs da NVIDIA, é preciso instalar os drivers para GPU NVIDIA. A Extensão de Driver de GPU NVIDIA instala drivers CUDA ou GRID NVIDIA apropriados em VMs da série N. Instale ou gerencie a extensão usando o portal do Azure ou ferramentas, como a CLI do Azure ou os modelos do Azure Resource Manager. Confira a documentação da Extensão de Driver de GPU NVIDIA para saber quais são as distribuições compatíveis e as etapas de implantação.
Se você optar por instalar os drivers de GPU da NVIDIA manualmente, este artigo fornecerá as distribuições compatíveis, os drivers e as etapas de instalação e verificação. Também há informações de As informações de instalação manual de driver também estão disponíveis para VMs do Windows.
Para obter as especificações de VMs da série N, as capacidades de armazenamento e os detalhes de disco, consulte Tamanhos de VM Linux para GPU.
Distribuições e drivers com suporte
Drivers NVIDIA CUDA
Para ver os últimos drivers CUDA e os sistemas operacionais com suporte, acesse o site NVIDIA. Certifique-se de instalar ou atualizar para os drivers CUDA mais recentes com suporte para a sua distribuição.
Observação
Atualmente, os drivers CUDA mais recentes com suporte para VMs do SKU da série NC original são 470.82.01. Não há suporte para versões posteriores do driver nos cartões K80 no NC.
Observação
As VMs NVads A10 v5 do Azure só dão suporte a versões de driver GRID 14.1(510.73) ou superiores. O driver vGPU para o SKU A10 é um driver unificado que dá suporte a cargas de trabalho de computação e de elementos gráficos.
Dica
Como alternativa à instalação manual do driver CUDA em uma VM do Linux, você pode implantar uma imagem de Máquina Virtual de Ciência de Dados do Azure. A edição DSVM para Ubuntu 16.04 LTS vem com drivers NVIDIA CUDA pré-instalados, a Biblioteca de Rede Neural Avançada CUDA Neural e outras ferramentas.
Drivers NVIDIA GRID
A Microsoft redistribui os instaladores do driver NVIDIA GRID para VMs das séries NV e NVv3 usadas como estações de trabalho virtuais ou para aplicativos virtuais. Instale somente esses drivers de grade em VMs do Azure NV, apenas em sistemas operacionais listados na tabela a seguir. Esses drivers incluem o licenciamento de Software de GPU Virtual de GRID no Azure. Não é necessário configurar um servidor de licença de software vGPU NVIDIA.
Os drivers GRID redistribuídos pelo Azure não funcionam na maioria das VMs que não são da série NV, como as VMs das séries NC, NCv2, NCv3, ND e NDv2, mas funcionam na série NCasT4v3.
Para obter mais informações sobre as versões específicas do vGPU e do branch de driver, visite o site da NVIDIA.
Distribuição | Driver |
---|---|
Ubuntu 20.04 LTS, 22.04 LTS Red Hat Enterprise Linux 7.9, 8.6, 8.8, 8.9, 8.10+ SUSE Linux Enterprise Server 15 SP2, 12 SP2, 12 SP5 Rocky Linux 8.4 |
NVIDIA vGPU 16.5, ramificação do driver R535 NVIDIA vGPU 16.5, ramificação do driver R535 |
Observação
Para VMs do Azure NVads A10 v5, recomendamos que os clientes estejam sempre na versão mais recente do driver. O branch de driver principal NVIDIA mais recente(n) só tem compatibilidade com versões anteriores para o branch principal anterior(n-1). Por exemplo, vGPU 17.x é compatível com versões anteriores somente para vGPU 16.x. Todas as VMs que ainda executam n-2 ou inferior podem ver falhas de driver quando o branch de unidade mais recente é distribuído para hosts do Azure.
As VMs NVs_v3 dão suporte apenas à versão de driver vGPU 16 ou inferior.
Atualmente, o GRID Driver 17.3 dá suporte apenas a NCasT4_v3 série de VMs. Para usar este driver, baixe e instale o GRID Driver 17.3 manualmente. Temos problemas de licenciamento na série NVv5 A10 e o Azure está trabalhando ativamente com a Nvidia para resolvê-los. Use versões anteriores à v17.x na série NVv5 A10. A extensão atualmente instala drivers 16.5 GRID.
Para obter a lista completa de todos os links de driver Nvidia GRID anteriores, acesse o GitHub.
Aviso
A instalação de software de terceiros em produtos do Red Hat pode afetar os termos de suporte do Red Hat. Consulte o artigo da Base de conhecimento do Red Hat.
Instalar drivers de CUDA em VMs série N
Aqui estão as etapas para instalar os drivers CUDA a partir do NVIDIA CUDA Toolkit em VMs série N.
Os desenvolvedores de C e C++ podem opcionalmente instalar o Kit de ferramentas completo para criar aplicativos com aceleração de GPU. Para obter mais informações, consulte o Guia de instalação do CUDA.
Para instalar os drivers de CUDA, realize uma conexão SSH para cada VM. Para verificar se o sistema tem uma GPU compatível com CUDA, execute o seguinte comando:
lspci | grep -i NVIDIA
A saída é semelhante ao exemplo a seguir (mostrando um cartão NVIDIA Tesla K80):
O lspci lista os dispositivos PCIe na VM, incluindo o InfiniBand NIC e GPUs, se houver. Se o lspci não retornar com sucesso, talvez seja necessário instalar o LIS no CentOS/RHEL.
Em seguida, execute os comandos de instalação específicos para a sua distribuição.
Ubuntu
O Ubuntu empacota drivers proprietários da NVIDIA. Esses drivers vêm diretamente da NVIDIA e são simplesmente empacotados pelo Ubuntu para que possam ser gerenciados automaticamente pelo sistema. Baixar e instalar drivers de outra fonte pode levar a um sistema quebrado. Além disso, a instalação de drivers de terceiros requer etapas adicionais em VMs com TrustedLaunch e Inicialização Segura habilitados. Eles exigem que o usuário adicione uma nova Chave de Proprietário do Computador para o sistema ser inicializado. Os drivers do Ubuntu são assinados pela Canonical e funcionarão com a Inicialização Segura.
Instalar o utilitário
ubuntu-drivers
:sudo apt update && sudo apt install -y ubuntu-drivers-common
Instale os drivers NVIDIA mais recentes:
sudo ubuntu-drivers install
Reinicie a VM após a instalação do driver de GPU.
Baixe e instale o kit de ferramentas CUDA da NVIDIA:
Observação
O exemplo mostra o caminho do pacote CUDA para o Ubuntu 24.04 LTS. Substitua o caminho específico da versão que planeja usar.
Visite o Centro de Download da NVIDIA ou a Página de Recursos CUDA da NVIDIA para o caminho completo específico para cada versão.
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb sudo apt install -y ./cuda-keyring_1.1-1_all.deb sudo apt update sudo apt -y install cuda-toolkit-12-5
A instalação poderá levar vários minutos.
Reinicialize a VM após a conclusão da instalação:
sudo reboot
Verifique se a GPU foi reconhecida corretamente (após a reinicialização):
nvidia-smi
Atualizações do driver NVIDIA
É recomendável que você atualize periodicamente os drivers NVIDIA após a implantação.
sudo apt update
sudo apt full-upgrade
CentOS ou Red Hat Enterprise Linux
Atualize o kernel (recomendado). Se você optar por não atualizar o kernel, verifique se as versões de
kernel-devel
edkms
são apropriadas para o seu kernel.sudo yum install kernel kernel-tools kernel-headers kernel-devel sudo reboot
Instale os Integration Services do Linux para Hyper-V mais recentes. Verifique se o LIS é necessário verificando os resultados do lspci. Se todos os dispositivos GPU estiverem listados como esperado, não é necessário instalar o LIS.
O LIS é aplicável ao Red Hat Enterprise Linux, CentOS e ao kernel compatível com o Red Hat do Oracle Linux 5.2-5.11, 6.0-6.10 e 7.0-7.7. Consulte a documentação do Linux Integration Services para obter mais detalhes. Pule essa etapa se quiser usar o CentOS/RHEL 7.8 (ou versões superiores), pois o LIS não é mais obrigatório para essas versões.
wget https://aka.ms/lis tar xvzf lis cd LISISO sudo ./install.sh sudo reboot
Reconecte-se à VM e continue a instalação com os seguintes comandos:
sudo rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm sudo yum-config-manager --add-repo https://developer.download.nvidia.com/compute/cuda/repos/rhel7/x86_64/cuda-rhel7.repo sudo yum clean all sudo yum -y install nvidia-driver-latest-dkms cuda-drivers
A instalação poderá levar vários minutos.
Observação
Visite o Fedora e o repositório NVIDIA CUDA para escolher o pacote correto para a versão CentOS ou RHEL que você deseja usar.
Por exemplo, CentOS 8 e RHEL 8 precisam das etapas a seguir.
sudo rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
sudo yum install dkms
sudo wget https://developer.download.nvidia.com/compute/cuda/repos/rhel8/x86_64/cuda-rhel8.repo -O /etc/yum.repos.d/cuda-rhel8.repo
sudo yum install cuda-drivers
Para opcionalmente instalar o Kit de ferramentas CUDA completo, digite:
sudo yum install cuda
Observação
Se você vir uma mensagem de erro relacionada a pacotes ausentes, como vulkan-filesystem, talvez seja preciso editar /etc/yum.repos.d/rh-cloud. Procure optional-rpms e defina ativado como 1
Reinicie a VM e prossiga para verificar a instalação.
Verificar a instalação de drivers
Para consultar o estado do dispositivo GPU, conecte-se à VM por SSH e execute o utilitário de linha de comando nvidia-smi instalado com o driver.
Se o driver estiver instalado, a Nvidia SMI listará o GPU-Util como 0% até que você execute uma carga de trabalho de GPU na VM. Sua versão de driver e os detalhes GPU podem ser diferentes daqueles mostrados.
Conectividade de rede RDMA
A conectividade de rede RDMA pode ser habilitada em VMs da série N com capacidade de RDMA, como o NC24r implementada no mesmo conjunto de disponibilidade ou em um único grupo de posicionamento em um conjunto de dimensionamento de máquina virtual (VM). A rede RDMA dá suporte ao tráfego da Interface de Passagem de Mensagem (MPI) para aplicativos executados com Intel MPI 5.x ou uma versão posterior:
Distribuições
Implante VMs da série N habilitadas para RDMA de uma das imagens no Azure Marketplace que é compatível com a conectividade RDMA nas VMs da série N:
Ubuntu 16.04 LTS – Configure os drivers RDMA na VM e registre-se na Intel para baixar a MPI da Intel:
Instalar dapl, rdmacm, ibverbs e mlx4
sudo apt-get update sudo apt-get install libdapl2 libmlx4-1
Em /etc/waagent.conf, habilite o RDMA removendo as marcas de comentários das seguintes linhas de configuração. Você precisa de acesso à raiz para editar esse arquivo.
OS.EnableRDMA=y OS.UpdateRdmaDriver=y
Adicione ou altere as seguintes configurações de memória em KB no arquivo /etc/security/limits.conf. Você precisa de acesso à raiz para editar esse arquivo. Para fins de teste, é possível definir memlock como ilimitado. Por exemplo:
<User or group name> hard memlock unlimited
.<User or group name> hard memlock <memory required for your application in KB> <User or group name> soft memlock <memory required for your application in KB>
Instalar a Intel MPI Library. Comprar e baixe a biblioteca da Intel ou baixe a versão de avaliação gratuita.
wget http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/9278/l_mpi_p_5.1.3.223.tgz
Há suporte apenas para runtimes MPI Intel 5.x.
Para saber as etapas de instalação, consulte o Guia de instalação da Intel MPI Library.
Habilite ptrace para os processos que não são de depuração e não são da raiz (necessária para as versões mais recentes da Intel MPI).
echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
CentOS-based 7.4 HPC - Os drivers RDMA e o Intel MPI 5.1 são instalados na VM.
HPC baseado em CentOS – CentOS-HPC 7.6 e posterior (para SKUs em que a InfiniBand tem suporte por SR-IOV). Essas imagens têm bibliotecas Mellanox OFED e MPI pré-instaladas.
Observação
Cartões CX3-Pro têm suporte somente por meio de versões LTS do Mellanox OFED. Use o LTS Mellanox OFED versão 4.9-0.1.7.0 nas VMs da série N com cartões ConnectX3-Pro. Para obter mais informações, veja Drivers do Linux.
Além disso, algumas das imagens mais recentes do Azure Marketplace HPC têm o Mellanox OFED 5.1 e posterior, que não oferecem suporte a cartões ConnectX3-Pro. Verifique a versão do Mellanox OFED na imagem HPC antes de usá-lo em VMs com cartões ConnectX3-Pro.
As imagens a seguir são as mais recentes do CentOS-HPC que dão suporte a cartões de ConnectX3-Pro:
- OpenLogic:CentOS-HPC:7.6:7.6.2020062900
- OpenLogic:CentOS-HPC:7_6gen2:7.6.2020062901
- OpenLogic:CentOS-HPC:7.7:7.7.2020062600
- OpenLogic:CentOS-HPC:7_7-gen2:7.7.2020062601
- OpenLogic:CentOS-HPC:8_1:8.1.2020062400
- OpenLogic:CentOS-HPC:8_1-gen2:8.1.2020062401
Instalar drivers de GRID em VMs da série NVv3 ou NV
Para instalar drivers NVIDIA GRID em VMs da série NVv3 ou NV, faça uma conexão SSH para cada VM e siga as etapas para a sua distribuição do Linux.
Ubuntu
Execute o comando
lspci
. Verifique se a placa ou placas NVIDIA M60 estão visíveis como dispositivos PCI.Instale as atualizações.
sudo apt-get update sudo apt-get upgrade -y sudo apt-get dist-upgrade -y sudo apt-get install build-essential ubuntu-desktop -y sudo apt-get install linux-azure -y
Desabilite o driver de kernel Nouveau, que é incompatível com o driver NVIDIA. (Use apenas o driver NVIDIA em VMs NV ou NVv2.) Para desabilitar o driver, crie um arquivo
/etc/modprobe.d
nomeadonouveau.conf
com o seguinte conteúdo:blacklist nouveau blacklist lbm-nouveau
Reinicie a VM e reconecte. Saia do servidor X:
sudo systemctl stop lightdm.service
Baixe e instale o driver GRID:
wget -O NVIDIA-Linux-x86_64-grid.run https://go.microsoft.com/fwlink/?linkid=874272 chmod +x NVIDIA-Linux-x86_64-grid.run sudo ./NVIDIA-Linux-x86_64-grid.run
Quando você for questionado se deseja executar o utilitário nvidia-xconfig para atualizar seu arquivo de configuração X, selecione Sim.
Após a conclusão da instalação, copie /etc/nvidia/gridd.conf.template para um novo arquivo gridd.conf no local /etc/hosts nvidia/
sudo cp /etc/nvidia/gridd.conf.template /etc/nvidia/gridd.conf
Adicione o seguinte a
/etc/nvidia/gridd.conf
:IgnoreSP=FALSE EnableUI=FALSE
Remova o seguinte de
/etc/nvidia/gridd.conf
se estiver presente:FeatureType=0
Reinicie a VM e prossiga para verificar a instalação.
Instale o driver do GRID no Ubuntu com a Inicialização Segura habilitada
O processo de instalação do driver do GRID não oferece nenhuma opção para ignorar a compilação e a instalação do módulo do kernel e selecionar uma fonte diferente de módulos do kernel assinados, portanto, a inicialização segura deve ser desabilitada nas VMs do Linux para usá-las com o GRID, após a instalação dos módulos do kernel assinados.
CentOS ou Red Hat Enterprise Linux
Atualize o kernel e o DKMS (recomendado). Se você optar por não atualizar o kernel, verifique se as versões
kernel-devel
edkms
são apropriadas para seu kernel.sudo yum update sudo yum install kernel-devel sudo rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm sudo yum install dkms sudo yum install hyperv-daemons
Desabilite o driver de kernel Nouveau, que é incompatível com o driver NVIDIA. (Somente use o driver NVIDIA em VMs NV3 ou NV). Para fazer isso, crie um arquivo em
/etc/modprobe.d
chamadonouveau.conf
com o conteúdo a seguir:blacklist nouveau blacklist lbm-nouveau
Reinicie a VM, reconecte e instale o último Integration Services do Linux para Hyper-V e Azure. Verifique se o LIS é necessário verificando os resultados do lspci. Se todos os dispositivos GPU estiverem listados como esperado, não é necessário instalar o LIS.
Pule essa etapa se quiser usar o CentOS/RHEL 7.8 (ou versões superiores), pois o LIS não é mais obrigatório para essas versões.
wget https://aka.ms/lis tar xvzf lis cd LISISO sudo ./install.sh sudo reboot
Reconecte-se à VM e execute o comando
lspci
. Verifique se a placa ou placas NVIDIA M60 estão visíveis como dispositivos PCI.Baixe e instale o driver GRID:
wget -O NVIDIA-Linux-x86_64-grid.run https://go.microsoft.com/fwlink/?linkid=874272 chmod +x NVIDIA-Linux-x86_64-grid.run sudo ./NVIDIA-Linux-x86_64-grid.run
Quando você for questionado se deseja executar o utilitário nvidia-xconfig para atualizar seu arquivo de configuração X, selecione Sim.
Após a conclusão da instalação, copie /etc/nvidia/gridd.conf.template para um novo arquivo gridd.conf no local /etc/hosts nvidia/
sudo cp /etc/nvidia/gridd.conf.template /etc/nvidia/gridd.conf
Adicione duas linhas ao
/etc/nvidia/gridd.conf
:IgnoreSP=FALSE EnableUI=FALSE
Remova uma linha do
/etc/nvidia/gridd.conf
se estiver presente:FeatureType=0
Reinicie a VM e prossiga para verificar a instalação.
Verificar a instalação de drivers
Para consultar o estado do dispositivo GPU, conecte-se à VM por SSH e execute o utilitário de linha de comando nvidia-smi instalado com o driver.
Se o driver estiver instalado, o Nvidia SMI listará o GPU-Util como 0% até que você execute uma carga de trabalho de GPU na VM. Sua versão de driver e os detalhes GPU podem ser diferentes daqueles mostrados.
Servidor X11
Se você precisa de um servidor X11 para conexões remotas com uma VM NVv2 ou NV, o x11vnc é recomendado porque ele permite a aceleração de hardware para gráfico. A BusID do dispositivo M60 precisa ser adicionada manualmente ao arquivo de configuração X11 (normalmente, etc/X11/xorg.conf
). Adicione uma seção "Device"
semelhante à seguinte:
Section "Device"
Identifier "Device0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "Tesla M60"
BusID "PCI:0@your-BusID:0:0"
EndSection
Além disso, atualize sua seção "Screen"
para usar este dispositivo.
A BusID decimal pode ser encontrada executando
nvidia-xconfig --query-gpu-info | awk '/PCI BusID/{print $4}'
A BusID pode mudar quando uma VM é realocada ou reinicializada. Portanto, convém criar um script para atualizar a BusID na configuração do X11 quando uma VM é reiniciada. Por exemplo, crie um script chamado busidupdate.sh
(ou outro nome que desejar) com um conteúdo semelhante ao seguinte:
#!/bin/bash
XCONFIG="/etc/X11/xorg.conf"
OLDBUSID=`awk '/BusID/{gsub(/"/, "", $2); print $2}' ${XCONFIG}`
NEWBUSID=`nvidia-xconfig --query-gpu-info | awk '/PCI BusID/{print $4}'`
if [[ "${OLDBUSID}" == "${NEWBUSID}" ]] ; then
echo "NVIDIA BUSID not changed - nothing to do"
else
echo "NVIDIA BUSID changed from \"${OLDBUSID}\" to \"${NEWBUSID}\": Updating ${XCONFIG}"
sed -e 's|BusID.*|BusID '\"${NEWBUSID}\"'|' -i ${XCONFIG}
fi
Em seguida, crie uma entrada para o seu script de atualização em /etc/rc.d/rc3.d
para que o script seja invocado como raiz na inicialização.
Solução de problemas
- Você pode definir o modo de persistência usando
nvidia-smi
, de modo que o resultado do comando seja mais rápido quando você precisar consultar cartões. Para definir o modo de persistência, executenvidia-smi -pm 1
. Observe que, se a VM for reiniciada, a configuração do modo desaparecerá. Você sempre pode gerar um script da configuração de modo para ser executada na inicialização. - Se você atualizou os drivers NVIDIA CUDA para a versão mais recente e descobrir que a conectividade RDMA não está mais funcionando, reinstale os drivers RDMA para restabelecer essa conectividade.
- Durante a instalação do LIS, se uma determinada versão do sistema operacional CentOS/RHEL OS (ou kernel) não for compatível com o LIS, será gerado um erro “Versão do kernel sem suporte”. Informe esse erro junto com as versões do sistema operacional e do kernel.
- Se os trabalhos forem interrompidos por erros de ECC na GPU (corrigíveis ou incorrigíveis), verifique se a GPU atende aos critérios de ADM da Nvidia para erros de ECC. Se a GPU for qualificada para ADM, entre em contato com o suporte para manutenção. Caso contrário, reinicialize a VM para anexar novamente a GPU, conforme descrito aqui. Métodos menos invasivos, como
nvidia-smi -r
não funcionam com a solução de virtualização implantada no Azure.
Próximas etapas
- Para capturar uma imagem de VM do Linux na qual você tenha instalado drivers NVIDIA, consulte Como generalizar e capturar uma máquina virtual Linux.