使用CV-CUDA提高基于计算机视觉的任务吞吐量

这篇具有很好参考价值的文章主要介绍了使用CV-CUDA提高基于计算机视觉的任务吞吐量。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

使用CV-CUDA提高基于计算机视觉的任务吞吐量

使用CV-CUDA提高基于计算机视觉的任务吞吐量

涉及基于 AI 的计算机视觉的实时云规模应用程序正在迅速增长。 用例包括图像理解、内容创建、内容审核、映射、推荐系统和视频会议。

然而,由于对处理复杂性的需求增加,这些工作负载的计算成本也在增长。 从静止图像到视频的转变现在也正在成为消费者互联网流量的主要组成部分。 鉴于这些趋势,迫切需要构建高性能但具有成本效益的计算机视觉工作负载。

基于 AI 的计算机视觉流程通常涉及围绕 AI 推理模型的数据预处理和后处理步骤,这可能占整个工作负载的 50-80%。 这些步骤中的常用运算符包括:

  • 调整大小
  • 裁剪
  • 归一化
  • 降噪
  • 张量转换

虽然开发人员可能会使用 NVIDIA GPU 来显着加速其流程中的 AI 模型推理,但预处理和后处理仍然通常使用基于 CPU 的库来实现。 这导致整个 AI 流程的性能出现瓶颈。 通常作为 AI 图像或视频处理流程一部分的解码和编码过程也可能在 CPU 上成为瓶颈,从而影响整体性能。

使用CV-CUDA提高基于计算机视觉的任务吞吐量

CV-CUDA优化

CV-CUDA 是一个开源库,可让您构建高效的云级 AI 计算机视觉流程。 该库提供一组专门的 GPU 加速计算机视觉和图像处理内核作为独立运算符,以轻松实现 AI 流程的高效预处理和后处理步骤。

CV-CUDA 可用于各种常见的计算机视觉流程,例如图像分类、对象检测、分割和图像生成。 如需了解更多信息,请参阅 NVIDIA GTC 2022 秋季主题演讲。

在这篇博文中,我们展示了使用 CV-CUDA 为典型的 AI 计算机视觉工作负载启用端到端 GPU 加速的好处,可实现约 5 倍至高达 50 倍的整体吞吐量加速。 这可以导致每年节省数亿美元的云成本,并在数据中心每年节省数百 GWh 的能源消耗。

GPU 加速解决了 CPU 瓶颈

CV-CUDA 提供高度优化的 GPU 加速内核作为计算机视觉处理的独立运算符。 这些内核可以有效地实现预处理和后处理流程,从而显着提高吞吐量。

编码和解码操作也可能是流程中的潜在瓶颈。 借助优化的 NVIDIA 视频处理框架 (VPF),您还可以高效地优化和运行它们。 VPF 是 NVIDIA 的一个开源库,具有与 C++ 库的 Python 绑定。 它为 GPU 上的视频解码和编码提供完整的硬件加速。omniverse

要加速 GPU 上的整个端到端 AI 流程,请使用 CV-CUDA,以及用于解码/编码加速的 VPF 和用于进一步推理优化的 TensorRT。 与典型流程中基于 CPU 的实施相比,您可以使用四个 NVIDIA L4 GPU 实现高达 50 倍的端到端吞吐量改进。

改进程度取决于推理 DNN 的复杂性、所需的预处理和后处理步骤以及硬件等因素。 对于多 GPU 节点,您可以期望加速因子针对给定流程线性扩展。

使用CV-CUDA提高基于计算机视觉的任务吞吐量

CV-CUDA如何实现高性能

CV-CUDA 利用 GPU 的强大功能来实现高性能:

  • 预分配内存池,避免在推理阶段重复分配 GPU 内存
  • 异步操作
  • 内核融合——使用一个 GPU 内核实现运算符组合,以最大限度地减少不必要的数据传输和内核启动延迟
  • 通过向量化全局内存访问和使用快速共享内存来提高内存访问效率
  • 计算效率、快速数学、扭曲减少/块减少

案例研究:视频分割流程的端到端加速

基于视频的分割是一种常见的 AI 技术,它根据属性对视频帧中的像素进行分割。 例如,在视频会议中的虚拟背景或背景模糊应用中,它将前景人物或物体与背景分割开来。

在本研究中,我们讨论了使用 AWS 上的 NVIDIA T4 Tensor Core GPU 实例部署在云中的 AI 视频分割流程的性能评估,特别关注计算成本优化。 连接到实例的 CPU 是 Intel Xeon Platinum 8362。

当整个端到端 AI 流程在 GPU 上执行时,您可以预期显着节省成本。 然后,我们讨论相同工作负载的这种吞吐量性能加速对数据中心能耗的影响。

为了进行实验,我们将带有 CV-CUDA AI 流程的 GPU 与带有相同流程的 OpenCV 实现的 CPU 进行了比较,假设两种情况下的推理工作负载都在 GPU 上运行。 具体来说,我们部署了 ResNet-101 视频分割模型流程,以执行 AI 背景模糊。

使用CV-CUDA提高基于计算机视觉的任务吞吐量

在这种情况下,我们测量了整个端到端流程中不同阶段的延迟和最大吞吐量。 流程包含多个阶段:

  • 视频解码
  • 使用 Downscale、Normalize 和 Reformat 等操作进行预处理
  • 使用 PyTorch 进行推理
  • 使用 Reformat、Upscale、BilateralFilter、Composition 和 Blur 等操作进行后处理
  • 视频编码

对于 CPU 和 GPU 流程,我们假设推理工作负载分别使用 PyTorch 和 TensorRT 在 GPU 上运行。

使用CV-CUDA提高基于计算机视觉的任务吞吐量

传统的流程是用 OpenCV 和 PyTorch (GPU) 构建的,用 Python 实现,因为这是客户的典型模式。 输入视频的分辨率为 1080p,由 474 帧组成,批量大小为 1。在此流程中,由于 PyTorch,GPU 仅用于推理,而其余过程是基于 CPU 的:

  • 这些帧使用 OpenCV/ffmpeg 解码。
  • 解码后的图像使用 OpenCV 进行预处理,并送入 PyTorch 支持的 DNN 以检测哪些像素属于猫,生成掩码。
  • 在后处理阶段,将前一阶段的输出掩码与原始图像及其模糊版本合成,导致前景中的猫和背景模糊。

对于基于 GPU 的流程,我们使用来自 CV-CUDA 库的优化运算符实现了预处理和后处理阶段,并使用 NVIDIA TensorRT 库进行了推理。 我们还使用 VPF 在 GPU 上加速了流程的解码和编码部分。

使用CV-CUDA提高基于计算机视觉的任务吞吐量

上图显示,单帧批处理的端到端时间从 132 毫秒减少到大约 10 毫秒,这表明 GPU 流程实现了令人印象深刻的延迟减少。 通过使用单个 NVIDIA T4 GPU,CV-CUDA 流水线比 CPU 流水线快约 13 倍。

此结果是针对处理单个视频的单个进程获得的。 通过部署多个进程来同时处理多个视频,这些优化可以使用相同的硬件实现更高的吞吐量,从而显着节省成本和能源。

为了更好地展示 CV-CUDA 带来的好处,我们在不同的实例(一个 T4 GPU、一个 L4 GPU、四个 T4 GPU 和四个 L4 GPU)上执行了 GPU 流水线。

使用CV-CUDA提高基于计算机视觉的任务吞吐量

新推出的 NVIDIA L4 Tensor Core GPU 由 NVIDIA Ada Lovelace 架构提供支持,可为视频、人工智能、视觉计算、图形和虚拟化提供低成本、高能效的加速。

在上图 中,与 CPU 基线相比,单个 T4 GPU 上的端到端吞吐量加速约为 5 倍,新的 L4 GPU 上的加速进一步提高至约 12 倍。 对于多个 GPU 实例,性能几乎呈线性扩展,例如,在四个 T4 GPU 和四个 L4 GPU 上分别约为 19 倍和 48 倍。

为了计算每年的云成本和能源消耗,我们假设典型的视频工作负载为每分钟上传到视频流平台的 500 个视频小时。 对于每年的云成本,我们只考虑了 T4 GPU(L4 GPU 将在未来可用)并假设 Amazon EC2 G4 实例的一年预留定价。

鉴于此,单个 T4 GPU 上此示例视频工作负载的年度成本将约为 CPU 流程的 1/5。 这预示着此类工作负载的典型云成本节省估计约为数亿美元。

对于数据中心,除了与处理如此庞大的工作负载所需的硬件相关的成本外,能源效率对于降低能源成本和环境影响也至关重要。

在上图中,年能耗(以 GWh 为单位)是根据服务器的平均小时功耗计算的,该服务器具有相应硬件的相同视频工作负载。 单个 L4 系统的能耗约为 CPU 服务器的 1/12。 对于像示例视频这样的工作负载(每分钟 500 小时的视频),每年的节能估计约为数百 GWh。

这些节能效果非常显着,因为这相当于避免每年驾驶的数万辆乘用车排放温室气体,每辆乘用车每年行驶约 11,000 英里。

CV-CUDA Beta v0.3.0 功能

现在您已经看到使用 CV-CUDA 加速 AI 计算机视觉工作负载的好处,下面是一些关键特性:文章来源地址https://www.toymoban.com/news/detail-445005.html

  • 开源:GitHub 上的 Apache 2.0 许可开源软件。
  • 支持的运算符:CV-CUDA 提供了 30 多个常用于 AI 计算机视觉工作负载的预处理和后处理步骤的专用运算符。 这些无状态、独立的操作符很容易插入到现有的自定义处理框架中。 常见的运算符包括 ConvertTo、Custom crop、Normalize、PadStack、Reformat 和 Resize。 有关详细信息,请参阅 CV-CUDA 开发人员指南中的完整列表。
  • 新运算符:CV-CUDA Beta v0.3.0 提供了新的运算符,例如重新映射、查找轮廓、非最大抑制、阈值处理和自适应阈值处理。
  • NVIDIA Triton 的自定义后端:您现在可以使用示例应用程序在构建计算机视觉管道时将 CV-CUDA 集成到自定义后端中。
  • 多语言 API:CV-CUDA 包括用于 C/C++ 和 Python 的 API。
  • 框架接口:对现有 DL 框架(如 PyTorch 和 TensorFlow)的易于使用和零复制接口。
  • 批量支持:支持所有 CV-CUDA 算子,让您获得更高的 GPU 利用率和更好的性能。
  • 统一和可变形状批处理支持:CV-CUDA 接受具有相同或不同维度的张量。
  • 示例应用程序:端到端加速图像分类、对象检测和视频分割示例应用程序。
  • PIP安装。
  • 安装、入门和 API 参考指南。

到了这里,关于使用CV-CUDA提高基于计算机视觉的任务吞吐量的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • CV:基于计算机视觉完成两张图片的特征匹配以及用RANSAC方法寻找最佳的匹配点对和单应矩阵的代码

            以下是基于OpenCV库实现的特征匹配和RANSAC算法的Python代码:         在这个代码中,我们首先加载了需要匹配的两张图片,然后用SIFT检测器提取了两张图片中的关键点和特征描述符。接下来,我们用FLANN算法进行特征匹配,并选取了距离比小于0.7的匹配点对作

    2024年02月09日
    浏览(31)
  • 计算机视觉(CV)技术的优势

    计算机视觉(CV)技术的优势: 1. 自动化任务:计算机视觉技术可以自动执行一系列视觉任务,如图像分类、目标检测和识别等,从而实现任务的自动化。 2. 高速处理:计算机视觉技术可以在短时间内处理大量的图像和视频数据,实现快速的分析和决策。 3. 准确性:相对于

    2024年01月22日
    浏览(48)
  • 计算机视觉 – Computer Vision | CV

    人的大脑皮层, 有差不多 70% 都是在处理视觉信息。 是人类获取信息最主要的渠道,没有之一。 在网络世界,照片和视频(图像的集合)也正在发生爆炸式的增长! 下图是网络上新增数据的占比趋势图。灰色是结构化数据,蓝色是非结构化数据(大部分都是图像和视频)。

    2024年02月11日
    浏览(27)
  • 计算机视觉(CV)技术的优势和挑战

    目录 计算机视觉(CV)技术的优势和挑战 优势: 挑战: 计算机视觉(CV)技术是一种利用计算机和算法来实现对图像和视频的分析、处理和理解的技术。为了应对图像多样性,计算机视觉技术可以采用数据增强、迁移学习、复杂模型、多尺度处理、领域自适应和合成数据等

    2024年02月09日
    浏览(29)
  • 动手学CV-Pytorch计算机视觉 天池计算机视觉入门赛SVHN数据集实战

    这里我们以datawhale和天池合作的天池计算机视觉入门赛为例,通过案例实战来进一步巩固本章所介绍的图像分类知识。 该比赛以SVHN街道字符为赛题数据,数据集报名后可见并可下载,该数据来

    2024年02月04日
    浏览(35)
  • 举例说明计算机视觉(CV)技术的优势和挑战

    计算机视觉(CV)技术是指通过计算机算法和模型来解析和理解图像和视频的能力。它的优势和挑战如下所示: 优势: 高效精确:CV技术可以在很短的时间内对大量图像进行高质量的处理和分析,大大提高了处理速度和准确性。 自动化:CV技术可以在没有人工干预的情况下完

    2024年01月18日
    浏览(35)
  • AI浅谈:计算机视觉(CV)技术的优势和挑战

    目录 一、计算机视觉技术的优势 1.效率和精度提高 2.提高安全性 3.促进自动化 4.促进科学研究 5.促进商业发展 二、计算机视觉技术的挑战 1.环境变化 2.精度问题 3.隐私和安全问题 4.数据质量 5.系统复杂度 1.自动驾驶汽车 2.人脸识别 3.农业领域 4.医学图像分析 5.安防和监控

    2024年01月25日
    浏览(42)
  • 计算机视觉CV领域中多尺度特征的概念

    知乎:深度学习中的多尺度模型设计 知乎:计算机视觉中的多尺度模型都有哪些设计? CSDN:多尺度理解  所谓多尺度,实际就是对信号的不同粒度的采样。 通常在不同的尺度下我们可以观察到不同的特征,从而完成不同的任务。 粒度更小/更密集的采样可以看到更多的细节

    2023年04月08日
    浏览(36)
  • 局域网内如何提高计算机网速(经验技巧整理)

    1.去掉无关的选项 在Windows XP中,双击“控制面板”中的“文件夹选项”,再单击“查看”标签,然后将鼠标指针滚动至窗口的最下方,可以看到有一个“自动搜索网络文件夹和打印机”项,默认是选中的,将它去掉。这样,当我们打印时,Windows XP不会自作主张去寻找局域网

    2024年02月06日
    浏览(47)
  • 计算机视觉CV:在自动驾驶方面的应用与C++代码实现

    目标检测:利用计算机视觉技术,对道路上的各种障碍物进行识别和检测,例如行人、车辆、信号灯等等。 路径规划:利用计算机视觉技术,实时分析道路上的交通情况和行驶条件,为自动驾驶汽车制定合理的路径规划策略。 实时定位:自动驾驶汽车必须实时地知道自己在

    2024年02月09日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包