NVIDIA Holoscan SDK v2.9.0

在 NVIDIA Developer Kits 上同时使用集成 GPU 和独立 GPU

NVIDIA Developer Kits,例如 NVIDIA IGX OrinNVIDIA Clara AGX,同时具有独立 GPU (dGPU - 在 IGX Orin 上为可选) 和集成 GPU (iGPU - Tegra SoC)。

在此版本中,当这些开发者套件被刷写为利用 dGPU 时,有两个限制因素阻止 iGPU 的使用

  1. dGPU 内核模式驱动程序和 iGPU 显示内核驱动程序(均名为 nvidia.ko)之间存在冲突。此冲突目前无法解决,这意味着当 dGPU 启用时,iGPU 不能用于显示

  2. dGPU 和 iGPU 的用户模式驱动程序库(例如:libcuda.so)和计算堆栈(例如:libcuda_rt.so)之间存在冲突。

我们提供了实用程序来解决第二个冲突

  1. 从为 dGPU 刷写的 IGX 开发者套件中,运行以下命令以启用 iGPU 容器支持

    复制
    已复制!
                

    sudo /opt/nvidia/l4t-igpu-container-on-dgpu-host-config/l4t-igpu-container-on-dgpu-host-config.sh configure

有关详细信息,请参阅 IGX 用户指南

  1. 要在 Holoscan 中同时利用两个 GPU,您可以选择

    1. 创建并发运行的单独 Holoscan 应用程序,其中 iGPU 应用程序必须在 Holoscan iGPU 容器中运行,而 dGPU 应用程序可以在裸机或 Holoscan dGPU 容器中运行。有关如何使用 iGPU 启动 Holoscan 容器的详细信息,请参阅 IGX 用户指南

    2. 创建一个利用 iGPU 和 dGPU 的单一分布式应用程序,方法是在 iGPU 和 dGPU 上执行单独的片段。

下面的示例显示了使用 Holoscan 容器在 iGPU 和 dGPU 之间进行 ping 分布式应用程序

复制
已复制!
            

COMMON_DOCKER_FLAGS="--rm -i --init --net=host --runtime=nvidia -e NVIDIA_DRIVER_CAPABILITIES=all --cap-add CAP_SYS_PTRACE --ipc=host --ulimit memlock=-1 --ulimit stack=67108864 " HOLOSCAN_VERSION=2.9.0 HOLOSCAN_IMG="nvcr.io/nvidia/clara-holoscan/holoscan:v$HOLOSCAN_VERSION" HOLOSCAN_DGPU_IMG="$HOLOSCAN_IMG-dgpu" HOLOSCAN_IGPU_IMG="$HOLOSCAN_IMG-igpu" # Pull images docker pull $HOLOSCAN_DGPU_IMG docker pull $HOLOSCAN_IGPU_IMG # Run ping distributed (python) in dGPU container # - Making this one the `driver`, but could be igpu too # - Using & to not block the terminal to run igpu afterwards. Could run igpu in separate terminal instead. docker run \ $COMMON_DOCKER_FLAGS \ $HOLOSCAN_DGPU_IMG \ bash -c "python3 ./examples/ping_distributed/python/ping_distributed.py --gpu --worker --driver" & # Run ping distributed (c++) in iGPU container docker run \ $COMMON_DOCKER_FLAGS \ -e NVIDIA_VISIBLE_DEVICES=nvidia.com/igpu=0 \ $HOLOSCAN_IGPU_IMG \ bash -c "./examples/ping_distributed/cpp/ping_distributed --gpu --worker"

L4T Compute Assist 是 NGC 上的一个容器,它通过包含 L4T BSP 软件包来隔离 iGPU 堆栈,以便在为 dGPU 配置的开发者套件上启用 iGPU 计算。其他应用程序可以同时在 dGPU 上本地或在另一个容器中运行。

注意

这些实用程序仅支持将 iGPU 用于显示以外的功能,因为它们没有解决上面列出的第一个冲突。

上一篇 启用独占显示模式
下一篇 部署软件堆栈
© 版权所有 2022-2024 NVIDIA。 最后更新于 2025 年 1 月 27 日。