NVIDIA Holoscan SDK v2.9.0

Holoscan CLI - Run 命令

holoscan run - 通过减少与 docker run 相比所需的参数数量,简化了打包的 Holoscan 应用程序的运行。此外,它在启动打包的 Holoscan 应用程序时遵循 HAP 规范 的指南。

警告

在 Kubernetes 或其他服务提供商上运行打包的 Holoscan 应用程序,以非 root 用户身份运行 Docker,并运行 Holoscan CLI run 命令,且登录用户的 ID 不同时,请确保指定构建应用程序包时使用的 USER ID

例如,在使用 Argo 运行 UID=1000 的 Holoscan 打包应用程序时,包含 securityContext

复制
已复制!
            

spec: securityContext: runAsUser: 1000 runAsNonRoot: true

运行打包的 Holoscan 应用程序

复制
已复制!
            

holoscan run -i /path/to/my/input -o /path/to/application/generated/output my-application:1.0.1

image:[tag]

要执行的 Docker 容器镜像的名称和标签。

[--address ADDRESS]

App Driver 的地址 ([<IP 或主机名>][:<端口>])。如果未指定,App Driver 将使用默认主机地址 (0.0.0.0) 和默认端口号 (8765)。

例如

复制
已复制!
            

--address my_app_network --address my_app_network:8765

注意

确保 IP 地址未被阻止,并且端口已根据防火墙进行配置。

[--driver]

在当前计算机上运行 App Driver。可以与 [--worker] 选项一起使用,以在同一台计算机上同时运行 App DriverApp Worker

[--input|-i INPUT]

指定应用程序要处理的输入数据的目录路径。指定后,将设置目录挂载到环境变量 HOLOSCAN_INPUT_PATH 中定义的值。

注意

确保主机上的目录可由当前用户或使用 –uid 指定的用户访问。

注意

在 Docker (DooD) 内部运行应用程序时,请使用主机系统路径。

[--output|-o OUTPUT]

指定用于存储应用程序生成的工件的目录路径。指定后,将设置目录挂载到环境变量 HOLOSCAN_OUTPUT_PATH 中定义的值。

注意

确保主机上的目录可由当前用户或使用 –uid 指定的用户访问。

[--fragments|-f FRAGMENTS]

要由 App Worker 执行的片段的逗号分隔名称。如果未指定,则只会执行一个片段(由 App Driver 选择)。all 可用于运行所有片段。

[--worker]

运行 App Worker

[--worker-address WORKER_ADDRESS]

App Worker 的地址 ([<IP 或主机名>][:<端口>])。如果未指定,App Worker 将使用默认主机地址 (0.0.0.0) 和一个在 1000032767 之间随机选择且当前未使用的端口号。如果工作进程地址是本地 IP 地址,则此参数会自动设置 HOLOSCAN_UCX_SOURCE_ADDRESS 环境变量。有关详细信息,请参阅 分布式应用程序的环境变量

例如

复制
已复制!
            

--worker-address my_app_network --worker-address my_app_network:10000

注意

确保 IP 地址未被阻止,并且端口已根据防火墙进行配置。

[--config CONFIG]

应用程序配置文件的路径。如果指定,它将覆盖在环境变量 HOLOSCAN_CONFIG_PATH 中找到的嵌入式配置文件。

[--health-check HEALTH_CHECK]

通过将 HOLOSCAN_ENABLE_HEALTH_CHECK 环境变量设置为 true,为 分布式应用程序 启用运行状况检查服务。这允许 grpc-health-probe 监视应用程序的活跃度和就绪状态。

[--network|-n NETWORK]

应用程序连接以与其他容器通信的 Docker 网络。如果未指定,Runner 默认使用 host 网络。否则,指定的值将用于创建具有 bridge 驱动程序的网络。

对于高级用途,请首先使用 docker network create 创建网络,并将网络的名称传递给 --network 选项。有关更多详细信息,请参阅 Docker 网络 文档。

[--nic NETWORK_INTERFACE]

与分布式多片段应用程序一起使用的网络接口的名称。此选项使用指定的值设置 UCX_NET_DEVICES 环境变量,并且在跨多个节点运行分布式多片段应用程序时是必需的。有关详细信息,请参阅 UCX 网络接口选择

[--use-all-nics]

设置后,此选项允许 UCX 控制用于数据传输的网络接口卡的选择。否则,将使用使用“–nic”指定的网络接口卡。此选项将环境变量 UCX_CM_USE_ALL_DEVICES 设置为 y(默认值:False)。

如果未设置此选项,CLI 运行器始终将 UCX_CM_USE_ALL_DEVICES 设置为 n

[--render|-r]

启用应用程序的图形渲染。默认为 False

[--quiet|-q]

禁止显示 STDOUT,并且仅打印来自应用程序的 STDERR。默认为 False

[--shm-size]

设置 /dev/shm 的大小。格式为 <数字(int,float)>[MB|m|GB|g|Mi|MiB|Gi|GiB]。使用 config 读取在 app.json 清单中定义的共享内存值。默认情况下,容器使用 --ipc=host 和挂载的主机系统 /dev/shm 启动。

[--terminal]

输入终端,其中包含所有配置的卷映射和环境变量。

[--device]

将主机设备映射到应用程序容器中。

默认情况下,CLI 搜索 /dev/ 路径以查找设备,除非指定的字符串以 / 开头。

例如

复制
已复制!
            

# mount all AJA capture cards --device ajantv* # mount AJA capture card 0 and 1 --device ajantv0 ajantv1 # mount V4L2 video device 1 and AJAX capture card 2 --device video1 --device /dev/ajantv2

警告

使用 --device 选项时,在最后一个项目后附加 --,以避免 CLI 误解。例如

复制
已复制!
            

holoscan run --render --device ajantv0 video1 -- my-application-image:1.0

[--gpu]

使用在 包清单文件 中定义的值或 all(如果未定义),覆盖 NVIDIA_VISIBLE_DEVICES 环境变量的值。

有关所有可用选项,请参阅 GPU 枚举 页面。

注意

在具有 iGPU 和 dGPU 的系统上为 iGPU 构建 HAP 时,默认值为 nvidia.com/igpu=0

注意

单个整数值转换为设备索引,而不是 GPU 的数量。

[--uid UID]

以指定的用户 ID (UID) 运行应用程序。默认为当前用户的 UID。

[--gid GID]

以指定的组 ID (GID) 运行应用程序。默认为当前用户的 GID。

注意

Holoscan 应用程序支持各种用于配置的环境变量。有关详细信息,请参阅 分布式应用程序的环境变量

上一篇 Holoscan CLI - Package 命令
下一篇 Holoscan CLI - Version 命令
© 版权所有 2022-2024 NVIDIA。 上次更新时间:2025 年 1 月 27 日。