Py学习  »  机器学习算法

技术博客 | 使用 DLA 在 NVIDIA Jetson Orin 上最大限度地提高深度学习性能

NVIDIA企业开发者社区 • 6 月前 • 75 次点击  

NVIDIA Jetson Orin 是同类中最好的嵌入式人工智能平台。Jetson Orin SoC 模块以 NVIDIA Ampere 架构 GPU 为核心,但 SoC 上有更多计算:

  • 深度学习加速器(DLA)中用于深度学习工作负载的专用深度学习推理引擎

  • 用于图像处理和计算机视觉算法的可编程视觉加速器(PVA)引擎

  • 多标准视频编码器(NVENC)和多标准视频解码器(NVDEC)

NVIDIA Orin SoC 功能强大,拥有 275 个峰值 AI TOPs,是最好的嵌入式和汽车 AI 平台。你知道吗,这些 AI TOPs 中几乎 40% 来自 NVIDIA Orin 上的两个 DLA?NVIDIA Ampere GPU 的吞吐量是同类产品中最好的,而第二代 DLA 的功率效率却是同类产品中最佳的。近年来,随着人工智能应用的快速增长,对更高效计算的需求也在增长。在电源效率始终是关键 KPI 的嵌入式方面尤其如此。


这就是 DLA 的用武之地。DLA 是专门为深度学习推理设计的,可以比 CPU 更有效地执行卷积等计算密集型深度学习操作。


当与 Jetson AGX Orin 或 NVIDIA DRIVE Orin 集成到 SoC 中时, GPU 和 DLA 的组合为您的嵌入式 AI 应用程序提供了一个完整的解决方案。在这篇文章中,我们将讨论深度学习加速器,以帮助您避免错过。我们涵盖了汽车和机器人领域的几个案例研究,以展示 DLA 如何使人工智能开发人员能够为其应用程序添加更多功能和性能。最后,我们来看看视觉 AI 开发人员如何使用 DeepStream SDK 来构建使用 DLA 和整个 Jetson SoC 的应用程序管道,以获得最佳性能。


但首先,以下是 DLA 对其有重大影响的一些关键性能指标。


 关键绩效指标 

在设计应用程序时,需要满足一些关键性能指标或 KPI。例如,这通常是最大性能和电源效率之间的设计权衡,这需要开发团队仔细分析和设计他们的应用程序,以便在 SoC 上使用不同的 IP。


如果应用程序的关键 KPI 是延迟,则必须在一定的延迟预算下在应用程序中安排任务。您可以将 DLA 用作与运行在 GPU 上的计算密集型任务并行的任务的附加加速器。DLA 峰值性能对 NVIDIA Orin 整体深度学习(DL)性能的贡献率在 38%至 74%之间,具体取决于电源模式。


表 1:DLA 吞吐量

Jetson AGX Orin 64GB 上 30W 和 50W 功率模式的 DLA TOPs 与 NVIDIA DRIVE Orin 汽车平台上的最大时钟相当。


如果电源是您的关键 KPI 之一,那么您应该考虑 DLA 以利用其电源效率。与 GPU 相比,每瓦 DLA 性能平均高出 3–5 倍,具体取决于电源模式和工作负载。以下图表显示了代表常见用例的三个模型的每瓦性能。


图 1:DLA 功率效率




图 2:结构化稀疏性和每瓦性能优势


换句话说,如果没有 DLA 的功率效率,在给定的平台功率预算下,就不可能在 NVIDIA Orin 上实现高达 275 个峰值的 DL TOP。有关更多型号的更多信息和测量值,请参阅 DLA-SW 的 GitHub 库。


以下是 NVIDIA 内部关于我们如何使用 DLA 提供的 AI 计算的一些案例研究:汽车和机器人



 案例研究:汽车 

NVIDIA DRIVE AV 是汽车原始设备制造商为其汽车产品组合添加自动驾驶和映射功能的端到端自动驾驶解决方案堆栈。它包括感知,映射 和规划层,以及根据高质量的真实世界驾驶数据训练的各种 DNN。


NVIDIA DRIVE AV 团队的工程师致力于设计和优化感知,映射,并通过利用整个 NVIDIA Orin SoC 平台规划管道。考虑到自动驾驶堆栈中需要处理大量的神经网络和其他非 DNN 任务,它们依赖 DLA 作为 NVIDIA Orin SoC 上的专用推理引擎来运行 DNN 任务。这一点至关重要,因为 GPU 计算是为处理非 DNN 任务而保留的。如果没有 DLA 计算,团队将无法达到 KPI。




图 3:感知管道的一部分


想要了解更多信息,请访问 Near-Range Obstacle Perception with Early Grid Fusion


例如,对于感知管道,它们有来自八个不同相机传感器的输入,整个管道的延迟必须低于某个阈值。感知堆栈是 DNN 重的,并且占所有计算的 60% 以上。


为了满足这些 KPI,并行管道任务被映射到 GPU 和 DLA,其中几乎所有的 DNN 都在 DLA 上运行,而非 DNN 任务在 GPU’上运行,以实现总体管道延迟目标。然后,输出被其他管道(如映射和规划)中的其他 DNN 顺序或并行地消耗。您可以将管道视为一个巨大的图形,其中任务在 GPU 和 DLA 上并行运行。使用 DLA,该团队将延迟降低了 2.5 倍。


图 4:作为感知堆栈一部分的对象检测


NVIDIA 自动驾驶团队工程经理 Abhishek Bajarger 表示:“利用整个 SoC,特别是 DLA 中专用的深度学习推理引擎,使我们能够在满足延迟要求和 KPI 目标的同时,为软件堆栈添加重要功能。这只有在 DLA 中才有可能实现。”。


 案例研究:机器人 

NVIDIA Isaac 是一个强大的端到端平台,用于机器人开发人员使用的人工智能机器人的开发、模拟和部署。特别是对于移动机器人来说,可用的 DL 计算、确定性延迟和电池续航能力是重要因素。这就是为什么将 DL 推断映射到 DLA 是重要的。


NVIDIA Isaac 团队的一组工程师开发了一个使用 DNN 进行邻近分割的库。邻近分割可用于确定障碍物是否在邻近场内,并避免在导航期间与障碍物碰撞。他们在 BI3D DLA 上实施了网络,该网络从立体相机执行二进制深度分类。


图 5:邻近分段管道


一个关键的 KPI 是确保能够从立体相机输入中实时检测到每秒 30 帧。NVIDIA Isaac 团队在 SoC 中分配任务,并将 DLA 用于 DNN,同时在硬件和软件中提供与在 GPU 上运行的功能安全多样性。想要了解更多信息,请访问 NVIDIA Isaac ROS 邻近分段


图 6:使用 BI3D 对立体声输入进行邻近分割


NVIDIA 机器人平台软件副总裁 Gordon Grigor 表示:“我们在 DLA 上使用 TensorRT 进行 DNN 推理,以提供 GPU 的硬件多样性,提高容错能力,同时为其他任务卸载 GPU 。DLA 在由三个 DNN 组成的 BI3D 的 Jetson AGX Orin 上提供约 46 帧/秒的帧速率,为我们的机器人应用程序提供低 30 毫秒的延迟。”。



 NVIDIA DeepStream 用于 DLA 

通过 NVIDIA DeepStream SDK,一个完整的流媒体分析工具包,是探索 DLA 的最快方法。


如果你是一名视觉 AI 开发人员,正在构建 AI 驱动的应用程序来分析视频和传感器数据,那么 DeepStream SDK 可以让你构建最佳的端到端管道。对于云或边缘用例,如零售分析、停车管理、物流管理、光学检测、机器人和体育分析, DeepStream 可以毫不费力地使用整个 SoC,特别是 DLA。


例如,您可以使用 Model Zoo 中的预训练模型 在下表中高亮显示以在 DLA 上运行。在 DLA 上运行这些网络就像设置一个标志一样简单。想要了解更多信息,请访问 如何使用 DLA 进行推断


表 2:ModelZoo 网络样本及其在 LA 上的吞吐量


 开始使用深度学习加速器 

准备好深入了解了吗?有关详细信息,请参阅以下资源:


  • Jetson DLA 教程 演示了一个基本的 DLA 工作流,以帮助您开始将 DNN 部署到 DLA。

  • 这个 DLA-SW GitHub 仓库有一组参考网络,您可以使用这些网络来探索在 Jetson Orin DLA 上运行 DNN。

  • 这个 样例页面 提供了关于如何使用 DLA 充分利用 Jetson SoC 的其他示例和资源。

  • 这个 DLA 论坛 有其他用户的想法和反馈。


▶ 以下为文中提及的所有外链,请复制粘贴至浏览器打开:

DLA-SWhttps://github.com/NVIDIA/Deep-Learning-Accelerator-SW/tree/dla3.12.1#dla-performance-per-watt-power-efficiency

NVIDIA DRIVE AVhttps://www.nvidia.cn/self-driving-cars/drive-platform/software/

映射https://www.nvidia.cn/self-driving-cars/hd-mapping/

Near-Range Obstacle Perception with Early Grid Fusionhttps://developer.nvidia.cn/zh-cn/blog/near-range-obstacle-perception-with-early-grid-fusion/

BI3D DLA https://catalog.ngc.nvidia.com/orgs/nvidia/teams/isaac/models/bi3d_proximity_segmentation

NVIDIA Isaac ROS 邻近分段https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_proximity_segmentation

NVIDIA DeepStream SDKhttps://developer.nvidia.cn/deepstream-sdk

Model Zoo 中的预训练模型 https://docs.nvidia.com/tao/tao-toolkit/text/model_zoo/overview.html#performance-metrics

如何使用 DLA 进行推断https://docs.nvidia.com/metropolis/deepstream/dev-guide/text/DS_Quickstart.html#using-dla-for-inference

Jetson DLA 教程https://github.com/NVIDIA-AI-IOT/jetson_dla_tutorial

DLA-SW GitHubhttps://github.com/NVIDIA/Deep-Learning-Accelerator-SW/tree/main/scripts/prepare_models

样例页面https://github.com/NVIDIA/Deep-Learning-Accelerator-SW/

DLA 论坛https://forums.developer.nvidia.com/tag/dla






点击 “阅读原文”,查看更多技术博客。


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/162959
 
75 次点击