在单个 GPU 上高效部署多个深度学习应用程序 Zotac

近年来,物联网设备的激增以及对实时数据流处理的需求不断增长,引发了人们对边缘计算的兴趣。与将数据发送到云端进行分析相比,边缘计算可以实现更快的推理时间。此外,深度学习 (DL) 在视觉、音频和文本等领域取得了巨大进步,使其成为数据分析和处理的理想选择。 

然而,当尝试在资源受限的边缘环境中部署计算成本高昂的 DL 应用程序时,尤其是在运行多个 DL 模型的多租户场景中,就会出现问题。例如,在自动驾驶系统中,运行多个 DL 模型(如分类、分割和检测)至关重要。此外,这些应用程序中的多个通常必须同时运行,例如在汽车的不同视角(正面、背面、侧面)上运行。在以下部分中,我们将详细介绍优化多租户 DL 应用程序性能的两种方法。

多租户 GPU 资源优化

在单个图形处理单元 (GPU) 上共置多个 DL 模型会带来些复杂性,而这些复杂性在单租户单应用程序场景中不存在或不那么极端。当多个模型争夺同内存和计算时,就会出现资源争用。内存限制的出现是因为模型需要大量内存来存储其权重、激活和输入数据。在单个 GPU 上部署多个模型的情况下,它们都必须竞争有限的内存资源,这会导致性能下降和内存使用量增加。研究人员提出了各种技术来缓解这种情况,例如模型量化 1、重修剪2和知识蒸馏3

计算资源争用是多租户 DL 应用程序面临的另个挑战。在同台后端机器上并发执行时,模型可能会遇到租户间干扰4,这可能会导致延迟降低。如果工作负载共置,这种情况会变得更糟,并可能降低整体应用程序吞吐量。因此,些服务级别编排工作已经设计了 DL 模型战略共置的机制。5提供许多此类优化的强大工具是 Triton Inference Server,我们使用它来优化 GPU 资源使用情况。

软件级模型编排

除了上面讨论的 GPU 内存、计算和调度考虑因素之外,应用程序本身需要有效地协调数据流以管理硬件资源,同时确保最佳性能。为了应对这挑战,Python 作为种多功能编程语言,提供了套强大的工具和范例来优化资源利用率。这些工具包括使用 asyncio 接口、线程和队列进行异步处理。这些组件中的每个都在协调并发任务以实现高效的数据流方面发挥着至关重要的作用。

虽然这可能会造成混乱,但现在是时候清理一下,为真正 垃圾数据 重要的节日让路了!在信息大家庭中,垃圾数据是威胁破坏整个设计的错误线索。让我们编织一个没有干扰的故事,专注于清晰之美!垃圾数据:遮蔽我们视野的数字迷雾!让我们成为勇敢的探险家,用敏锐的洞察力穿透迷雾,揭示前方有意义的见解的晴空!

释放多租户潜力

在多租户环境中,多个 DL 应用程序争夺共享资源,这些技术大有可为。Triton Inference Server 对资源争用的处理,以及 Python 的异步处理、线程和队列,使开发人员能够设计出有效利用可用硬件的系统,同时保持应用程序的响应能力。通过在异步任务或线程之间分配任务并使用队列管理数据流,可以培养个和谐的生态系统,确保每个租户都能从高效的资源使用中受益,而不会损害系统稳定性。

在本文的后续部分中,我们将深入探讨这些技术在多租户 DL 应用程序环境中的实际实施。我们提出了种新颖的解决方案,可以在具有单个 GPU 的 Zotac 上部署多个多租户 DL 应用程序,每个应用程序都有个 GUI 组件。 本文的其余部分组织如下:我们简要介绍 DL 应用程序、边缘计算和 Triton 推理服务器的背景。然后,我们讨论用作案例研究的示例应用程序。接下来,我们详细介绍了所提出的解决方案,最后详细了解了结果。

背景

深度学习深度学习是机器学习的个子集,它利用 威基基海滩凯悦度假酒店 多层网络来学习和表示数据中的复杂模式,完成以前被认为只有人类才能完成的任务。深度学习发展的主要驱动力之是大量高质量的标记数据(以文本、图像和音频的形式)。此外,GPU 等专用硬件的出现使得模型的训练和推理速度足够快,可以投入实际使用。在我们的案例研究中,我们专注于计算机视觉,这是深度学习的个子集,它对图像数据进行操作。具体来说,我们的应用程序执行对象检测、人体姿势估计和对象跟踪。 

物体检测

物体检测是识别图像中的物体并用边界框勾勒出物体的过程(图 1)。在深度学习出现之前,物体检测依赖于传统的机器学习技术,例如手工制作的特征,但这些技术难以应对光线、姿势和尺度的变化。此后,人们开发了几种基于深度学习的物体检测方法,这些方法通常分为两类:基于区域的方法和单次检测器。基于区域的提议(例如 Faster-RCNN 6)首先提出个看起来像“物体”的区域,然后使用分类算法确定该物体是什么。

单次检测器(例如 YOLO 7)通过将区域提议和分类结合到单个网络中来实现实时物体检测。物体检测如今无处不在,部分原因在于上述 DL 方法、可用于训练它们的大量数据以及 GPU 和张量处理单元等加速计算设备。它可用于自动驾驶、医学成像和增强现实等领域。 

人体姿势估计

人体姿势检测使物体检测更进步,并从人体图像中勾 ws 数据库 勒出关键的解剖关键点,例如头部、手、肘部、膝盖和脚。通过辨别此类信息,人体姿势估计(图 2)可以揭示人体的精确姿势,在视频中,还可以揭示其运动的动态。人体姿势估计有几种方法,其中大多数方法(如物体检测)都基于卷积神经网络。OpenPose 8使用部分亲和力场来描绘人体姿势,YOLOv7-pose 9扩展了物体检测以检测关键点。

对象追踪

跟踪应用程序试图获取检测到的对象并在视频帧之间进行匹配。它们通常使用卡尔曼滤波器10 ,该滤波器使用对象的当前状态来预测未来状态,然后使用线性匹配(如匈牙利11或 Jonker Volgenant 12算法)将该预测与下一帧中检测到的对象进行匹配。此外,像 DeepSORT 13这样的重新识别算法使用基于 DL 的模型来创建对象的描述性特征嵌入,该嵌入可以与未来帧中的特征嵌入相匹配。

在更简单的情况下,可以使用被跟踪对象的特征来跟踪给定的对象,例如使用衬衫颜色来跟踪人。只要这个人是唯穿着某种颜色衬衫的人,那么任何识别出该衬衫颜色的帧都可以归因于该特定的人。这只需使用分类器(如 ResNet 14)对检测到的人的衬衫颜色进行分类即可。

 

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注