tao-setup-nvidia-gpu-host
NVIDIA/skills
Verifica e instala o driver da NVIDIA, o CUDA Toolkit e o NVIDIA Container Toolkit para hosts Docker e Kubernetes com aceleração por GPU. Oferece suporte a várias distribuições Linux, com modos de instalação automatizada e verificação somente leitura.
...Expandir tudoConfiguração do host da GPU NVIDIA
Utilize esta técnica de configuração antes de executar fluxos de trabalho TAO no backend do Docker, local-Docker
ou Kubernetes. Ela padroniza o ambiente de execução da GPU do host no:
- ramo
580do driver NVIDIA (de preferência, módulo de kernel aberto) - Pacote do CUDA Toolkit
cuda-toolkit-13-0 - NVIDIA Container Toolkit
1.19.0 - Docker Engine — instalado apenas para back-ends
do Docker/local-Dockere somente quando o Docker não estiver instalado. O pacote escolhido depende da família da distribuição (docker.iona família Debian por padrão,moby-engine/docker-cededownload.docker.comna família RHEL,dockerna família SUSE). Passe--skip-docker-installpara desativar.
A verificação é segura e somente leitura por padrão — funciona em qualquer
, pois verifica apenas o nvidia-smi, o caminho do kit de ferramentas CUDA,
a versão do pacote container-toolkit instalado (por meiodo dpkg/rpm/da
versão bináriado nvidia-ctk ) e o runtime NVIDIA do daemon do Docker.
A instalação deve ser explicitamente autorizada pelo usuário e executada novamente com
--install. O caminho de instalação é automatizado para estas famílias de distribuições:
| Família | Distribuições testadas | Gerenciador | Notas |
|---|---|---|---|
| debian | Ubuntu 22.04 / 24.04, Debian 12 (e derivadas como Pop!_OS, Mint, Zorin, Raspbian, KDE Neon, etc., por meio de UBUNTU_CODENAME / VERSION_CODENAME) |
apt-get |
Adiciona o cuda-keyring da NVIDIA + o .list do Container Toolkit. Docker via docker.io (substitui $DOCKER_PACKAGE_DEBIAN). |
| rhel | Fedora 39+, RHEL / Rocky / AlmaLinux 9 e 10 | dnf (ou yum) |
Adiciona o repositório NVIDIA cuda- o repositório do Container Toolkit . Docker via Fedora moby-engine, quando disponível; caso contrário, o docker-ce de download.docker.com. |
| suse | openSUSE Leap 15, SLES 15 | zypper |
Adiciona os mesmos arquivos .repo da NVIDIA. Docker via o pacote docker da distribuição. |
| outros (Arch, Alpine, Gentoo, NixOS, FreeBSD, …) | n/a | n/a | O comando --install encerra com uma mensagem de erro clara, listando as versões alvo e os URLs do guia de instalação da NVIDIA. Instale manualmente e, em seguida, execute novamente o comando --check-only. |
Início rápido
A partir da raiz do banco de habilidades:
# Verifique o host local do backend do Docker.
bash skills/platform/tao-setup-nvidia-gpu-host/scripts/setup-nvidia-gpu-host.sh --backend docker --check-only
# Instale ou repare após a aprovação do usuário.
bash skills/platform/tao-setup-nvidia-gpu-host/scripts/setup-nvidia-gpu-host.sh --backend docker --install
# Verificar um host de worker com GPU no Kubernetes.
bash skills/platform/tao-setup-nvidia-gpu-host/scripts/setup-nvidia-gpu-host.sh --backend kubernetes --check-only
⚠️ Observação — execução não interativa (execuções de agente/skill): uma execução de skill não possui terminal, portanto, não é possível responder ao prompt
“Continuar? [y/N]” do instalador. Após executar--check-onlypara visualizar e obter a aprovação do usuário, acrescente o sinalizador “assume-yes” (--yes) ao comando--installpara que ele prossiga sem solicitar confirmação — isso confirma automaticamente a instalação de pacotes do sistema (driver NVIDIA, CUDA Toolkit, NVIDIA Container Toolkit e Docker para back-ends do Docker) e modifica o host; portanto, faça isso apenas em um host sob seu controle. Uma pessoa que executar--installdiretamente em um terminal receberá a solicitação.
Contrato de fluxo de trabalho
Os fluxos de trabalho do Docker e do Kubernetes devem executar a verificação antes de enviar tarefas para a GPU:
SETUP_SCRIPT="${TAO_SKILL_BANK_ROOT:-$PWD}/platform/tao-setup-nvidia-gpu-host/scripts/setup-nvidia-gpu-host.sh"
bash "$SETUP_SCRIPT" --backend docker --check-only || {
echo "AUSENTE: O ambiente de execução do host de GPU do TAO não está pronto."
echo "Após a aprovação do usuário, execute (adicione --yes para execuções não interativas do agente):"
echo " bash \"$SETUP_SCRIPT\" --backend docker --install"
exit 1
}
Nunca instale em modo silencioso. Se a verificação falhar, explique o que está faltando, peça ao usuário para autorizar a correção e, em seguida, execute o comando de instalação e repita a verificação.
O que o instalador faz
O instalador é executado com base na família de distribuição detectada. Em cada
família suportada, ele adiciona os repositórios CUDA e Container Toolkit da NVIDIA
(se estiverem faltando), instala os pacotes de tempo de execução fixados, instala opcionalmente
o Docker, configura o tempo de execução do Docker da NVIDIA e adiciona o usuário que o invocou ao
grupo docker.
Etapas comuns (todas as famílias):
- Adiciona o repositório CUDA da NVIDIA, caso esteja ausente (apt
cuda-keyringdeb,cuda-para dnf/zypper)..repo - Adiciona o repositório do Container Toolkit da NVIDIA, caso não esteja presente (
.listpara apt,.repopara dnf/zypper). - Instala o pacote de cabeçalhos/desenvolvimento do kernel correspondente ao kernel em execução.
- Instala os pacotes da ramificação 580 do driver,
o cuda-toolkit-13-0e o Container Toolkit fixado na versão1.19.0(o1.19.0-1com sufixo dpkg é a mesma versão do desenvolvedor original expressa para o apt). - Para backends do Docker e quando o Docker não estiver instalado, instala o Docker
(siga as opções de substituição ou exclusão abaixo), habilita/inicia o daemon e, em seguida, executa
nvidia-ctk runtime configure --runtime=dockere reinicia o Docker quandoo systemctlestiver disponível. - Adiciona o usuário que está executando o comando (
$SUDO_USER, se disponível; caso contrário,$USER) ao grupodockerpara que os shells subsequentes possam executaro dockersemo sudo— desative essa opção com--skip-docker-group. A nova participação no grupo não entra em vigor no shell atual: faça logout e login novamente, ou executenewgrp dockerem cada novo shell. - Tenta executar o `
modprobe nvidia` para que a verificação seja aprovada antes da reinicialização.
Seleções de pacotes específicas por família:
| Etapa | família-debian | rhel-family | família-suse |
|---|---|---|---|
| Cabeçalhos do kernel | linux-headers-$(uname -r) |
kernel-devel-$(uname -r), kernel-headers-$(uname -r) |
kernel-default-devel |
| Driver | nvidia-driver-pinning-580, nvidia-open-580 (substituição: $NVIDIA_DRIVER_PACKAGE_DEBIAN) |
nvidia-driver-cuda, kmod-nvidia-open-dkms (substituição: $NVIDIA_DRIVER_PACKAGE_RHEL, $NVIDIA_DRIVER_KMOD_RHEL) |
nvidia-open-driver-G06-signed-kmp-default (substituição: $NVIDIA_DRIVER_PACKAGE_SUSE) |
| Kit de ferramentas CUDA | cuda-toolkit-13-0 |
cuda-toolkit-13-0 |
cuda-toolkit-13-0 |
| Kit de ferramentas para contêineres | nvidia-container-toolkit=1.19.0-1 + base/tools/libs |
nvidia-container-toolkit-1.19.0 + base/tools/libs |
igual ao RHEL |
| Docker | docker.io (substituição: $DOCKER_PACKAGE_DEBIAN) |
moby-engine+moby-cli no Fedora, quando disponível; caso contrário, docker-ce docker-ce-cli containerd.io de download.docker.com |
docker |
Verificação
Após a instalação, verifique:
nvidia-smi
/usr/local/cuda-13.0/bin/nvcc --version
docker info --format '{{json .Runtimes}}' | grep nvidia
sudo docker run --rm --runtime=nvidia --gpus all ubuntu nvidia-smi
A saída esperada do nvidia-smi inclui o driver 580.x e a versão 13.0 do CUDA.
A saída esperada do nvcc inclui a versão 13.0.
Notas sobre o Kubernetes
Para clusters do Kubernetes autogerenciados, execute o instalador do host em cada nó de trabalho com GPU ou incorpore o mesmo conjunto de pacotes na imagem do nó antes de instalar o NVIDIA GPU Operator ou o plug-in de dispositivo.
A verificação do fluxo de trabalho também emite um aviso se o `kubectl` estiver disponível, mas o cluster não relatar
nenhuma capacidade alocável de `nvidia.com/gpu`. Nesse caso, instale/configure o
NVIDIA GPU Operator após o ambiente de execução do host de trabalho estar pronto:
helm repo add nvidia https://helm.ngc.nvidia.com/nvidia
helm repo update
helm install --wait gpu-operator -n gpu-operator --create-namespace nvidia/gpu-operator
Provedores de Kubernetes gerenciados podem controlar a instalação de drivers por meio de imagens de nó ou da política do GPU Operator. Não sobrescreva um nó de GPU gerenciado pelo provedor sem a aprovação do usuário e um plano de reversão.
Modos de falha
Família de distribuição não suportada: --install automatiza hosts das famílias debian-, rhel-
e suse-. No Arch, Alpine, Gentoo, NixOS, FreeBSD ou qualquer sistema
sem o arquivo /etc/os-release (por exemplo, macOS), o script é encerrado com um erro claro
que lista os quatro alvos de versão e as URLs do guia de instalação oficial da NVIDIA
:
https://docs.nvidia.com/cuda/cuda-installation-guide-linux/https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.htmlhttps://docs.docker.com/engine/install/
Instale esses quatro componentes usando o gerenciador de pacotes da sua distribuição e
execute o script novamente com a opção --check-only para verificar. A verificação é universalmente
portável — ela apenas consulta os binários e os bancos de dados de pacotes — portanto, uma vez que o
ambiente de execução esteja instalado, o contrato de fluxo de trabalho é cumprido, independentemente da
distribuição subjacente.
Derivados do Ubuntu/Debian não suportados: Quando o ID for, por exemplo, pop, mint,
zorin, raspbian ou outro derivado da família Debian, o script mapeia
o host para o repositório CUDA upstream do Ubuntu/Debian por meio de UBUNTU_CODENAME /
VERSION_CODENAME (focal/jammy/noble → Ubuntu 20.04/22.04/24.04;
bullseye/bookworm/trixie → Debian 11/12/12). Se o nome de código do host
não corresponder a uma versão original conhecida, o --install encerra com as mesmas
orientações de instalação manual descritas acima.
Docker não instalado: --check-only exibe a mensagem MISSING: Docker não está instalado e mostra o comando exato para reexecução, apropriado para a
família de distribuição detectada. O caminho padrão de --install instala o Docker (docker.io /
moby-engine / docker-ce / docker, dependendo da família), habilita/inicia
o daemon, configura o runtime da NVIDIA e adiciona o usuário que está executando o script ao
grupo docker. Se você preferir gerenciar o Docker por conta própria, instale-o
antes de executar o script novamente ou passe o parâmetro --skip-docker-install.
O Docker está instalado, mas o comando `docker run` ainda requer o `sudo`: o script adiciona o
usuário que o invocou ao grupo `docker`, mas o Linux só atualiza a
pertença ao grupo em uma nova sessão de login. Faça logout e login novamente, ou execute
`newgrp docker` em cada novo shell, até que a nova pertença ao grupo esteja ativa.
O runtime do Docker ainda está faltando: reinicie o Docker e, em seguida, execute novamente
nvidia-ctk runtime configure --runtime=docker.
Ramo do driver detectado != 580: A especificação do ramo do driver é exata na
família Debian (nvidia-open-580). Na família rhel-/suse, o script
instala o driver aberto mais recente fornecido no repositório CUDA 13.0 da NVIDIA para
a distribuição detectada, que é sempre ≥ 580. Se o seu host precisar de um
pin mais restrito, defina $NVIDIA_DRIVER_PACKAGE_RHEL / $NVIDIA_DRIVER_KMOD_RHEL /
$NVIDIA_DRIVER_PACKAGE_SUSE com os nomes exatos dos pacotes desejados antes de
executar --install.
Driver instalado, mas o nvidia-smi falha: Carregue o módulo com
sudo modprobe nvidia ou reinicie o sistema. O Secure Boot pode exigir o registro do MOK em
sistemas nos quais ele esteja habilitado.
O Kubernetes ainda não tem capacidade de GPU: confirme se o driver funciona em cada nó de GPU
com o `nvidia-smi` e, em seguida, verifique os pods do GPU Operator/plug-in de dispositivo e as
etiquetas dos nós.
---
name: tao-setup-nvidia-gpu-host
description: Checks and installs NVIDIA driver, CUDA Toolkit, and NVIDIA Container Toolkit for GPU-accelerated Docker and Kubernetes hosts. Supports multiple Linux distributions with automated install and read-only check modes.
license: Apache-2.0
---
# NVIDIA GPU Host Setup
Use this setup skill before TAO workflows run on the `docker`, `local-docker`,
or `kubernetes` backend. It standardizes the host GPU runtime on:
- NVIDIA driver branch `580` (open kernel module preferred)
- CUDA Toolkit package `cuda-toolkit-13-0`
- NVIDIA Container Toolkit `1.19.0`
- Docker engine — only installed for `docker` / `local-docker` backends and
only when Docker is missing. The package picked depends on the distro
family (`docker.io` on Debian-family by default, `moby-engine` /
`docker-ce` from `download.docker.com` on RHEL-family, `docker` on
SUSE-family). Pass `--skip-docker-install` to opt out.
The check is safe and read-only by default — it works on any Linux
distribution because it only probes `nvidia-smi`, the CUDA toolkit path,
the installed container-toolkit package version (via `dpkg`/`rpm`/the
`nvidia-ctk` binary version), and the Docker daemon's NVIDIA runtime.
Installation must be explicitly authorized by the user and rerun with
`--install`. The install path is automated for these distro families:
| Family | Tested distros | Manager | Notes |
|---|---|---|---|
| debian | Ubuntu 22.04 / 24.04, Debian 12 (and derivatives Pop!_OS, Mint, Zorin, Raspbian, KDE Neon, etc. via `UBUNTU_CODENAME` / `VERSION_CODENAME`) | `apt-get` | Adds NVIDIA `cuda-keyring` + Container Toolkit `.list`. Docker via `docker.io` (override `$DOCKER_PACKAGE_DEBIAN`). |
| rhel | Fedora 39+, RHEL / Rocky / AlmaLinux 9 and 10 | `dnf` (or `yum`) | Adds NVIDIA `cuda-<distro>.repo` + Container Toolkit `.repo`. Docker via Fedora `moby-engine` when available, otherwise `docker-ce` from `download.docker.com`. |
| suse | openSUSE Leap 15, SLES 15 | `zypper` | Adds the same NVIDIA `.repo` files. Docker via the distribution `docker` package. |
| other (Arch, Alpine, Gentoo, NixOS, FreeBSD, …) | n/a | n/a | `--install` exits with a clear error listing the version targets and the NVIDIA install-guide URLs. Install manually, then rerun `--check-only`. |
## Quick Start
From the skill bank root:
```bash
# Check the local Docker backend host.
bash skills/platform/tao-setup-nvidia-gpu-host/scripts/setup-nvidia-gpu-host.sh --backend docker --check-only
# Install or repair after user approval.
bash skills/platform/tao-setup-nvidia-gpu-host/scripts/setup-nvidia-gpu-host.sh --backend docker --install
# Check a Kubernetes GPU worker host.
bash skills/platform/tao-setup-nvidia-gpu-host/scripts/setup-nvidia-gpu-host.sh --backend kubernetes --check-only
```
> ⚠️ **Note — running non-interactively (agent/skill runs):** a skill run has no terminal, so the
> installer's `Continue? [y/N]` prompt cannot be answered. After running `--check-only` to preview and
> getting the user's approval, append the assume-yes flag (`--yes`) to the `--install` command so it
> proceeds without a prompt — this auto-confirms installation of system packages (NVIDIA driver, CUDA
> Toolkit, NVIDIA Container Toolkit, and Docker for Docker backends) and modifies the host, so only do
> this on a host you control. A person running `--install` directly at a terminal gets the prompt instead.
## Workflow Contract
Docker and Kubernetes workflows must run the check before submitting GPU work:
```bash
SETUP_SCRIPT="${TAO_SKILL_BANK_ROOT:-$PWD}/platform/tao-setup-nvidia-gpu-host/scripts/setup-nvidia-gpu-host.sh"
bash "$SETUP_SCRIPT" --backend docker --check-only || {
echo "MISSING: TAO GPU host runtime is not ready."
echo "After user approval, run (append --yes for non-interactive agent runs):"
echo " bash \"$SETUP_SCRIPT\" --backend docker --install"
exit 1
}
```
Never install silently. If the check fails, explain what is missing, ask the
user to authorize the fix, then run the install command and rerun the check.
## What The Installer Does
The installer dispatches on the detected distribution family. On every
supported family it adds NVIDIA's CUDA and Container Toolkit repositories
(if missing), installs the pinned runtime packages, optionally installs
Docker, wires the NVIDIA Docker runtime, and adds the invoking user to
the `docker` group.
Common steps (all families):
1. Adds NVIDIA's CUDA repository if missing (apt `cuda-keyring` deb,
`cuda-<distro>.repo` for dnf/zypper).
2. Adds NVIDIA's Container Toolkit repository if missing (`.list` for apt,
`.repo` for dnf/zypper).
3. Installs the matching kernel header / devel package for the running
kernel.
4. Installs the driver branch 580 packages, `cuda-toolkit-13-0`, and the
Container Toolkit pinned to `1.19.0` (the dpkg-suffixed `1.19.0-1` is
the same upstream version expressed for apt).
5. For Docker backends and when Docker is missing, installs Docker
(override / opt-out flags below), enables/starts the daemon, then runs
`nvidia-ctk runtime configure --runtime=docker` and restarts Docker
when `systemctl` is available.
6. Adds the invoking user (`$SUDO_USER` if available, else `$USER`) to the
`docker` group so subsequent shells can run `docker` without `sudo` —
opt out with `--skip-docker-group`. **The new group membership does not
take effect in the current shell**: log out and back in, or run
`newgrp docker` in each new shell.
7. Attempts `modprobe nvidia` so verification can pass before reboot.
Family-specific package selections:
| Step | debian-family | rhel-family | suse-family |
|---|---|---|---|
| Kernel headers | `linux-headers-$(uname -r)` | `kernel-devel-$(uname -r)`, `kernel-headers-$(uname -r)` | `kernel-default-devel` |
| Driver | `nvidia-driver-pinning-580`, `nvidia-open-580` (override: `$NVIDIA_DRIVER_PACKAGE_DEBIAN`) | `nvidia-driver-cuda`, `kmod-nvidia-open-dkms` (override: `$NVIDIA_DRIVER_PACKAGE_RHEL`, `$NVIDIA_DRIVER_KMOD_RHEL`) | `nvidia-open-driver-G06-signed-kmp-default` (override: `$NVIDIA_DRIVER_PACKAGE_SUSE`) |
| CUDA toolkit | `cuda-toolkit-13-0` | `cuda-toolkit-13-0` | `cuda-toolkit-13-0` |
| Container Toolkit | `nvidia-container-toolkit=1.19.0-1` + base/tools/libs | `nvidia-container-toolkit-1.19.0` + base/tools/libs | same as rhel |
| Docker | `docker.io` (override: `$DOCKER_PACKAGE_DEBIAN`) | `moby-engine`+`moby-cli` on Fedora when available, else `docker-ce docker-ce-cli containerd.io` from `download.docker.com` | `docker` |
## Verification
After installation, verify:
```bash
nvidia-smi
/usr/local/cuda-13.0/bin/nvcc --version
docker info --format '{{json .Runtimes}}' | grep nvidia
sudo docker run --rm --runtime=nvidia --gpus all ubuntu nvidia-smi
```
Expected `nvidia-smi` output includes driver `580.x` and CUDA Version `13.0`.
Expected `nvcc` output includes `release 13.0`.
## Kubernetes Notes
For self-managed Kubernetes clusters, run the host installer on every GPU
worker node or bake the same package set into the node image before installing
the NVIDIA GPU Operator or device plugin.
The workflow check also warns if `kubectl` is available but the cluster reports
no `nvidia.com/gpu` allocatable capacity. In that case, install/configure the
NVIDIA GPU Operator after the worker host runtime is ready:
```bash
helm repo add nvidia https://helm.ngc.nvidia.com/nvidia
helm repo update
helm install --wait gpu-operator -n gpu-operator --create-namespace nvidia/gpu-operator
```
Managed Kubernetes providers may own driver installation through node images or
GPU Operator policy. Do not overwrite a provider-managed GPU node without user
approval and a rollback plan.
## Failure Modes
**Unsupported distribution family**: `--install` automates debian-, rhel-,
and suse-family hosts. On Arch, Alpine, Gentoo, NixOS, FreeBSD, or anything
without `/etc/os-release` (e.g. macOS), the script exits with a clear error
that lists the four version targets and the upstream NVIDIA install-guide
URLs:
- `https://docs.nvidia.com/cuda/cuda-installation-guide-linux/`
- `https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html`
- `https://docs.docker.com/engine/install/`
Install those four pieces using your distribution's package manager and
rerun the script with `--check-only` to verify. The check is universally
portable — it only queries the binaries / package databases — so once the
runtime is in place the workflow contract is satisfied regardless of the
underlying distro.
**Unsupported Ubuntu/Debian derivative**: When `ID` is e.g. `pop`, `mint`,
`zorin`, `raspbian`, or another debian-family derivative, the script maps
the host onto the upstream Ubuntu/Debian CUDA repo via `UBUNTU_CODENAME` /
`VERSION_CODENAME` (`focal`/`jammy`/`noble` → Ubuntu 20.04/22.04/24.04;
`bullseye`/`bookworm`/`trixie` → Debian 11/12/12). If the host's codename
doesn't match a known upstream release, `--install` exits with the same
manual-install guidance described above.
**Docker not installed**: `--check-only` reports `MISSING: Docker is not
installed` and prints the exact rerun command appropriate to the detected
distro family. The default `--install` path installs Docker (`docker.io` /
`moby-engine` / `docker-ce` / `docker` depending on family), enables/starts
the daemon, configures the NVIDIA runtime, and adds the invoking user to
the `docker` group. If you prefer to manage Docker yourself, install it
before rerunning the script or pass `--skip-docker-install`.
**Docker installed but `docker run` still needs sudo**: The script adds the
invoking user to the `docker` group, but Linux only refreshes group
membership on a new login session. Log out and back in, or run
`newgrp docker` in each new shell, until the new membership is active.
**Docker runtime still missing**: Restart Docker, then rerun
`nvidia-ctk runtime configure --runtime=docker`.
**Driver branch detected != 580**: The driver-branch pin is exact on
debian-family (`nvidia-open-580`). On rhel-/suse-family the script
installs the latest open driver shipped in NVIDIA's CUDA 13.0 repo for
the detected distro, which is always ≥ 580. If your host needs a stricter
pin, set `$NVIDIA_DRIVER_PACKAGE_RHEL` / `$NVIDIA_DRIVER_KMOD_RHEL` /
`$NVIDIA_DRIVER_PACKAGE_SUSE` to the exact package names you want before
running `--install`.
**Driver installed but `nvidia-smi` fails**: Load the module with
`sudo modprobe nvidia` or reboot. Secure Boot may require MOK enrollment on
systems where it is enabled.
**Kubernetes still has no GPU capacity**: Confirm the driver works on each GPU
node with `nvidia-smi`, then check the GPU Operator/device plugin pods and node
labels.
Todos os arquivos
7 arquivosInstalar tao-setup-nvidia-gpu-host
Baixe e extraia os arquivos de habilidades para o diretório .claude/skills/.
Baixar ZIPClone o repositório e copie os arquivos da habilidade para o seu projeto.
git clone https://github.com/NVIDIA/skills/tree/main/skills/tao-setup-nvidia-gpu-host # Copy SKILL.md to your .claude/skills/ directory
Copiar





Lar
