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 run
[--help|-h] [--log-level|-l {DEBUG,INFO,WARN,ERROR,CRITICAL}] [--address ADDRESS] [--driver] [--input|-i INPUT] [--output|-o OUTPUT] [--fragments|-f FRAGMENTS] [--worker] [--worker-address WORKER_ADDRESS] [--config CONFIG] [--health-check HEALTH_CHECK] [--network|-n NETWORK] [--nic NETWORK_INTERFACE] [--use-all-nics] [--render|-r] [--quiet|-q] [--shm-size][--terminal] [--device] [--gpu] [--uid UID] [--gid GID]image:[tag]
运行打包的 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 Driver 和 App 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
) 和一个在 10000
到 32767
之间随机选择且当前未使用的端口号。如果工作进程地址是本地 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 应用程序支持各种用于配置的环境变量。有关详细信息,请参阅 分布式应用程序的环境变量。