创作

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

3天内不再提示

NVIDIA T4 GPU加速VIVO推荐系统部署

星星科技指导员 来源:NVIDIA 作者:NVIDIA 2022-05-20 15:27 次阅读

案例简介及其应用背景

VIVO AI中台的最终目的是为2.6亿+ VIVO用户提供极致的智能服务,而NVIDIA则为VIVO推荐系统提供强大的算力支持以实践优化。

推荐系统的大规模部署带来了诸多工程化挑战,借助NVIDIA TensorRT, Triton and MPS (Multi-Process Service) 及单张T4 GPU推理卡,其性能优于约6台以上的78核CPU服务器,成本方面也降低75%。

团队共实践和比较了三种不同的工程方案,其中,性价比最高的“通用GPU方案”充分发挥了MPS和TensorFlow的性能,开创性地解决了推荐场景的难题,包含:如何满足频繁的算法迭代需求,如何开发不支持的运算操作插件,以及如何改善低效的推理服务性能等。

VIVO AI平台致力于建设完整的人工智能中台,搭建全面的、行业领先的大规模分布式机器学习平台,应用于内容推荐、商业变现、搜索等多种业务场景,为2.6亿+ VIVO用户提供极致的智能服务。

VIVO AI中台始终服务于企业往智能化深度发展的需求,在数据中台基础上增加了一体化智能服务的概念。并且立足于数据的获取、存储、特征处理、分析、模型构建、训练、评估等智能服务相关的任务环节,使其高度组件化、配置化、自动化。

pYYBAGKHQvqAeiYGAAC4OnxwTiY315.png

Figure 1. AI中台系统架构图 (图片来源于VIVO研究院授权)

在整个AI中台架构中,推荐中台则作为最重要的核心,也是最具商业价值的部分,不仅需承载VIVO亿级用户,日活千万的数据量也包含在内。本文从推荐系统工程化的角度,解读了以下三方面内容:VIVO 的智能推荐系统是如何运行的?在实际应用场景中遇到过什么挑战?NVIDIA GPU如何加速推荐系统的部署?

poYBAGKHQvuAJSBqAAD5cQ8WHoI849.png

Figure 2. 推荐中台系统架构图 (图片来源于VIVO研究院授权)

经过验证,本方案可以有效解决推荐业务中GPU通用性问题;同时能更高效的利用GPU。目前已经在部分推荐业务中落地。经过压测,性能方面,单张T4 GPU推理卡,性能优于约6台以上的78核CPU服务器。成本方面,VIVO自研通用GPU方案,在TensorRT方案基础上,取得了更高的QPS和更低的延迟,可节省成本约75%!

本案例主要应用到 NVIDIA T4 GPU 和相关工具包括NVIDA TensorRT, Triton, MPS等。

客户简介

VIVO是一家以设计驱动创造伟大产品,打造以智能终端和智慧服务为核心的科技公司,也是一家全球性的移动互联网智能终端公司。致力于为消费者打造拥有极致拍照、畅快游戏、Hi-Fi音乐的智能手机产品。根据《2020胡润中国10强消费电子企业》报告显示,VIVO以1750亿人民币排名第3位。

客户挑战

在工程实践中,VIVO推荐系统面临的第一个问题是如何平滑的把多种推荐业务逻辑从CPU平台向GPU平台迁移。鉴于当前已经存在多个推荐业务场景,包括应用商店,手机浏览器,负一屏信息流等。每个场景都有自己的算法模型和业务流程,如何把多种分散的智能服务整合到一个统一的推荐中台,同时要兼顾当前的业务的无损迁移是一个巨大的挑战。

一直以来,CPU是客户主要的支撑推荐业务场景的主流硬件平台。但VIVO工程团队却发现在推理服务中,CPU的表现始终无法达到要求标准,不仅算力较弱,应对复杂模型时,响应延迟和QPS也无法满足实时性和高并发的需求。

此时,客户尝试改用NVIDIA GPU来实现推荐业务的推理服务,有效解决CPU算力和性能的瓶颈的同时,也期待更大的成本优势。经过大量的工程实践,结果表明,单台基于NVIDIA T4 GPU的推理服务器,性能可以等同于24台CPU机器。毋庸置疑, GPU的整体表现皆具有性能和成本的优势。据此,客户也认为使用GPU作为推荐业务场景的推理平台,已成为了公司乃至行业的共识。

应用方案

由于GPU芯片架构的独特性,不经优化的原始TensorFlow模型,很难高效利用GPU的算力。为了解决这个问题,VIVO工程团队投入了大量的人力和时间进行推荐模型优化及转换。而首先着手设计的是TensorRT方案,即是使用NVIDIA推理加速工具TensorRT,结合 Triton的serving方式,以最大化GPU整体收益。

具体来说,把训练导出的TensorFlow模型经过Onnx转换成TensorRT模型,进而使用NVIDIA提供的推理服务框架Triton加载TensorRT模型。业务代码使用VIVO封装Triton的JNI接口,将业务请求输入TensorRT模型去做推理计算。

pYYBAGKHQvyAUmP_AADQbgmnO_A133.png

Figure 3. 推荐业务流程图 (图片来源于VIVO研究院授权)

实测结果表明,该方案取得了预期的线上收益。性能方面,单张T4 GPU推理卡,性能优于约6台以上的78核CPU服务器。以如下场景为例,在相同的精排服务请求:QPS为600,BatchSize为3000时,不同方案的成本,TensorRT方案可节省成本约14%:

pYYBAGKHQxWATR69AAARdIgpnIk709.png

为了进一步提升线上收益,最大化GPU利用率,NVIDIA机器学习团队配合 VIVO继续优化现有效果,探索更多的技术方案可行性。

经过深入探讨,我们发现目前的方案(Triton+TensorRT)确实可以有效利用GPU,但是也存在一些问题。比如很多推荐业务场景,算法模型迭代更新频率高,工程化开发周期无法满足频繁更新的需求。此外,部分推荐模型存在算子不支持的情况,需要手动开发TensorRT plugin,短时间内也无法上线。总体来说,这样的开发流程通用性不够好,也较难有效的支持算法持续迭代。

因此,我们迫切需要实现一套机制,既要保证GPU的推理性能,更要具备良好的通用性。经过多次工程化尝试,我们针对性提出适合自身的推荐系统推理加速方案,即VIVO自研通用GPU方案。

本方案通过多进程 + MPS + TensorFlow runtime的方式,有效的提高了GPU的使用率,且部分场景无需转换TensorRT模型。该方案的主要设计目标是:

多进程模型,管理和守护模型服务进程,有序的更新模型

添加原生TensorFlow中不支持GPU的算子

加载模型时,动态替换原来的不支持GPU的算子

poYBAGKHQv2AB3yJAABiajyhbFE804.jpg

Figure 4. 自研通用GPU方案示意图 (图片来源于VIVO研究院授权)

此外,考虑到具体工程实践中,VIVO算法部门和工程部门需要同步开发,如何解耦算法工程团队和推理加速团队的开发任务,因此推出了可配置的推理引擎服务,加速迭代开发效率。

pYYBAGKHQv6AJKR7AACu12MqDm0472.png

Figure 5. 自研可配置推理引擎示意图 (图片来源于VIVO研究院授权)

方案效果及影响

经过验证,本方案可以有效解决推荐业务中GPU通用性问题;同时能更高效的利用GPU。目前已经在部分推荐业务中落地。经过压测,VIVO自研通用GPU方案,在TensorRT方案基础上,取得了更高的QPS和更低的延迟,可节省成本约75%!

下表详细对比了在相同精排请求:QPS为600,BatchSize为3000时,不同方案的成本。

poYBAGKHQyCAPoPqAAAYisHVhsY125.png

同时,我们测试了负一屏信息流推荐场景,结果同样表明,无论是QPS或是推理延迟(测试选用业界标准P99/P95指标),自研通用GPU方案都优于TensorRT方案和CPU方案。

poYBAGKHQyqAaijNAAAeU3sTpq8325.png

展望未来,VIVO推荐系统工程团队会继续探索新技术,持续积累 GPU工程经验,并且沉淀到平台中,最终赋能到各个业务线。

审核编辑:郭婷

  • cpu
    cpu
    +关注

    关注

    68

    文章

    6824

    浏览量

    193453
  • NVIDIA
    +关注

    关注

    14

    文章

    2589

    浏览量

    94905
  • gpu
    gpu
    +关注

    关注

    27

    文章

    2760

    浏览量

    114986
收藏 人收藏

    评论

    相关推荐

    浪潮NF5468A5系统解析

    NF5468A5支持4个电源模组,可以提供1600W~3000W功率的80 PLUS铂金电源模块,效....
    的头像 智能计算芯世界 发表于 07-05 11:06 55次 阅读

    CPU、MPU、MCU和SOC之间的特点和区别

    MPU是Micro Processor Unit的缩写,指微处理器(这里要注意不是微控制器,很多人会....
    的头像 硬件笔记本 发表于 07-05 10:50 66次 阅读

    Think Silicon和RISC-V GPU即将爆发

    无论是业界动态还是RISC-V国际组织相关人员的公开发言,RISC-V都是一款全方位挑战ARM架构的....
    的头像 电子发烧友网 发表于 07-05 10:30 119次 阅读

    宏观算力建设实现芯片规模化

    有的算力芯片,可能可以做到性能狂飙,但较少考虑芯片的通用性易用性,然后芯片销量不高落地规模小,那就无....
    的头像 Imagination Tech 发表于 07-05 10:20 100次 阅读

    算力由性能、规模和利用率三部分组成

    有的算力芯片,可能可以做到性能狂飙,但较少考虑芯片的通用性易用性,然后芯片销量不高落地规模小,那就无....
    的头像 Imagination Tech 发表于 07-05 10:18 101次 阅读

    嵌入式系统检测问题并减轻故障影响

      最重要的是,每个嵌入式系统都是不同的,这就是让这个行业的工作变得有趣的原因。结果是每个设备的自检....
    的头像 星星科技指导员 发表于 07-05 10:11 70次 阅读

    请问使用ROC-RK3308-CC的cpu温度高吗?

    请问使用ROC-RK3308-CC 的cpu温度高吗?一般正常上电后,跑自带的系统时候CPU的温度大概多少啊? ...
    发表于 07-05 09:40 28次 阅读

    为什么反向设计值得研究呢?

    因为实现同样的功能很容易,但是,实现同样的性能很难。有的公司做出的CPU在落后一代工艺的情况下,依然....
    的头像 芯片逆向 发表于 07-05 09:35 104次 阅读

    NVIDIA Merlin GPU推荐系统加速大模型训练和推理

    暌违两年,NVIDIA Merlin 推荐系统公开课将于 7 月 5 日全面上新。本次公开课将由 N....
    的头像 NVIDIA英伟达 发表于 07-05 09:02 88次 阅读

    火山引擎机器学习平台与NVIDIA加深合作

    随着 AI 在医疗健康和生命科学领域应用的不断增加,GPU 算力的需求迅猛增长。火山引擎机器学习平台....
    的头像 NVIDIA英伟达 发表于 07-05 08:59 123次 阅读

    RISC-V GPU离产业爆发仅一步之遥?

    电子发烧友网报道(文/吴子鹏)近日,在德国纽伦堡举行的 Embedded World 2022 大会....
    的头像 Felix分析 发表于 07-05 07:06 248次 阅读
    RISC-V GPU离产业爆发仅一步之遥?

    服务器为什么配大带宽会更好

    香港服务器为什么配大带宽更好?如今很多站长都会倾向于租用香港大带宽服务器,很明显,大带宽服务器的优势....
    的头像 深圳_SEO_青春聆听log 发表于 07-04 16:48 110次 阅读

    PT8M2301A可多次编程A/D型8位MCU概述及特性

    PT8M2301A 是一款可多次编程(MTP)A/D 型 8 位 MCU,其包括 2K*16bit ....
    的头像 batai 发表于 07-04 10:38 55次 阅读
    PT8M2301A可多次编程A/D型8位MCU概述及特性

    芯动科技风华系列GPU与中望CAD Linux版软件完成兼容性认证

    近日,芯动科技自主研发的风华系列GPU与中望CAD Linux版软件完成兼容性认证,综合性能优越,共....
    的头像 芯动科技Innosilicon 发表于 07-04 10:02 62次 阅读

    MOS 6510/8500 CPU适配器开源分享

    电子发烧友网站提供《MOS 6510/8500 CPU适配器开源分享.zip》资料免费下载
    发表于 07-04 09:47 4次 阅读
    MOS 6510/8500 CPU适配器开源分享

    嵌入式Linux调试变得更容易

    在评估用户空间性能时,跟踪工具可以更加强大。像大多数嵌入式软件开发人员一样,我开发针对 Linux ....
    的头像 星星科技指导员 发表于 07-04 09:15 79次 阅读
    嵌入式Linux调试变得更容易

    SPDK Thread模型设计与实现 NVMe-oF的使用案例

    SPDK Thread 模型是SPDK诞生以来十分重要的模块,它的设计确保了spdk应用的无锁化编程....
    的头像 FPGA之家 发表于 07-03 16:20 234次 阅读

    NVIDIA提供用于AI训练的合成数据生成工具

    提供合成数据生成工具和服务的企业以及开发者现在可以使用 Omniverse Replicator S....
    的头像 NVIDIA英伟达企业解决方案 发表于 07-03 10:06 111次 阅读

    NVIDIA研究人员创建可以疏通计算机网络拥堵的AI模型

    NVIDIA 研究人员创建了可以疏通计算机网络拥堵的 AI 模型,该模型很快就会出现在大众附近的数据....
    的头像 NVIDIA英伟达 发表于 07-03 10:04 110次 阅读

    利用AI技术加强视频内容创作和传播

    芬兰的 MTV Oy 采用由 NVIDIA 技术驱动的 Valossa AI 解决方案自动分析视频内....
    的头像 NVIDIA英伟达 发表于 07-03 09:59 159次 阅读

    西门子和NVIDIA共同推动数字孪生的发展

    西门子首席执行官 Roland Busch 和 NVIDIA 创始人兼首席执行官黄仁勋在慕尼黑举行的....
    的头像 NVIDIA英伟达 发表于 07-03 09:55 195次 阅读

    在开发平台上使用VITIS AI加速AI应用

    在运行量化器时,我们可以使用更大的校准图像、迭代和检测来调整输出,视频输入的准确率约为 96%。我们....
    的头像 星星科技指导员 发表于 07-01 14:24 113次 阅读
    在开发平台上使用VITIS AI加速AI应用

    NETWORKX Python编程语言软件包概述及用途

    NetworkX 是一个 Python 编程语言软件包,可用于创建、操作和学习复杂图形网络的结构、动....
    的头像 NVIDIA英伟达 发表于 07-01 11:30 197次 阅读

    NVIDIA NGC目录中的GPU优化容器

    借助 NVIDIA NGC 目录中的 GPU 优化容器,更快地开发和部署应用。
    的头像 NVIDIA英伟达企业解决方案 发表于 07-01 11:21 173次 阅读

    NVIDIA Isaac Sim 2022.1版本的亮点及功能

    NVIDIA 宣布推出2022.1 版 NVIDIA Isaac Sim。作为一种机器人仿真和合成数....
    的头像 NVIDIA英伟达企业解决方案 发表于 07-01 11:19 194次 阅读

    NVIDIA AI平台在MLPerf基准测试实现飞跃

    NVIDIA AI 仍是唯一能够运行 MLPerf 行业基准测试中所有测试的平台, A100 GPU....
    的头像 NVIDIA英伟达企业解决方案 发表于 07-01 10:52 156次 阅读

    如何用Go重写Node.js服务

    Hasura Storage 是一项开源服务,在 hasura 和任何 s3 兼容的存储服务之上增加....
    的头像 马哥Linux运维 发表于 07-01 10:51 125次 阅读

    MIT的SpAtten架构将注意力机制用于高级NLP

      通用的 AI 加速器、GPU、TPU 和 NPU 即使支持高计算能力也无法实现这些技术,因为这些....
    的头像 星星科技指导员 发表于 07-01 10:43 151次 阅读

    模型有助于实现最大的运营效率

      为了推动行动或结果,非结构化数据通过 DeepStream 等处理模型运行,从而产生结构化数据。....
    的头像 星星科技指导员 发表于 07-01 10:29 180次 阅读

    NVIDIA Omniverse和西门子Xcelerator平台来实现全保真数字孪生

    西门子 Process Simulate(左)与 NVIDIA Omniverse(右)相连接,实现....
    的头像 NVIDIA英伟达企业解决方案 发表于 07-01 10:28 143次 阅读

    使用OpenAMP多核框架来满足控制和通信要求

      该框架的一个实例在每个核心上运行。使用Remoteproc提供生命周期管理,其中一个核心被指定为....
    的头像 星星科技指导员 发表于 07-01 10:04 138次 阅读
    使用OpenAMP多核框架来满足控制和通信要求

    关于二进制表示和补码计算

    作为一名软件开发者,入门学习的内容可能就是认识这 2 个既简单、又强大的数字。但是大部分人,对于二进....
    的头像 FPGA之家 发表于 07-01 09:48 76次 阅读

    使用TensorBoard进行机器学习模型分析

      总体而言,TensorBoard 是帮助开发和培训过程的绝佳工具。Scalar and Metr....
    的头像 星星科技指导员 发表于 07-01 09:44 94次 阅读
    使用TensorBoard进行机器学习模型分析

    带有AT89S52多用途的CPU设计

    描述 多用途 CPU,带 AT89S52 (SMD) 该 CPU 设计用于 7 段 SMD 显示器,具有串行控制。它有一个用于编程的 I...
    发表于 07-01 09:40 2373次 阅读

    新一代旗舰!Arm Cortex-X3 + Immortalis GPU发布,Arm全面计算赋能视觉体验

    电子发烧友网报道(文/黄晶晶)去年初,被称为Arm公司十年来最大技术革新的Armv9架构发布,基于此....
    发表于 06-30 20:32 556次 阅读
    新一代旗舰!Arm Cortex-X3 + Immortalis GPU发布,Arm全面计算赋能视觉体验

    小白求助AMD跟ARM有什么关系

    据我所知,两者是没什么关系的, 一个是美国的桌面级CPU生产商, 一个是英国移动平台CPU芯片生产商。 但那天在网上看到...
    发表于 06-30 18:02 3080次 阅读

    ARM芯片是小端还是大端

    ARM芯片是小端还是大端?哪位大佬知道,能否给说明一下。ARM大小端格式是由编译器决定?还是CPU决定? ...
    发表于 06-30 17:59 3471次 阅读

    Arm推出全新旗舰级GPU产品Arm Immortalis™

    Arm® 今日宣布推出 2022 全面计算解决方案 (TCS22),可提供不同级别的性能、效率和可扩....
    的头像 科技绿洲 发表于 06-30 17:37 303次 阅读

    盘点一些用上先进制程工艺的RISC-V处理器

    电子发烧友网报道(文/周凯扬)无论是x86、Arm还是新秀RISC-V,大家谈及基于这些架构的处理器....
    发表于 06-30 16:33 683次 阅读

    2022年中国DPU行业白皮书 DPU将成为CPU、GPU后的第三块主力芯片

    本报告旨在分析 DPU 发展现状、产品特点、技术动向及发展趋势,并识别中国芯片厂商与海外芯片厂商的差....
    的头像 拍明芯城 发表于 06-30 16:05 1573次 阅读
    2022年中国DPU行业白皮书 DPU将成为CPU、GPU后的第三块主力芯片

    在重构或重新设计时验证你的代码

      大多数组织希望通过在源代码更改时更新这些测试来保留先前测试投资的价值。但这会导致高昂的测试维护成....
    的头像 星星科技指导员 发表于 06-30 14:52 70次 阅读

    NVIDIA Morpheus应用框架可实时发现和阻止复杂攻击

    如今,网络安全格局随着威胁与攻击方法的不断变化而变化,使商业世界处于高度戒备状态。通过不断改变攻击技....
    的头像 科技绿洲 发表于 06-30 14:38 271次 阅读
    NVIDIA Morpheus应用框架可实时发现和阻止复杂攻击

    数据日志的使用

    在目标 CPU 的设备配置中启用 Web 服务器,“设备视图”→“鼠标选中CPU”→“属性”→“We....
    的头像 机器人及PLC自动化应用 发表于 06-30 11:04 183次 阅读

    NVIDIA DeepStream SDK是什么 有哪些特性

    快速开发和部署视觉 AI 应用和服务。DeepStream 提供多平台、可扩展、TLS 加密的安全性....
    的头像 NVIDIA英伟达企业解决方案 发表于 06-30 10:55 190次 阅读

    NVIDIA和三维家助力提升家居行业生产效率

    家居行业的可视化需求越来越高,从物理工作站的 GPU 算力、渲染能力,到 AI 辅助设计功能,再到可....
    的头像 NVIDIA英伟达企业解决方案 发表于 06-30 10:42 126次 阅读

    主要演示BL702/704/706系列mcu低功耗性能

    1、主要演示BL702/704/706系列mcu低功耗性能 低功耗模式: Running : Running 为 CPU 正常运行时的功耗,由客户应用代码...
    发表于 06-28 18:19 5659次 阅读

    更改CPU调度程序和优先级的教程

    描述 更改CPU调度程序和优先级 ...
    发表于 06-28 07:45 61次 阅读

    一个简单的MOS 6510/8500 CPU适配器

    描述 MOS 6510/8500 CPU 适配器 一个简单的适配器,用于连接来自 CPU 的 A5-A8 和 RW 信号,用于 ARM2SID...
    发表于 06-28 07:14 87次 阅读

    学习一下LVGL的款式

    按照官网学习顺序,下学一下LVGL的款式。 先看lv_example_style_1()。代码如下,稍作修改: void lv_example_style_1(void...
    发表于 06-27 11:32 882次 阅读

    香橙派RK3399开发板OrangePi4 LTS在linux上的GPU测试说明

    1、Linux4.4 和 Linux5.10 Debian 系统 GPU 的测试说明 注意,Linux4.4 Debian10 和 Linux5.10 Debian11 系统使用的...
    发表于 06-22 20:17 1506次 阅读
    香橙派RK3399开发板OrangePi4 LTS在linux上的GPU测试说明

    基于RK3399 CPU上电后加载程序的流程介绍

    1、CPU上电后加载程序的流程 芯片上电解复位之后执行的第一段程序,在芯片中称之为Bootrom loader。这部分程序在芯片制造过...
    发表于 06-21 15:28 2729次 阅读

    TMS320VC5501 定点数字信号处理器

    TMS320VC5501(5501)定点数字信号处理器(DSP)基于TMS320C55x™DSP生成CPU处理器内核。 C55x™DSP架构通过增加并行性和全面关注降低功耗来实现高性能和低功耗。 CPU支持内部总线结构,该结构由一个程序总线,三个数据读总线,两个数据写总线以及专用于外设和DMA活动的附加总线组成。这些总线能够在一个周期内执行最多三次数据读取和两次数据写入。并行,DMA控制器可以独立于CPU活动执行数据传输。 C55x™CPU提供两个乘法累加(MAC)单元,每个单元能够进行17位×17位乘法运算。单循环。额外的16位ALU支持中央40位算术/逻辑单元(ALU)。 ALU的使用受指令集控制,提供优化并行活动和功耗的能力。这些资源在C55x CPU的地址单元(AU)和数据单元(DU)中进行管理。 C55x DSP代支持可变字节宽度指令集,以提高代码密度。指令单元(IU)从内部或外部存储器执行32位程序提取,并为程序单元(PU)排队指令。程序单元解码指令,将任务指向AU和DU资源,并管理完全受保护的管道。预测分支功能可避免执行条件指令时的管道刷新。 5501外设...
    发表于 10-09 14:55 508次 阅读
    TMS320VC5501 定点数字信号处理器