holoscan-setup

Par nvidia · skills

Guide d'installation du SDK Holoscan : inspecte l'hôte, évalue la compatibilité de la plateforme, recommande une méthode d'installation et délègue à la skill d'installation correspondante.

npx skills add https://github.com/nvidia/skills --skill holoscan-setup

Configuration du SDK Holoscan

Objectif

Détermine la bonne méthode d'installation du SDK Holoscan pour l'hôte actuel en inspectant le matériel, l'OS, le driver CUDA et les outils existants, puis délègue à une skill d'installation spécifique à la méthode. Couvre les conteneurs NGC, Debian/apt, les roues pip, Conda, et les builds à partir du source sur Ubuntu, RHEL, IGX Orin, Jetson, et les plateformes DGX Spark / Grace-Hopper.

Prérequis

  • Hôte Linux (Ubuntu 22.04/24.04, RHEL 9.x, IGX Orin, Jetson, ou DGX Spark / Grace-Hopper)
  • GPU NVIDIA avec un driver opérationnel (nvidia-smi retourne une CUDA Version)
  • Accès réseau à docs.nvidia.com et NGC
  • Au moins un parmi : Docker + NVIDIA Container Toolkit, apt, Python 3.10–3.13 avec pip, Conda, ou une chaîne de build — selon la méthode choisie

Scripts Disponibles

Script Objectif Arguments
scripts/check_conda.sh Détecte les installations Conda même si absent du PATH (cherche dans ~/miniconda3, ~/miniforge3, ~/anaconda3, ~/mambaforge, /opt/conda, et les fichiers rc shell) ; signale les envs et lesquels ont holoscan importable. aucun
scripts/check_ngc_image.sh Vérifie si l'image de conteneur NGC Holoscan pour un suffixe de tag CUDA donné est téléchargée ou disponible. <cuda-tag-suffix> — parmi cuda13, cuda12-dgpu, cuda12-igpu

Invoquez les scripts avec run_script("scripts/check_conda.sh") et run_script("scripts/check_ngc_image.sh", "cuda13"). Fiez-vous à la sortie du script plutôt qu'à des commandes simples comme which conda ou docker images.

Instructions

Soyez conversationnel et procédez étape par étape — ne présentez pas toutes les informations d'un coup. Complétez chaque étape et rendez compte avant de continuer.

Règles de flux (doivent être suivies)

  1. Terminez l'étape 5 avec une recommandation en une ligne en gras qui nomme la méthode (par ex. **Recommandation :** Conteneur NGC — regroupe toutes les dépendances, chemin le plus rapide vers une installation fonctionnelle.).
  2. Pour un nouvel utilisateur sur un hôte x86_64 supporté avec Docker disponible, cette recommandation doit être Conteneur NGC.
  3. Après la recommandation, arrêtez et demandez quelle méthode utiliser. Ne collez pas docker pull, docker run, apt install, pip install, ou d'autres commandes d'installation à ce tour — elles appartiennent à la skill d'installation déléguée à l'étape 6.
  4. Si le chemin du conteneur est en jeu, vérifiez Docker + le passage GPU vous-même à l'étape 4 (exécutez la commande montrée). Ne demandez pas à l'utilisateur de lancer nvidia-smi ou docker --version pour vous.

Étape 1 : Lire d'abord la Documentation

Allez chercher https://docs.nvidia.com/holoscan/sdk-user-guide/ puis sdk_installation.html pour obtenir les plateformes supportées de la release actuelle, les noms de paquets, et les exigences d'installation. Ne vous fiez pas à des hypothèses codées en dur.

Étape 2 : Inspecter la Machine

Exécutez en parallèle :

uname -a && (lsb_release -a 2>/dev/null || cat /etc/os-release)
uname -m
nvidia-smi 2>&1 | head -10
nproc && free -h | head -2

Clé : Lisez le champ « CUDA Version » de nvidia-smi (haut-droit de l'en-tête du tableau) — c'est la version CUDA maximale que le driver supporte, et elle détermine le choix du paquet cuda12 vs cuda13.

Étape 3 : Évaluer la Compatibilité

Plateforme Méthodes Disponibles
Ubuntu 22.04/24.04, x86_64 Conteneur, Debian/apt, roue pip, Conda, Source
RHEL 9.x, x86_64 Conteneur uniquement
IGX Orin (ARM64) Conteneur, Debian/apt, Source
Jetson AGX Orin / Orin Nano Conteneur, Debian/apt (iGPU)
Jetson AGX Thor Conteneur, Debian/apt
DGX Spark / Grace-Hopper Conteneur (vérifiez les exigences d'OS dans la doc)
Autre Linux, x86_64 Le conteneur peut fonctionner ; roue pip si glibc ≥ 2.35

Étape 4 : Vérifier les Outils et Présenter les Options

Exécutez en parallèle :

docker --version 2>&1 | head -1; python3 --version 2>&1; pip3 --version 2>&1
dpkg -l | grep holoscan || true
pip3 show holoscan 2>/dev/null | grep -E "^(Name|Version)" || true
~/holoscan/venv/bin/pip show holoscan 2>/dev/null | grep -E "^(Name|Version)" | sed 's/^/venv: /' || true

Puis vérifiez le passage GPU vous-même — ne demandez pas à l'utilisateur de lancer cette commande :

docker run --rm --gpus all ubuntu:22.04 nvidia-smi 2>&1 | tail -5 || true

Interprétez le résultat pour la colonne Status à l'étape 5 :

  • docker manquant → ligne conteneur Status ✗ — Docker non installé.
  • Docker présent mais could not select device driver "nvidia"✗ — NVIDIA Container Toolkit manquant.
  • Sortie nvidia-smi apparaît → .

Puis invoquez les scripts de détection via run_script :

  • run_script("scripts/check_conda.sh") — voir Scripts Disponibles ci-dessus pour savoir pourquoi c'est préféré à conda --version.
  • run_script("scripts/check_ngc_image.sh", "<cuda-tag-suffix>") — remplacez <cuda-tag-suffix> par le tag déterminé à l'étape 2 (par ex. cuda13, cuda12-dgpu, cuda12-igpu).

Si Holoscan est déjà installé, notez la version et demandez s'il faut faire une mise à jour ou vérifier l'installation existante.

Règle variante CUDA (référence canonique — appliquez-la dans toutes les étapes ci-dessous) :

nvidia-smi CUDA Version Paquets natifs Tag conteneur
13.x+ holoscan-cu13 / holoscan-cuda-13 cuda13
12.x, GPU Blackwell holoscan-cu12 / holoscan-cuda-12 cuda13 (Compatibilité Forward) ou cuda12-dgpu
12.x, dGPU Ampere/Ada holoscan-cu12 / holoscan-cuda-12 cuda12-dgpu
ARM64 iGPU (Jetson, IGX) holoscan cuda12-igpu

Les installations natives traitent la version CUDA du driver comme un plafond rigide. Les conteneurs supportent la compatibilité forward (une bannière disant « CUDA Forward Compatibility mode ENABLED » est attendue, ce n'est pas une erreur).

Étape 5 : Présenter les Options et Recommander

Présentez toujours toutes les méthodes dans le tableau — n'omettez jamais une ligne. Utilisez la colonne Status pour indiquer la disponibilité sur l'hôte (les méthodes indisponibles montrent ✗ avec une raison courte). Utilisez ce format de tableau :

Méthode Meilleure pour Status
Conteneur NGC Toutes les dépendances groupées (CUDA, TensorRT, LibTorch, ONNX Runtime, Vulkan) ; C++ + Python. Nécessite Docker + NVIDIA Container Toolkit. ✓/✗ selon la présence de docker
Debian/apt Ubuntu natif ; C++ uniquement ✓/✗ si le paquet est installé
Roue pip Projets Python uniquement ; nécessite CUDA Toolkit sur PATH ; Python 3.10–3.13. ✓/✗ si la roue est installée dans un venv à ~/holoscan/venv
Conda CUDA 13 uniquement ; bon si vous êtes déjà dans un environnement conda. ✓/✗ selon la sortie de check_conda.sh (pas seulement which conda)
Source Modifier les internes du SDK, flags CMake personnalisés, symboles de debug, plateforme non supportée, ou branche non publiée. ✓/✗ si déjà cloné à ~/holoscan/holoscan-sdk

Après le tableau, terminez le tour avec cette forme exacte de deux lignes :

Recommandation : <méthode><pourquoi en une ligne>

Quelle méthode aimeriez-vous utiliser ? (conteneur / apt / wheel / conda / source)

Si l'utilisateur découvre Holoscan et que l'hôte est une plateforme x86_64 supportée avec Docker disponible, recommandez Conteneur NGC. Pour RHEL 9 ou d'autres hôtes ne supportant que les conteneurs, recommandez le conteneur. Pour les projets Python uniquement sur un hôte sans Docker, recommandez la roue pip.

Ne pas inclure docker pull, docker run, apt install, ou pip install dans ce tour — ceux-ci vivent dans la skill d'installation invoquée à l'étape 6. Gardez cette réponse courte pour éviter qu'elle soit tronquée au milieu du tableau.

Étape 6 : Déléguer à la Skill d'Installation

Une fois qu'une méthode est choisie, invoquez la skill correspondante — ne répétez pas les étapes d'installation en ligne :

Méthode Skill à invoquer
Conteneur NGC /holoscan-install-container
Debian/apt /holoscan-install-debian
Roue pip /holoscan-install-wheel
Conda /holoscan-install-conda
Source /holoscan-install-source

Passez la variante CUDA (cu12/cu13/igpu) et tout autre fait pertinent des étapes 2–4 en tant que contexte lors de l'invocation de la skill.

La skill d'installation possède l'ensemble complet des commandes — incluant les flags de conteneur recommandés (--gpus all, --ipc=host, --ulimit memlock=-1, --ulimit stack=67108864, ulimit -s 32768 interne) et des exemples de vérification. Ne les restituez pas depuis holoscan-setup ; déléguez et laissez la skill d'installation les produire.

Étape 7 : Résumé

Si l'installation a réussi et des tests ont été lancés, imprimez un tableau récapitulatif des résultats des tests.

Limitations

  • RHEL 9.x ne supporte que la méthode du conteneur NGC — les paquets natifs ne sont pas publiés.
  • Les paquets Conda sont CUDA 13 uniquement ; les hôtes CUDA 12 doivent utiliser le conteneur, apt, la roue pip, ou la source.
  • Les installations Debian/apt installent C++ uniquement depuis Holoscan v3.0.0 ; le support Python nécessite une installation supplémentaire de roue pip.
  • La roue pip nécessite glibc ≥ 2.35 et Python 3.10–3.13.
  • Les installations natives ne peuvent pas dépasser la version CUDA rapportée par le driver ; seuls les conteneurs peuvent utiliser la compatibilité forward CUDA.
  • Les exigences d'OS de DGX Spark / Grace-Hopper changent entre les releases — vérifiez toujours sdk_installation.html.

Dépannage

  • conda --version dit « commande non trouvée » mais Conda est installé — courant dans les setups zsh avec conda chargé paresseusement ou quand seul .bashrc a lancé conda init. Utilisez run_script("scripts/check_conda.sh") ; il cherche dans les répertoires d'installation et les fichiers rc.
  • nvidia-smi montre une version CUDA inférieure à celle attendue — ce champ est le max du driver supporté, pas la toolkit installée. Mettez à jour le driver avant d'installer un paquet CUDA plus nouveau.
  • L'installation Debian réussit mais import holoscan échoue en Python — apt installe C++ uniquement depuis v3.0.0. Continuez avec /holoscan-install-wheel.
  • pip install holoscan échoue avec des erreurs glibc — la glibc de l'hôte est < 2.35. Utilisez le conteneur ou apt à la place.
  • check_ngc_image.sh rapporte que l'image manque — confirmez la connexion NGC (docker login nvcr.io) et que le suffixe du tag correspond à la règle variante CUDA à l'étape 4.

Skills similaires