当前位置:首页 > 技术分析 > 正文内容

技术博客 | 使用 Python 和 C 快速构建 AI 流应用程序++

ruisui884个月前 (02-05)技术分析44

边缘传感器流的 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 库集成,如 RAPIDSCuPy ,以使用 NVIDIA 硬件并优化处理管道。

内置 Tensor 类支持 DLPack 和 NumPy 数组接口( __array_interface____cuda_array_interface__ ),以与 CuPyPyTorch JAXTensorFlowNumba 库和多维数组处理兼容。

Holoscan Tensor 对象可以与 cuSignalcuCIM 一起使用,以获得有效的信号。

下面的示例代码演示了使用 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英伟达

扫描二维码推送至手机访问。

版权声明:本文由ruisui88发布,如需转载请注明出处。

本文链接:http://www.ruisui88.com/post/1695.html

标签: 技术博客
分享给朋友:

“技术博客 | 使用 Python 和 C 快速构建 AI 流应用程序++” 的相关文章

发行版Vanilla OS 2发布稳定版:彻底重写、改变使用Linux的方式

Vanilla OS 是去年崭露头角的 Linux 发行版,最初的 1.0 版本基于 Ubuntu 构建 —— 亮点之一是系统核心“不可变”。后来改用 Debian 测试分支 (Debian Sid),免费且开源,默认桌面环境是 GNOME。什么是不可变 Linux 发行版?不可变发行版确保操作系统...

面试官:聊聊你知道的Vue与React的区别

最近面到很多大公司的时候,小编都会碰到一个很尴尬的问题,很多大公司的技术栈都是React,但是小编学的是Vue,其实从本质上来说两者都是比较优秀的前端框架,所以有些面试官会问到Vue和React的区别。小编认真整理了一些自己所知道的Vue和React的区别,给大家分享分享。1. 模板语法 vs JS...

10分钟搞定gitlab-ci自动化部署

gitlab-ci 是持续集成工具/自动化部署工具,类似 jenkins。持续集成 是将代码集成到共享存储库并尽可能早地自动构建/测试每个更改的实践 - 通常一天几次。概述在编码完成时都会进行打包发布过程,如果每次都手动操作这一步骤就会浪费时间,效率低下。所以就有了持续集成。准备事项请提前安装以下软...

软件测试-性能测试专题方法与经验总结

本文 从 性能测试流程,性能测试指标,性能监测工具,性能测试工具,性能测试基线,性能测试策略,性能瓶颈分析方法几个维度,进行知识总结和经验分享;详细见下图总结,欢迎大家补充;性能测试经验与思考1. 性能测试流程1.1. 性格规格评审1.2. 资源排期1.2.1. 人力资源1.2.2. 时间计划· 性...

jvm疯狂吃内存,到底是谁的锅?

jvm应该是每一个java程序员都需要掌握的内容,但是在没有遇到问题之前,很多都是基于理论的,唯有实战才能增加个人的知识储备。本文是从一个角度来分析是谁在狂吃内存,希望对你有所帮助。本文是易观技术人员注意到一台开发机上各个微服务进程占用内存很高,随即便展开了调查......ps:本文来源于:http...

Acustica Audio 发布模拟Roland Jupiter 双声道合成器插件 TH2

福利: Acustica Audio 发布模拟Roland Jupiter 风格的双声道合成器插件 TH2 免费下载 意大利 Acustica Audio 公司发布布模拟Roland Jupiter 风格的双声道合成器插件 TH2 ,灵感来源于Acustica Audio的THING-8系列,它是...