技术博客 – 使用 Python 和 C 快速构建 AI 流应用程序++
边缘传感器流的 AI 处理的计算需求越来越高。边缘设备必须跟上高速率的传入数据流、处理、显示、存档和流结果,或实时关闭控制循环。这需要能够进行高性能计算的强大、高效、准确的硬件和软件解决方案。
边缘设备还必须快速安全地将数据传输到其他边缘设备、预数据中心或云,以存储和分析接收到的数据。先进的边缘 AI 处理解决方案可快速处理大量传感器数据,并实时产生可操作的见解。
nvidia Holoscan SDK v0.4 现在为边缘的流式 AI 应用程序提供了更高效的处理。开发人员可以使用包含加速库、预训练 AI 模型和参考应用程序的 SDK ,使用 Python 和 C 构建自己的流式应用程序。
Holoscan 最初用于医疗 AI 用例,现在已准备好在多个行业中应用更广泛的应用,以实现边缘的高性能计算。
新的 Holoscan SDK v0.4 功能包括:
- 快速应用程序开发的 Python 开发人员经验。
- 使用 C 的显著改进。
- 高效的多 AI 推理。
- 低延迟现场可编程门阵列( FPGA )阿尔法混合。
- HoloHub ,一个收集对 Holoscan 贡献的集中存储库。
此外,部署堆栈已更新为与 v0.4 中添加的新功能同步。接下来,将使用新的 SDK 版本更新部署堆栈。
Python 开发人员经验
Holoscan SDK 现在提供了 Python 应用程序开发经验。无需编译任何代码,开发人员可以使用 NVIDIA GPU 、 NVIDIA Clara AGX 和 NVIDIA IGX Orin 开发套件在 x86 _ 64 工作站上快速原型化和部署工作流。
开发人员还可以与其他 GPU 加速的 Python 库集成,如 RAPIDS 和 CuPy ,以使用 NVIDIA 硬件并优化处理管道。
内置 Tensor 类支持 DLPack 和 NumPy 数组接口( __array_interface__ 和 __cuda_array_interface__ ),以与 CuPy 、 PyTorch 、 JAX 、 TensorFlow 和 Numba 库和多维数组处理兼容。
Holoscan Tensor 对象可以与 cuSignal 和 cuCIM 一起使用,以获得有效的信号。
下面的示例代码演示了使用 Python API 创建 Holoscan 应用程序是多么简单。compose ()函数通过实例化运算符并将它们连接到工作流中来定义应用程序的整个工作流。
class BasicRadarFlow(Application): def compose(self): src = SignalGeneratorOp(self, CountCondition(self, iterations), name="src") pulseCompression = PulseCompressionOp(self, name="pulse-compression") mtiFilter = MTIFilterOp(self, name='mti-filter') rangeDoppler = rangeDopplerOp(self, name='range-doppler') cfar = CFAROp(self, name='cfar') sink = SinkOp(self, name="sink") self.add_flow(src, pulseCompression, {('x', 'x'), ('waveform', 'waveform')}) self.add_flow(pulseCompression, mtiFilter) self.add_flow(mtiFilter, rangeDoppler) self.add_flow(rangeDoppler, cfar) self.add_flow(cfar, sink)
此应用程序的完整 Python 源代码可在 HoloHub repository 中找到。
Holoscan Python 包可供开发者通过 Python wheels 调用 pip install holoscan。有关先决条件,请参阅 PyPI 上的说明。
C 开发人员经验
Holoscan SDK 现在为创建 Holoscan 运算符和流提供了完整的 C 应用程序开发经验。以前,创建 Holoscan 运算符的唯一方法是包装 GXF 代码集。现在,您可以使用 Holoscan SDK 直接创建运算符,并轻松将其与其他 C 库集成。了解 Holoscan User ‘ s Guide 中的本机运算符。
多 AI 推理
Holoscan SDK 支持在同一输入流上的多个 AI 管道和多个 AI 模型的并行推理。通过多 AI 推理模块进行的并行推理可以将性能提高约 30% ,以便在相同的时间约束下将更多模型引入推理模块。
了解 NVIDIA Inception 成员 iCardio.ai 如何使用 NVIDIA Clara Holoscan 到 实时运行多 AI 流水线 。
低延迟 FPGA alpha 混合
某些视频 I / O 卡,如 AJA KONA 5 ,支持 FPGA 上的 alpha 混合。此功能可实现从输入到输出的亚毫秒视频信号延迟传递。这还包括 AI 推理与 Holoscan 流混合的时间。
除了低延迟实现之外,这还启用了一个安全功能,以减轻 AI 流中的故障。在 AI 管道发生故障的情况下,原始视频源继续从捕获卡流到显示器。下图显示了用于手术工具跟踪的低延迟 FPGA alpha 混合工作流。有关详细信息,请参阅 Holoscan SDK 用户手册 。
图 1 :使用 AJA 卡进行手术工具跟踪推断的工作流程图
霍洛维兹
Holoscan SDK v0.4 版本在所有示例应用程序管道中都利用了 Holoviz 。以前 OpenGL 可视化运算符支持的功能是通过使用 Vulkan 的 Holoviz 启用的。该操作符易于配置,可处理 RGB / RGBA 图像、遮罩、几何图元和文本的合成、混合和可视化。
它还支持无头渲染和流式输出,以及绕过桌面合成器的模式延迟。
HoloHub 公司
此版本引入了名为 HoloHub 的新存储库。作为一个公共存储库,HoloHub 托管了一组示例应用程序和操作员,并发布开发人员社区提供的贡献。
通过 HoloHub , NVIDIA 合作伙伴(包括传感器供应商)可以实施 Holoscan 支持,并将其分发给社区,以便快速实施新的处理工作流。
开始使用 Holoscan SDK
开始使用 Holoscan SDK 0.4 的最快方法是在 Holoscan 开发工具包或 x86 设备上运行 Holoscan 容器中的示例和示例应用程序。此更新的容器使用运行时配置来测试当前应用程序。它还提供 C 和 Python 开发工具和示例,以修改和创建新的处理工作流。
Holoscan SDK 可通过 PyPi 为 Python 3.8 至 3.11 以及 Ubuntu 20.04 的 Debian 软件包提供。
对于希望构建 Holoscan SDK 的开发人员,源代码可以通过 nvidia-holoscan GitHub repository 的 Apache 2 许可证获得。
*本文转自 NVIDIA英伟达