holoscan-install-debian

bởi nvidia

Cài đặt Holoscan SDK gốc trên Ubuntu qua apt. Dùng cho cài đặt C++ trên Ubuntu; kết hợp với /holoscan-install-wheel cho Python.

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

Holoscan Debian/apt Installation

Purpose

Install the Holoscan SDK C++ runtime + headers on Ubuntu using NVIDIA's apt repo, selecting the right holoscan-cuda-* package for the host's CUDA driver and verifying with the bundled C++ examples.

Prerequisites

  • Ubuntu x86_64 (22.04 / 24.04) or ARM64 (Jetson / IGX) with an NVIDIA GPU and working driver (nvidia-smi).
  • sudo and network access to developer.download.nvidia.com and docs.nvidia.com.
  • cuda-keyring package (Step 2 installs it if missing).

Limitations

  • No Python bindings from apt — pair with /holoscan-install-wheel if the user needs Python.
  • Ubuntu-only. Other distros must use the container or wheel install.
  • Package variant must match the host CUDA driver (holoscan-cuda-12 vs holoscan-cuda-13); wrong variant → "CUDA driver version is insufficient".

Step 0: Consult the Official Install Instructions

Fetch the Debian/apt section of https://docs.nvidia.com/holoscan/sdk-user-guide/sdk_installation.html before installing. Extract:

  • Exact package names (holoscan-cuda-12, holoscan-cuda-13, holoscan)
  • Supported Ubuntu versions
  • The cuda-keyring URL for the right distro

If the doc disagrees with anything below, the doc wins.

Determine OS version and CUDA variant if not already known — run in parallel:

lsb_release -a 2>/dev/null || cat /etc/os-release
nvidia-smi 2>&1 | head -5

CUDA variant rule — pick the apt package:

nvidia-smi CUDA VersionPackage
13.x+holoscan-cuda-13
12.x (on IGX)holoscan
12.x (not on IGX)holoscan-cuda-12
12.x (nvgpu)holoscan-cuda-12

Step 1: Prerequisites Check

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)"

Decision rules based on what Step 1 found:

  • Skip the keyring step if cuda-keyring is already installed.
  • Skip apt-get update if the repo is already configured and the package is visible in apt-cache show.
  • Skip Step 2 entirely and proceed directly to Step 3 if the correct package variant is already installed (e.g. holoscan-cuda-12 when targeting cu12).

Step 2: Install

Skip this step if the package is already installed (detected in Step 1) or if user is on IGX platform.

# If cuda-keyring missing (adjust ubuntu2204/ubuntu2404 as needed) and not on IGX platform:
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   # or holoscan-cuda-13

Step 3: Verify

Set the env once for the rest of this step, then run the three C++ checks:

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 — expected: "Hello World!"
$HS/examples/hello_world/cpp/hello_world

# tensor_interop — expected: tensors doubling each pass, "Graph execution finished."
# If "CUDA driver version is insufficient": swap package variant:
#   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) — expected: Vulkan selects NVIDIA GPU, "Graph execution finished."
# Always run headless: works with or without a display, avoids GUI failure modes over 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

Step 4: Give the User the Reusable Env Snippet

Once verified, share this snippet with user and suggest adding it to their shell startup file (e.g., ~/.bashrc) if they want it to persist across sessions:

export LD_LIBRARY_PATH=/opt/nvidia/holoscan/lib:${LD_LIBRARY_PATH}
export HOLOSCAN_INPUT_PATH=/opt/nvidia/holoscan/data
ulimit -s 32768

Then offer next steps:

  • Add Python support: /holoscan-install-wheel
  • Explore examples: ls /opt/nvidia/holoscan/examples/
  • Walk through a specific example: /explain-example
  • Start building a custom Holoscan application

Troubleshooting

  • python3 -c "import holoscan" fails after apt install. Expected — the Debian package has been C++ only since v3.0.0. Run /holoscan-install-wheel to add Python bindings.
  • "CUDA driver version is insufficient" when running an example. Wrong package variant. Re-check nvidia-smi CUDA Version and swap variants: sudo apt-get remove -y holoscan-cuda-13 && sudo apt-get install -y holoscan-cuda-12 (or vice versa).
  • E: Unable to locate package holoscan-cuda-12. cuda-keyring not installed or repo not yet pulled. Run the keyring + apt-get update block in Step 2 (adjust ubuntu2204/ubuntu2404 to match the host).
  • Segmentation fault when launching an example. ulimit -s 32768 not set in the current shell. Prepend it to the command (Step 3 pattern).
  • error while loading shared libraries: libholoscan_core.so. LD_LIBRARY_PATH is unset. Use the env snippet from Step 4 — export LD_LIBRARY_PATH=/opt/nvidia/holoscan/lib.
  • video_replayer can't find data. Set HOLOSCAN_INPUT_PATH=/opt/nvidia/holoscan/data, or run sudo /opt/nvidia/holoscan/examples/download_example_data to fetch the racerx dataset.

Thêm skills từ nvidia

compileiq-debug
nvidia
Sử dụng khi có điều gì đó không ổn: Search() bị treo, tất cả các đánh giá đều trả về INVALID_SCORE, điểm số không cải thiện, mọi cấu hình đều trả về cùng một số, lỗi ptxas…
create-github-pr
nvidia
Tạo pull request GitHub bằng cách sử dụng gh CLI. Sử dụng khi người dùng muốn tạo PR mới, gửi mã để xem xét, hoặc mở pull request. Từ khóa kích hoạt -…
nemoclaw-maintainer-cross-issue-sweep
nvidia
Quét các vấn đề đang mở khác để tìm những vấn đề mà một PR nhất định có thể sửa hoặc vô tình làm hỏng. Đưa ra các cơ hội sửa lỗi liền kề và rủi ro mâu thuẫn với file:dòng…
fhir-basics
nvidia
Dạy các tác nhân cách hoạt động của API FHIR R4, những tài nguyên có sẵn, cách truy vấn chúng với tham số tìm kiếm, và cách phân tích chính xác tất cả các định dạng phản hồi…
compileiq-validate-result
nvidia
Sử dụng SAU KHI tìm kiếm hoàn tất và TRƯỚC KHI yêu cầu tăng tốc hoặc gửi ACF. Tải tệp CSV dump_results, trích xuất các ứng viên top-K (đơn mục tiêu)…
changelog-audit
nvidia
Kiểm tra Warp CHANGELOG.md trước khi phát hành: khôi phục các mục bị mất, sắp xếp theo tác động người dùng, tinh chỉnh ngôn ngữ mục, xuống dòng và (chế độ nhánh phát hành) so sánh bump…
maintain-dynamic-plugins
nvidia
Duy trì các bộ nạp plugin động NeMo Relay, tệp kê khai, SDK gốc Rust, giao thức worker gRPC, SDK worker Python, tài liệu, kiểm thử và phạm vi quy trình phát hành
dgx-diagnose
nvidia
Chẩn đoán các sự cố thường gặp của DGX Station GB300 — lỗi CUDA, nhắm sai GPU, lỗi container vLLM/SGLang, vấn đề trạng thái MIG, lỗi NVLink/Fabric Manager,…