SDK 安装
以下部分介绍 Holoscan SDK 的安装,该 SDK 被称为开发堆栈,专为 NVIDIA 开发者套件 (arm64) 和 x86_64 Linux 计算平台设计,非常适合 SDK 的开发和测试。
对于 Holoscan 开发者套件(如 IGX Orin 开发者套件),另一种选择是基于 OpenEmbedded (Yocto 构建系统) 而不是 Ubuntu 的 部署堆栈。建议使用部署堆栈来将您的堆栈限制为运行 Holoscan 应用程序严格需要的软件组件。运行时板级支持包 (BSP) 可以针对内存使用、速度、安全性和功耗要求进行优化。
设置您的开发者套件
开发者套件 | 用户指南 | 操作系统 | GPU 模式 |
---|---|---|---|
NVIDIA IGX Orin | 指南 | IGX 软件 1.1 生产版本 | iGPU 或* dGPU |
NVIDIA Jetson AGX Orin 和 Orin Nano | 指南 | JetPack 6.1 | iGPU |
NVIDIA Clara AGX 仅支持 NGC 容器 |
指南 | HoloPack 1.2 需要升级到 535+ 驱动程序 |
dGPU |
* iGPU 和 dGPU 可以同时在 dGPU 模式下的单个开发者套件上使用。请参阅此处的详细信息。
支持的 x86_64 发行版
操作系统 | NGC 容器 | Debian/RPM 包 | Python wheel | 从源代码构建 |
---|---|---|---|---|
Ubuntu 22.04 | 是 | 是 | 是 | 是 |
RHEL 9.x | 是 | 否 | 否 | 否¹ |
其他 Linux 发行版 | 否² | 否 | 否³ | 否¹ |
¹ 未经正式测试或支持,但如果使用足够的依赖项构建裸机,则有望可以工作。
² 未经正式测试或支持,但如果 NVIDIA 容器工具包支持,则有望可以工作。
³ 未经正式测试或支持,但如果发行版的 glibc 版本为 2.35 或更高版本,则有望可以工作。
NVIDIA 独立 GPU (dGPU) 要求
建议使用 Ampere 或更高版本以获得最佳性能
GPUDirect RDMA 支持需要Quadro/NVIDIA RTX
已使用 NVIDIA Quadro RTX 6000 和 NVIDIA RTX A6000 进行测试
NVIDIA dGPU 驱动程序:535 或更高版本
我们提供了多种安装和运行 Holoscan SDK 的方法
说明
dGPU (x86_64, IGX Orin dGPU, Clara AGX dGPU, GH200)
docker pull nvcr.io/nvidia/clara-holoscan/holoscan:v2.9.0-dgpu
iGPU (Jetson, IGX Orin iGPU, Clara AGX iGPU)
docker pull nvcr.io/nvidia/clara-holoscan/holoscan:v2.9.0-igpu
有关详细信息和使用说明,请参阅 NGC。
尝试以下方法来安装 Holoscan SDK
sudo apt update
sudo apt install holoscan
这不会安装 Torch 或 ONNXRuntime 推理后端所需的依赖项。为此,请通过将 --install-suggests
标志添加到 apt install holoscan
来安装传递依赖项,并参阅下面的支持矩阵以获取安装 libtorch 和 onnxruntime 的链接。
故障排除
如果使用 apt 找不到 holoscan
E: Unable to locate package holoscan
在重复上述安装步骤之前,请尝试以下操作
IGX Orin:确保计算堆栈已正确安装,这应配置 L4T 存储库源。如果您仍然无法安装 Holoscan SDK,请使用 CUDA 存储库中的
arm64-sbsa
。Jetson:确保 JetPack 已正确安装,这应配置 L4T 存储库源。如果您仍然无法安装 Holoscan SDK,请使用 CUDA 存储库中的
aarch64-jetson
。GH200:使用 CUDA 存储库中的
arm64-sbsa
。x86_64:使用 CUDA 存储库中的
x86_64
。
如果您在运行时遇到缺少 CUDA 库(如下所示)
ImportError: libcudart.so.12: cannot open shared object file: No such file or directory
如果您的系统安装了多个 CUDA 工具包组件版本,则可能会发生这种情况。使用 find /usr/local/cuda* -name libcudart.so.12
查找缺少的 CUDA 库 (libcudart.so.12
在此处) 的路径,并在 sudo update-alternatives --config cuda
中选择该路径。如果找不到该库,或者之后缺少其他 CUDA 工具包库,您可以尝试完全重新安装 CUDA 工具包
sudo apt update && sudo apt install -y cuda-toolkit-12-6
如果您在编译时遇到缺少 CUDA 头文件(如下所示)
the link interface contains: CUDA::nppidei but the target was not found. [...] fatal error: npp.h: No such file or directory
通常与上述问题相同,原因是您的环境中混合了 CUDA 工具包组件版本。使用 find /usr/local/cuda-* -name npp.h
确认缺少的 CUDA 头文件 (npp.h
在此处) 的路径,并按照与上述相同的说明进行操作。
如果您在运行时遇到缺少 TensorRT 库(如下所示)
Error: libnvinfer.so.8: cannot open shared object file: No such file or directory
...
Error: libnvonnxparser.so.8: cannot open shared object file: No such file or directory
如果您的系统安装的主要版本与版本 8 不同,则可能会发生这种情况。尝试重新安装 TensorRT 8,方法是
sudo apt update && sudo apt install -y libnvinfer-bin="8.6.*"
如果您无法导入 holoscan Python 模块
ModuleNotFoundError: No module named 'holoscan'
要利用 Debian 包中包含的 Python 模块(而不是安装 Python wheel),请将以下路径包含到您的 Python 路径中
export PYTHONPATH="/opt/nvidia/holoscan/python/lib"
不确定选择哪个?
NGC 上的 Holoscan 容器镜像 是确保所有依赖项都存在并且版本符合预期的最安全方法(包括 Torch 和 ONNX Runtime),并且应在大多数 Linux 发行版上工作。它是运行嵌入式示例的最简单方法,同时仍然允许您在其之上创建自己的 C++ 和 Python Holoscan 应用程序。这些好处是有代价的
来自众多(其中一些是可选的)依赖项的大镜像大小。如果您需要精简的运行时镜像,请参阅下面的部分。
使用 Docker 时存在的标准不便,例如用于正确配置的更复杂的运行说明。
如果您确信自己有能力在主机环境中自行管理依赖项,则 Holoscan Debian 包应提供使用 Holoscan SDK 所需的所有功能,前提是您使用的是 Ubuntu 22.04。
如果您对 C++ API 不感兴趣,而只需要在 Python 中工作,或者想要使用与 Python 3.10 不同的版本,则可以使用 PyPI 上的 Holoscan Python wheel。虽然它们是安装 SDK 的最简单解决方案,但根据您的需求,可能需要最多的工作来设置具有额外依赖项的环境。最后,它们仅在 Ubuntu 22.04 上得到正式支持,尽管应支持 glibc 2.35 或更高版本的其他 Linux 发行版。
NGC 开发容器 | Debian 包 | Python Wheel | |
---|---|---|---|
运行时库 | 包含 | 包含 | 包含 |
Python 模块 | 3.10 | 3.10 | 3.9 到 3.12 |
C++ 头文件和 CMake 配置 |
包含 | 包含 | 不适用 |
示例(+ 源代码) | 包含 | 包含 | 从以下位置检索 GitHub |
示例数据集 | 包含 | 从以下位置检索 NGC |
从以下位置检索 NGC |
CUDA 运行时 1 | 包含 | 自动2 安装 |
需要手动 安装 |
NPP 支持 3 | 包含 | 自动2 安装 |
需要手动 安装 |
TensorRT 支持 4 | 包含 | 自动2 安装 |
需要手动 安装 |
Vulkan 支持 5 | 包含 | 自动2 安装 |
需要手动 安装 |
V4L2 支持 6 | 包含 | 自动2 安装 |
需要手动 安装 |
Torch 支持 7 | 包含 | 需要手动8 安装 |
需要手动8 安装 |
ONNX Runtime 支持 9 | 包含 | 需要手动10 安装 |
需要手动10 安装 |
MOFED 支持 11 | 包含用户空间 在主机上安装内核驱动程序 |
需要手动 安装 |
需要手动 安装 |
CLI 支持 | 需要手动安装 | 需要手动安装 | 需要手动安装 |
需要更多对 SDK 的控制?
Holoscan SDK 源代码存储库是开源的,并提供参考实现以及用于自行构建 SDK 的基础架构。
正在寻找轻量级运行时容器镜像?
当前 NGC 上的 Holoscan 容器由于包含每个内置运算符的所有依赖项,而且由于包含的开发工具和库,因此尺寸很大。请按照 GitHub 上的说明 构建不包含这些开发包的运行时容器。此页面还包含详细的文档,以帮助您仅包含 Holoscan 应用程序可能需要的运行时依赖项。
需要CUDA 12。已在配备 IGX Software 和 JetPack 的 NVIDIA 开发者套件上安装。
x86_64 上的 Debian 安装需要最新的 cuda-keyring 包以自动安装所有依赖项。
FormatConverter 和 BayerDemosaic 运算符需要 NPP 12。已在配备 IGX Software 和 JetPack 的 NVIDIA 开发者套件上安装。
Inference 运算符需要 TensorRT 10.3+。已在配备 IGX Software 和 JetPack 的 NVIDIA 开发者套件上安装。
HoloViz 运算符 (+ 用于无头渲染的 libegl1) 需要 Vulkan 1.3.204+ 加载器。已在配备 IGX Software 和 JetPack 的 NVIDIA 开发者套件上安装。
V4L2 运算符需要 V4L2 1.22+。已在配备 IGX Software 和 JetPack 的 NVIDIA 开发者套件上安装。V4L2 也需要 libjpeg。
Torch 支持需要 LibTorch 2.5+、TorchVision 0.20+、OpenBLAS 0.3.20+、OpenMPI v4.1.7a1+、UCC 1.4+、MKL 2021.1.1+ (仅限 x86_64)、NVIDIA Performance Libraries (仅限 aarch64 dGPU)、libpng 和 libjpeg。请注意,容器构建使用源自 NVIDIA HPC-X 软件包捆绑包的 OpenMPI 和 UCC。
要安装 LibTorch 和 TorchVision,请从源代码构建它们,下载我们的预构建软件包,或从 holoscan 容器(在 /opt
中)复制它们。
Inference 运算符需要 ONNXRuntime 1.18.1+。请注意,ONNX 模型也通过 Inference 运算符的 TensorRT 后端支持。
要安装 ONNXRuntime,请从源代码构建它,下载我们的预构建软件包,其中包含 CUDA 12 和 TensoRT 执行提供程序支持,或从 holoscan 容器(在 /opt/onnxruntime
中)复制它。
已使用 MOFED 24.07 进行测试