0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

NIO的自动驾驶AI推理工作流

jf_pJlTbmA9 来源:NVIDIA 作者:NVIDIA 2023-07-05 16:30 次阅读

自动驾驶汽车必须能够快速准确地检测物体,以确保其驾驶员和道路上其他驾驶员的安全。由于自动驾驶( AD )和视觉检查用例中对实时处理的需求,具有预处理和后处理逻辑的多个 AI 模型 组合在流水线中,并用于 机器学习( ML )推理。

流水线的每一步都需要加速,以确保低延迟工作流。延迟是获取推理响应所需的时间。更快地处理 AD 数据将能够更有效地分析和使用信息,创造更安全的驾驶环境。任何一个方面的延迟都会降低整个管道的速度。

为了实现低延迟推理工作流,电动汽车制造商 NIO 将 NVIDIA Triton 推理服务器集成到其 AD 推理管道中。 NVIDIA Triton 推理服务器是一个开源的多帧推理服务软件。

这篇文章解释了 NIO 如何在 GPU 上使用 NVIDIA Triton 协调其图像预处理、后处理和 AI 模型的管道。它还展示了 NIO 如何减少网络传输,以成功加快 AD 用例的 AI 推理工作流。

用于实时响应的更快 AI 推理

NIO 设计、开发、联合制造和销售高级智能电动汽车,推动自动驾驶、数字技术、电动动力系统和电池等新一代技术的创新。 NIO 自动驾驶开发平台( NADP )是一个致力于 NIO 核心自动驾驶服务的研发平台。

NIO 选择 NVIDIA Triton Inference Server 是因为几个关键的技术和操作原因,包括:

NVIDIA Triton 支持基于 DAG 的多种模型编排,以及预处理或后处理模块

NVIDIA Triton 的云原生部署实现了多 GPU 、多节点的轻量级扩展

高质量的文档和学习资源有助于轻松迁移到 NVIDIA Triton

NVIDIA Triton 的稳定性和强大功能是 AD 用例所必需的

NIO 的自动驾驶 AI 推理工作流

数百个人工智能模型用于从自动驾驶汽车中挖掘数据。在自动驾驶这样的用例中,推理工作流由多个 AI 模型组成,其中预处理和后处理逻辑在流水线中拼接在一起。

NIO 将管道的预处理和后处理从运行在 CPU 上的客户端移动到运行在 GPU 上的 NVIDIA Triton 。 NVIDIA Triton 的业务逻辑脚本( BLS )功能用于协调管道,以优化 AD 使用。

通过将预处理从 CPU 移动到 GPU 并利用高效的管道编排, NIO 在一些核心管道中实现了 6 倍的延迟减少,将总吞吐量提高了 5 倍。

工作流管道之前和之后如图 1 所示。

image3-6.png

图 1. NVIDIA Triton 推理服务器推出之前(左)和之后(右) NIO AI 推理工作流的比较

NVIDIA Triton 的模型管道编排优势

本节探讨了 NIO 通过集成 NVIDIA Triton 实现的每一项好处。

GPU 加速预处理

NVIDIA Triton 使用 nvJPEG 和 NVIDIA DALI 在 GPU 上加速了解码、调整大小和换位等预处理任务。这显著减轻了客户端 CPU 的计算工作量,并减少了预处理延迟。

升级模型而无需修改客户端应用程序

通过将模型的预处理和后处理移至 NVIDIA Triton ,每次升级模型时,客户端不需要任何修改。这实质上加快了模型的推出,帮助其更快地达到生产。

使用单个 GPU 节点减少网络数据传输开销

统一的预处理使输入的多个副本能够与多个后端识别模型共享。该过程在服务器端使用 GPU 共享内存,无需数据传输开销。

图 2 显示了该管道可以使用 NVIDIA Triton 业务逻辑脚本功能连接多达九个模型。

image2-7.png

图 2. NVIDIA Triton 业务逻辑脚本的模型管道编排

对于 2K 分辨率的输入图像,每帧的大小为 1920 x 1080 x 3 x 8 = 47 Mb 。假设全帧速率为 60 fps ,每秒输入的数据量为 1920 x 1080 x 3 x 8 x 60 = 2847 Mb 。在前一个工作流中,每个图像通过网络依次发送给九个模型。每秒传输的数据为 1920 x 1080 x 3 x 8 x 60 x 9 = 25 Gb = 3 Gb 。

在新的工作流程中,九个模型与 NVIDIA Triton 业务逻辑脚本配合。这意味着模型可以访问 GPU 共享存储器中的图像,并且图像不必通过网络发送。假设 PCIe 带宽为 160 Gb =每秒 20 Gb ,理论上,如果通过 PCIe 传输数据,每秒生成的数据可以节省 150 毫秒的数据传输时间。

假设可用带宽为 16 Gb =每秒 2 Gb ,理论上,如果数据通过网络传输,每秒生成的数据可以节省 1500 毫秒的数据传输时间。所有这些都会加快工作流程。

使用图像压缩节省网络传输

为了进行准确的模型预测,输入图像必须为 1920 x 1080 x 3 x 8 字节,并且必须通过网络传输。在引入服务器端预处理之后,可以在允许的精度损失范围内将原始图像更改为压缩的三通道 720 像素图像( 1280 x 720 x 3 )。

因此,只需几百 KB 即可传输压缩图像的字节,并在服务器上以最小的精度损失将大小调整为 1920 x 1080 x 3 x 8 字节。这导致了额外的网络传输节省,加快了工作流程。

NADP 推理平台中的易集成性

NIO 目前基于 NVIDIA Triton 的推理平台是其自动驾驶开发平台( NADP )的关键组件,用于其自动驾驶解决方案。

由于 NIO 平台构建在 Kubernetes ( K8s )上, NVIDIA Triton 必须与 Kubernete 良好集成。工作流程的组件围绕 NVIDIA Triton 实现为 K8s CRD (本地和自定义)。

image4-5.png

图 3.NIO 在 Kubernetes 中的机器学习工作流

持续集成/持续交付( CI / CD )

Argo 是 Kubernetes 中用于协调工作流的引擎。它有助于开发、量化、访问、云部署、压力测试和发布中涉及的所有组件的 CI / CD 。 NVIDIA Triton 通过在加载模型时触发工作流中的下一步来帮助 CI / CD 。

此外, NVIDIA Triton Docker 容器的使用有助于在开发、测试和部署环境中实现一致的功能。

将 Jupyter 环境无缝集成到 NVIDIA Triton 图像中。 Jupyter 为需要在线调试或离线复制的复杂问题提供了一个方便的开发环境。

易用 Istio 部署

NVIDIA Triton 本机支持与应用程序通信的 gRPC 协议。然而,由于 Kubernetes 本地服务无法为 gRPC 提供有效的请求级负载平衡, NVIDIA Triton 与 Istio 服务网格集成。 Istio 用于对 NVIDIA Triton 推理服务器的流量进行负载平衡,并通过 NVIDIA Triton 的活跃度/就绪性探针监测服务的运行状况。

阿波罗配置管理易于使用

阿波罗配置中心用于基于模型名称的服务发现。用户可以访问模型,而不知道模型部署的特定域名。结合 NVIDIA Triton 模型存储库,用户可以直接触发模型的部署。

普罗米修斯和格拉法纳的指标

NVIDIA Triton 基于模型维度提供了一整套模型服务指标。例如, NVIDIA Triton 可以区分推理请求排队时间和 GPU 计算时间,从而实现在线模型服务性能的细粒度诊断和分析,而无需进入调试模式。

由于 NVIDIA Triton 支持云原生主流 Prometheus / Grafana ,用户可以轻松配置每个维度的仪表板和警报,为高服务可用性提供指标支持。

关键要点

NIO 的优化工作流程集成了 NVIDIA Triton 推理服务器,使一些核心管道的延迟减少了 6 倍。这将总吞吐量提高了 5 倍。

通过使用 NVIDIA Triton 管道编排功能将预处理逻辑移至 GPU , NIO 实现了:

更快的图像处理

释放 CPU 容量

减少网络传输开销

更高的推理吞吐量

NIO 使用 NVIDIA Triton 推理服务器实现了 AI 推理工作流加速。 NVIDIA Triton 也很容易集成到基于 Kubernetes 的强大可扩展解决方案中。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • NVIDIA
    +关注

    关注

    14

    文章

    4843

    浏览量

    102697
  • AI
    AI
    +关注

    关注

    87

    文章

    29665

    浏览量

    268004
  • 自动驾驶
    +关注

    关注

    782

    文章

    13606

    浏览量

    165875
收藏 人收藏

    评论

    相关推荐

    基于工作流技术的广州电信本地计费系统改造

    【作者】:龙欣庭【来源】:《华南理工大学》2009年【摘要】:工作流指业务过程的部分或整体在计算机应用环境下的自动化,使多个参与者之间传递信息或任务的过程按照某种预定义的规则自动进行。
    发表于 04-24 09:20

    基于Notes的OA工作流引擎的设计和实现

    到了更高层次的发展,成为企业管理现代化的重要标志。目前,办公自动化技术越来越普遍地被应用到***机关、金融机构和企事业单位的日常管理中,成为提高工作效率、优化管理流程的重要手段。工作流技术的使用,使得
    发表于 04-24 09:22

    【话题】特斯拉首起自动驾驶致命车祸,自动驾驶的冬天来了?

    自动驾驶技术已经有足够积累,虽然还不完美无缺,但是可以投入商用,科技都是在使用中完善的,不能一遭被蛇咬,十年怕井绳,难道发生一次空难之后,以后飞机就停飞啦?技术朋友,更加关注问题本身,有什么技术手段可以解决此类问题?对于这个问题,公说公有理婆说婆有理,元芳,你怎么看?
    发表于 07-05 11:14

    自动驾驶真的会来吗?

    自动驾驶原理示意GIF图  特斯拉自动驾驶死亡事故给全世界带来了极大的震惊,但这并不意味着基于坏消息之上的关注全然没有正面意义。  在接受新浪科技采访中,多位硅谷相关人士告诉新浪科技:一方面是对于
    发表于 07-21 09:00

    自动驾驶的到来

      传统汽车厂商更趋向于通过技术的不断积累,场景的不断丰富,逐步从辅助驾驶过渡到半自动驾驶,进而在将来最终实现无人驾驶;某些高科技公司则希望通过各种外部传感器实时采集海量数据,处理器经过数据分析然后
    发表于 06-08 15:25

    AI/自动驾驶领域的巅峰会议—国际AI自动驾驶高峰论坛

    由南德意志出版及活动有限公司举办的 国际AI自动驾驶高峰论坛 将于 2017年11月28/29日 在 德国慕尼黑 举办,中德联合股份公司作为中国独家合作伙伴,诚邀您拨冗莅临!【活动背景】AI
    发表于 09-13 13:59

    如何让自动驾驶更加安全?

    最近,国内多个城市开始发放自动驾驶的开放道路测试牌照,意味着自动驾驶的汽车可以在公共道路上进行测试。不过,驾驶安全性仍是社会关注的焦点,美国优步公司进行自动驾驶技术测试发生致命撞击事故
    发表于 05-13 00:26

    自动驾驶汽车的处理能力怎么样?

    作在未来20 - 30年中,自动驾驶汽车(AV)将改变我们的驾驶习惯、运输行业并更广泛地影响社会。 我们不仅能够将汽车召唤到我们的家门口并在使用后将其送走,自动驾驶汽车还将挑战个人拥有汽车的想法,并
    发表于 08-07 07:13

    自动驾驶系列报告大放送了涉及传感器,芯片,执行控制等

    ` 本帖最后由 AI汽车人 于 2019-8-9 17:18 编辑 自动驾驶系列报告,总共五部, 自动驾驶系列报告之一:综合篇:自动驾驶的时代已经开始到来,
    发表于 08-09 17:14

    如何保证自动驾驶的安全?

    美好未来到来的更快。AI还在路测,黑客们的自动驾驶已经成熟了这一点并不是危言耸听,在自动驾驶汽车还处在路测阶段时,汽车黑客就已经能在地球另一端把你家汽车开走了。早在2015年的一场BlackHat大会上,就有
    发表于 10-22 07:45

    自动驾驶AI芯片现状分析

    自动驾驶AI芯片到位了么?
    发表于 12-04 06:13

    自动驾驶车辆中AI面临的挑战

    自动驾驶车辆中采用的AI算法自动驾驶车辆中AI面临的挑战
    发表于 02-22 06:39

    自动驾驶系统设计及应用的相关资料分享

    作者:余贵珍、周彬、王阳、周亦威、白宇目录第一章 自动驾驶系统概述1.1 自动驾驶系统架构1.1.1 自动驾驶系统的三个层级1.1.2 自动驾驶系统的基本技术架构1.2
    发表于 08-30 08:36

    【KV260视觉入门套件试用体验】八、VITis AI自动驾驶多任务执行MultiTask V3

    是一种模型,旨在同时执行自动驾驶场景中的不同任务,同时实现优异的性能和效率。这些任务包括对象检测、分割、车道检测、可行驶区域分割和深度估算,这些都是自动驾驶感知模块的重要组成部分。 三、代码实现
    发表于 09-26 16:43

    基于案例推理工作流异常处理研究

    工作流的异常和案例推理(Case - Based Reasoning,简称CBR)的机制进行了介绍,给出了一个应用CBR 技术进行异常处理的工作流模型,并研究了应用CBR 方法处理工作流
    发表于 06-15 10:20 14次下载