Installation Holoscan Debian/apt
Objectif
Installer le runtime C++ du Holoscan SDK + headers sur Ubuntu en utilisant le dépôt apt de NVIDIA, en sélectionnant le bon package holoscan-cuda-* selon le driver CUDA de l'hôte et en vérifiant avec les exemples C++ fournis.
Prérequis
- Ubuntu x86_64 (22.04 / 24.04) ou ARM64 (Jetson / IGX) avec un GPU NVIDIA et un driver fonctionnel (
nvidia-smi). sudoet accès réseau àdeveloper.download.nvidia.cometdocs.nvidia.com.- Package
cuda-keyring(l'étape 2 l'installe s'il manque).
Limitations
- Pas de bindings Python depuis apt — combinez avec
/holoscan-install-wheelsi l'utilisateur en a besoin. - Ubuntu uniquement. Les autres distros doivent utiliser le container ou l'installation wheel.
- La variante du package doit correspondre au driver CUDA de l'hôte (
holoscan-cuda-12vsholoscan-cuda-13) ; mauvaise variante → "CUDA driver version is insufficient".
Étape 0 : Consulter les instructions d'installation officielles
Récupérez la section Debian/apt de https://docs.nvidia.com/holoscan/sdk-user-guide/sdk_installation.html avant d'installer. Extrayez :
- Les noms exacts des packages (
holoscan-cuda-12,holoscan-cuda-13,holoscan) - Les versions Ubuntu supportées
- L'URL cuda-keyring pour la bonne distro
Si la doc diffère de ce qui suit, la doc a raison.
Déterminez la version de l'OS et la variante CUDA si pas déjà connu — exécutez en parallèle :
lsb_release -a 2>/dev/null || cat /etc/os-release
nvidia-smi 2>&1 | head -5
Règle de variante CUDA — choisissez le package apt :
| CUDA Version de nvidia-smi | Package |
|---|---|
| 13.x+ | holoscan-cuda-13 |
| 12.x (sur IGX) | holoscan |
| 12.x (pas sur IGX) | holoscan-cuda-12 |
| 12.x (nvgpu) | holoscan-cuda-12 |
Étape 1 : Vérification des prérequis
dpkg -l | grep cuda-keyring
dpkg -l | grep -E "holoscan-cuda-(12|13)|^ii holoscan "
apt-cache show holoscan-cuda-13 holoscan-cuda-12 2>/dev/null | grep -E "^(Package|Version)"
Règles de décision selon ce que l'étape 1 a trouvé :
- Ignorez l'étape keyring si
cuda-keyringest déjà installé. - Ignorez
apt-get updatesi le dépôt est déjà configuré et le package visible dansapt-cache show. - Ignorez complètement l'étape 2 et allez directement à l'étape 3 si la bonne variante de package est déjà installée (ex.
holoscan-cuda-12quand ciblant cu12).
Étape 2 : Installation
Ignorez cette étape si le package est déjà installé (détecté à l'étape 1) ou si l'utilisateur est sur plateforme IGX.
# Si cuda-keyring manque (ajustez ubuntu2204/ubuntu2404 selon les besoins) et pas sur plateforme IGX :
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb && sudo apt-get update
sudo apt-get install -y holoscan-cuda-12 # ou holoscan-cuda-13
Étape 3 : Vérification
Définissez l'env une fois pour le reste de cette étape, puis exécutez les trois vérifications C++ :
HS=/opt/nvidia/holoscan
export LD_LIBRARY_PATH=$HS/lib
export HOLOSCAN_INPUT_PATH=$HS/data
ulimit -s 32768
ls $HS/examples/{hello_world,tensor_interop,video_replayer}/
# hello_world — attendu : "Hello World!"
$HS/examples/hello_world/cpp/hello_world
# tensor_interop — attendu : tenseurs doublant chaque passage, "Graph execution finished."
# Si "CUDA driver version is insufficient" : échangez la variante du package :
# sudo apt-get remove -y holoscan-cuda-13 && sudo apt-get install -y holoscan-cuda-12
$HS/examples/tensor_interop/cpp/tensor_interop
# video_replayer (10 frames, headless) — attendu : Vulkan sélectionne le GPU NVIDIA, "Graph execution finished."
# Toujours exécuter headless : fonctionne avec ou sans affichage, évite les défaillances GUI sur SSH.
ls $HS/data/racerx 2>/dev/null || sudo $HS/examples/download_example_data
python3 -c "
c=open('$HS/examples/video_replayer/cpp/video_replayer.yaml').read()
c=c.replace('count: 0','count: 10').replace('repeat: true','repeat: false').replace('realtime: true','realtime: false')
c=c.replace(' width: 854',' headless: true\n width: 854')
open('/tmp/vr.yaml','w').write(c)"
$HS/examples/video_replayer/cpp/video_replayer --config /tmp/vr.yaml
Étape 4 : Fournir à l'utilisateur le snippet d'env réutilisable
Une fois vérifié, partagez ce snippet avec l'utilisateur et suggérez de l'ajouter à son fichier de démarrage shell (ex., ~/.bashrc) s'il veut qu'il persiste entre les sessions :
export LD_LIBRARY_PATH=/opt/nvidia/holoscan/lib:${LD_LIBRARY_PATH}
export HOLOSCAN_INPUT_PATH=/opt/nvidia/holoscan/data
ulimit -s 32768
Proposez ensuite les étapes suivantes :
- Ajouter le support Python :
/holoscan-install-wheel - Explorer les exemples :
ls /opt/nvidia/holoscan/examples/ - Parcourir un exemple spécifique :
/explain-example - Commencer à construire une application Holoscan personnalisée
Dépannage
python3 -c "import holoscan"échoue après l'installation apt. Normal — le package Debian est C++ uniquement depuis v3.0.0. Exécutez/holoscan-install-wheelpour ajouter les bindings Python.- "CUDA driver version is insufficient" lors de l'exécution d'un exemple. Mauvaise variante du package. Revérifiez la version CUDA de
nvidia-smiet échangez les variantes :sudo apt-get remove -y holoscan-cuda-13 && sudo apt-get install -y holoscan-cuda-12(ou vice versa). E: Unable to locate package holoscan-cuda-12.cuda-keyringnon installé ou dépôt pas encore tiré. Exécutez le bloc keyring +apt-get updatede l'étape 2 (ajustezubuntu2204/ubuntu2404pour correspondre à l'hôte).- Segmentation fault au lancement d'un exemple.
ulimit -s 32768non défini dans le shell actuel. Placez-le avant la commande (pattern étape 3). error while loading shared libraries: libholoscan_core.so.LD_LIBRARY_PATHn'est pas défini. Utilisez le snippet d'env de l'étape 4 —export LD_LIBRARY_PATH=/opt/nvidia/holoscan/lib.video_replayerne trouve pas les données. DéfinissezHOLOSCAN_INPUT_PATH=/opt/nvidia/holoscan/data, ou exécutezsudo /opt/nvidia/holoscan/examples/download_example_datapour récupérer le datasetracerx.