跳到主内容
智客 ZICQ

技能库 智客分类:运维与云 holoscan-install-container

Holoscan Install Container

通过 NGC Docker 容器安装 Holoscan SDK 。 用于基于容器的安装;而不是用于本地的apt/pip/Conda安装.

1797 安装量

官方网址:skills.sh

技能介绍

先看中文介绍;官方 description 原文单独保留,不改写 SKILL.md。

做什么

通过 NGC Docker 容器安装 Holoscan SDK 。 用于基于容器的安装;而不是用于本地的apt/pip/Conda安装.

何时用

官方 description 未单独写出 Use when。按规范,代理会在用户任务与这段 description 的关键词匹配时激活本技能。

代理如何加载

按 Agent Skills 渐进披露:启动时只加载 name 与 description(约 100 token);任务匹配后才读入整份 SKILL.md 正文;scripts/、references/、assets/ 仅在需要时再读。 本文件正文结构:Holoscan NGC Container Installation、Purpose、Prerequisites、Limitations、Instructions、Step 1: Pick the tag。 其中含规范建议的小节:分步指令、输入输出示例、边界情况。

文件分析

文件分析:这是一份仅含 SKILL.md 的指令型技能,代理激活后整份正文进入上下文。

官方 description(原文)

Install Holoscan SDK via the NGC Docker container. Use for container-based installs; not for native apt/pip/Conda installs.

Holoscan NGC Container InstallationPurposePrerequisitesLimitationsInstructionsStep 1: Pick the tagStep 2: Verify GPU passthrough, then pullStep 3: Verify with six examples1a. hello_world (Python) — expect "Hello World!"1b. hello_world (C++) — expect "Hello World!"2a. tensor_interop (C++) — expect tensors doubling each pass, "Graph execution finished."2b. tensor_interop (Python, 10 frames) — Holoviz, headless. The YAML has no

· 许可:Apache-2.0

来源分类:skills.sh agent-skill

SKILL.md 与 Agent 调用

官方规范 ↗
name
holoscan-install-container
description
Install Holoscan SDK via the NGC Docker container. Use for container-based installs; not for native apt/pip/Conda installs.
许可
Apache-2.0
  1. 发现技能客户端向 Agent 提供名称与描述目录。
  2. 匹配与调用用户指定或任务匹配后,载入 SKILL.md 指令。
  3. 按需加载按步骤读取参考文档、使用脚本与素材。

具体调用语法与可用工具以目标 Agent 客户端为准。 查看调用机制说明 ↗

安装这个技能

Skills CLI ↗

先选择目标 Agent 和安装范围,保留技能包的附属文件,安装后检查客户端能否发现该技能。

交给 Agent 安装

复制安装指令给支持 Agent Skills 的代理,确认其中的目标目录与客户端匹配。

把 Agent Skill「holoscan-install-container」安装到我的项目:SKILL.md 原文与官方 description 见 https://zicq.com/zh/skills/skl-f8ef842ecbfb7f12-Holoscan-Install-Container.html
请存为 .cursor/skills/holoscan-install-container/SKILL.md 或 .claude/skills/holoscan-install-container/SKILL.md,frontmatter 的 name 与 description 保持原样,不要改写。

GitHub 完整包 ↗

终端安装 · Skills CLI

需要 Node.js 与 npx。先查看仓库技能列表,确认实际名称。

npx skills add 'https://github.com/nvidia/skills' --list

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

CLI 会交互选择目标 Agent,默认安装到项目;用户级安装使用 -g。先通过查看命令核对仓库内容,再用 npx skills list 检查已安装技能。

阅读排版
--- name: holoscan-install-container version: "1.0.0" description: "Install Holoscan SDK via the NGC Docker container. Use for container-based installs; not for native apt/pip/Conda installs." license: Apache-2.0 metadata: author: "Holoscan Team " github-url: "https://github.com/nvidia-holoscan/holoscan-sdk" tags: - holoscan - install - container - docker - ngc --- # Holoscan NGC Container Installation ## Purpose Pull and verify the official Holoscan SDK container from NGC (`nvcr.io/nvidia/clara-holoscan/holoscan`), selecting the right CUDA/arch tag for the host GPU and validating with the bundled Python and C++ examples. ## Prerequisites - Linux host with an NVIDIA GPU and a working driver (`nvidia-smi`). - Docker installed and the user in the `docker` group (or `sudo`). - NVIDIA Container Toolkit installed (`docker run --gpus all` works). - ~10–20 GB free disk for the image pull. - Network access to `nvcr.io` and `docs.nvidia.com`. ## Limitations - Container images cover only the tag matrix below — no Conda/pip env inside. - GUI examples require X11 forwarding; this skill runs Holoviz headless to avoid that. - Tag suffix must match the host GPU/driver (cuda13 / cuda12-dgpu / cuda12-igpu) — wrong suffix → CUDA init failures. ## Instructions - Container repo: `nvcr.io/nvidia/clara-holoscan/holoscan`. - The doc page at https://docs.nvidia.com/holoscan/sdk-user-guide/sdk_installation.html is canonical — fetch it if anything below disagrees. - Work through the steps below in order: pick the tag, verify GPU passthrough and pull, verify with the six examples, then hand off the launch command. ## Step 1: Pick the tag Tag = `-`, e.g. `v4.1.0-cuda13`. Get the current SDK version from the doc page above; pick the suffix from `nvidia-smi` (the "CUDA Version" field, top-right of the table header): | `nvidia-smi` CUDA Version | Suffix | |---|---| | 13.x+ | `cuda13` | | 12.x, Ampere/Ada dGPU | `cuda12-dgpu` | | 12.x, ARM64 iGPU (nvgpu) | `cuda12-igpu` | The "CUDA Forward Compatibility mode ENABLED" banner is expected — not an error — when the container ships a newer CUDA minor version than the host driver supports. The forward-compat shim lets the container's CUDA runtime work against the older host driver within the same major version. ## Step 2: Verify GPU passthrough, then pull ```bash docker run --rm --gpus all ubuntu:22.04 nvidia-smi 2>&1 | tail -5 ``` If Docker is missing → install from https://docs.docker.com/engine/install/. If GPU passthrough fails → install the NVIDIA Container Toolkit per https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html, then retry. Pull (~10–20 GB — warn the user before starting): ```bash docker pull nvcr.io/nvidia/clara-holoscan/holoscan: ``` ## Step 3: Verify with six examples Tests cover: bare Python binding (1a), bare C++ runtime (1b, 2a), Python + Holoviz/Vulkan (2b, 3a), and C++ + Holoviz/Vulkan (3b). Holoviz examples always run headless (inject `headless: true` into the YAML) — this works whether or not a display is attached and avoids GUI failure modes over SSH. ```bash IMG=nvcr.io/nvidia/clara-holoscan/holoscan: RUN=(docker run --rm --runtime=nvidia --gpus all --cap-add CAP_SYS_PTRACE --ipc=host --ulimit memlock=-1 --ulimit stack=67108864) # 1a. hello_world (Python) — expect "Hello World!" "${RUN[@]}" "$IMG" bash -c \ "ulimit -s 32768 && python3 /opt/nvidia/holoscan/examples/hello_world/python/hello_world.py" # 1b. hello_world (C++) — expect "Hello World!" "${RUN[@]}" "$IMG" bash -c \ "ulimit -s 32768 && /opt/nvidia/holoscan/examples/hello_world/cpp/hello_world" # 2a. tensor_interop (C++) — expect tensors doubling each pass, "Graph execution finished." "${RUN[@]}" "$IMG" bash -c \ "ulimit -s 32768 && /opt/nvidia/holoscan/examples/tensor_interop/cpp/tensor_interop" # 2b. tensor_interop (Python, 10 frames) — Holoviz, headless. The YAML has no # headless field by default, so inject one under `holoviz:`. Expect # "message received (count: 10)". "${RUN[@]}" "$IMG" bash -c " ulimit -s 32768 sed -e 's/count: 0/count: 10/' \ -e 's/repeat: true/repeat: false/' \ -e 's/realtime: true/realtime: false/' \ -e 's/^holoviz:/holoviz:\n headless: true/' \ /opt/nvidia/holoscan/examples/tensor_interop/python/tensor_interop.yaml > /tmp/ti.yaml cd /opt/nvidia/holoscan/examples/tensor_interop/python python3 tensor_interop.py --config /tmp/ti.yaml " # 3a. video_replayer (Python, 10 frames) — Holoviz, headless. Inject `headless: true` # under `holoviz:` (above `width: 854`). Same sed works for the C++ YAML in 3b — # both files share the same `holoviz:` section shape. "${RUN[@]}" "$IMG" bash -c " ulimit -s 32768 sed -e 's/count: 0/count: 10/' \ -e 's/repeat: true/repeat: false/' \ -e 's/realtime: true/realtime: false/' \ -e 's/^ width: 854/ headless: true\n width: 854/' \ /opt/nvidia/holoscan/examples/video_replayer/python/video_replayer.yaml > /tmp/vr.yaml cd /opt/nvidia/holoscan/examples/video_replayer/python HOLOSCAN_INPUT_PATH=/opt/nvidia/holoscan/data python3 video_replayer.py --config /tmp/vr.yaml " # 3b. video_replayer (C++, 10 frames) — same headless injection as 3a. The C++ # YAML hard-codes `directory: "../data/racerx"`, but HOLOSCAN_INPUT_PATH # overrides it, so we don't need to patch that field. "${RUN[@]}" "$IMG" bash -c " ulimit -s 32768 sed -e 's/count: 0/count: 10/' \ -e 's/repeat: true/repeat: false/' \ -e 's/realtime: true/realtime: false/' \ -e 's/^ width: 854/ headless: true\n width: 854/' \ /opt/nvidia/holoscan/examples/video_replayer/cpp/video_replayer.yaml > /tmp/vr_cpp.yaml cd /opt/nvidia/holoscan/examples/video_replayer/cpp HOLOSCAN_INPUT_PATH=/opt/nvidia/holoscan/data ./video_replayer --config /tmp/vr_cpp.yaml " ``` ## Step 4: Launch command - Read https://catalog.ngc.nvidia.com/orgs/nvidia/teams/clara-holoscan/containers/holoscan. - Explain the docker flags below to the user. - Refer the user to that link for additional flags (e.g., how to mount V4L2 video devices). ```bash docker run -it --rm \ --runtime=nvidia --gpus all --cap-add CAP_SYS_PTRACE \ --ipc=host --ulimit memlock=-1 --ulimit stack=67108864 \ nvcr.io/nvidia/clara-holoscan/holoscan: # Examples: /opt/nvidia/holoscan/examples/ # Mount files: -v /host/path:/container/path # GUI examples: add -v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY=$DISPLAY ``` Next: - Explore: `ls /opt/nvidia/holoscan/examples/` - Walk through one: `/holoscan-explain-example` ## Troubleshooting - **`docker: Error response from daemon: could not select device driver "nvidia"`.** NVIDIA Container Toolkit is missing or not configured. Install per the link in Step 2 and restart Docker. - **CUDA init failure inside the container.** Tag suffix doesn't match the host. Re-check `nvidia-smi` CUDA Version and the table in Step 1. - **Segmentation fault when launching an example.** `ulimit -s 32768` wasn't applied inside the container. Use the `bash -c "ulimit -s 32768 && ..."` pattern shown in Step 3. - **Holoviz example hangs / no window over SSH.** YAML wasn't patched to `headless: true`. Use the `sed` injection shown in Step 3. - **`video_replayer` can't find data.** Set `HOLOSCAN_INPUT_PATH=/opt/nvidia/holoscan/data` — overrides the YAML's hard-coded path.

相关技能

运维与云

Docker Essentials

用于容器管理,图像操作,调试的基本道克命令和工作流程.

运维与云

Find Skills

从开放的代理技能生态系统中发现并安装技能. 使用时:(1)用户问"我如何做X",X可能拥有现有技能,(2)用户说"为X找到技能"或"是否为X有技能",(3)用户问"你能否做X",X是专门能力,(4)用户想扩展代理能力,(5)用户想搜索工具,模板,或工作流程,(6)用户提到他们希望…

运维与云

Azure Diagnostics

Azure上使用AppLens,AzureMonitor,资源健康,安全分型的调试Azure生产问题. 当:调试生产问题,故障解答应用服务,应用服务高CPU,应用服务部署失败,故障解答容器应用,故障解答功能,故障解答AKS,VM RDP,Linux SSH,VM黑屏幕,无法连接到…

运维与云

Azure Prepare

准备 azd 用于部署的Azure项目:为Azure开发者CLI(azd)工作流程生成azure.yaml,基础设施(Bicep/Terraform)和多克文件. 仅当用户明确想要使用 azd 作为部署工具时使用, 或项目已经有一个 azure 。 雅姆尔文件。 不使用: 非az…