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

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

3天内不再提示

HugeCTR能够高效地利用GPU来进行推荐系统的训练

NVIDIA英伟达企业解决方案 来源:NVIDIA英伟达企业解决方案 作者:NVIDIA英伟达企业解 2022-04-01 09:40 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

1. Introduction

HugeCTR 能够高效地利用 GPU 来进行推荐系统的训练,为了使它还能直接被其他 DL 用户,比如 TensorFlow 所直接使用,我们开发了 SparseOperationKit (SOK),来将 HugeCTR 中的高级特性封装为 TensorFlow 可直接调用的形式,从而帮助用户在 TensorFlow 中直接使用 HugeCTR 中的高级特性来加速他们的推荐系统。

796b3d68-b14e-11ec-aa7f-dac502259ad0.png

图 1. SOK embedding 工作流程

SOK 以数据并行的方式接收输入数据,然后在 SOK 内部做黑盒式地模型转换,最后将计算结果以数据并行的方式传递给初始 GPU。这种方式可以尽可能少地修改用户已有的代码,以更方便、快捷地在多个 GPU 上进行扩展。

SOK 不仅仅是加速了 TensorFlow 中的算子,而是根据业界中的实际需求提供了对应的新解决方案,比如说 GPU HashTable。SOK 可以与 TensorFlow 1.15 和 TensorFlow 2.x 兼容使用;既可以使用 TensorFlow 自带的通信工具,也可以使用 Horovod 等第三方插件来作为 embedding parameters 的通信工具。

2. TF2 Comparison/Performance

使用 MLPerf 的标准模型 DLRM 来对 SOK 的性能进行测试。

798ed8f4-b14e-11ec-aa7f-dac502259ad0.png

图 2. SOK 性能测试数据

相比于 NVIDIA 的 DeepLearning Examples,使用 SOK 可以获得更快的训练速度以及更高的吞吐量。

3. API

SOK 提供了简洁的、类 TensorFlow 的 API;使用 SOK 的方式非常简单、直接;让用户通过修改几行代码就可以使用 SOK。

1. 定义模型结构

79ad3c54-b14e-11ec-aa7f-dac502259ad0.png

左侧是使用 TensorFlow 的 API 来搭建模型,右侧是使用 SOK 的 API 来搭建相同的模型。使用 SOK 来搭建模型的时候,只需要将 TensorFlow 中的 Embedding Layer 替换为 SOK 对应的 API 即可。

2. 使用 Horovod 来定义 training loop

79d96892-b14e-11ec-aa7f-dac502259ad0.png

同样的,左侧是使用 TensorFlow 来定义 training loop,右侧是使用 SOK 时,training loop 的定义方式。可以看到,使用 SOK 时,只需要对 Embedding Variables 和 Dense Variables 进行分别处理即可。其中,Embedding Variables 部分由 SOK 管理,Dense Variables 由 TensorFlow 管理。

3. 使用 tf.distribute.MirroredStrategy 来定义 training loop

79f46584-b14e-11ec-aa7f-dac502259ad0.png

类似的,还可以使用 TensorFlow 自带的通信工具来定义 training loop。

4. 开始训练

7a0c4bae-b14e-11ec-aa7f-dac502259ad0.png

在开始训练过程时,使用 SOK 与使用 TensorFlow 时所用代码完全一致。

4. 结语

SOK 将 HugeCTR 中的高级特性包装为 TensorFlow 可以直接使用的模块,通过修改少数几行代码即可在已有模型代码中利用上 HugeCTR 的先进设计。

审核编辑 :李倩

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

    关注

    28

    文章

    5271

    浏览量

    136060
  • SOK
    SOK
    +关注

    关注

    0

    文章

    5

    浏览量

    6475

原文标题:Merlin HugeCTR Sparse Operation Kit 系列之一

文章出处:【微信号:NVIDIA-Enterprise,微信公众号:NVIDIA英伟达企业解决方案】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    基于openEuler平台的CPU、GPU与FPGA异构加速实战

    随着 AI、视频处理、加密和高性能计算需求的增长,单一 CPU 已无法满足低延迟、高吞吐量的计算需求。openEuler 作为面向企业和云端的开源操作系统,在 多样算力支持 方面表现出色,能够高效调度 CPU、GPU、FPGA
    的头像 发表于 04-08 11:02 648次阅读
    基于openEuler平台的CPU、<b class='flag-5'>GPU</b>与FPGA异构加速实战

    GPU 利用率<30%?这款开源智算云平台让算力不浪费 1%

    作为 AI 开发者,你是否早已受够这些困境:花数百万采购的 GPU 集群,利用率常年低于 30%,算力闲置如同烧钱;跨 CPU/GPU/NPU 异构资源调度难如登天,模型训练卡在资源分
    的头像 发表于 01-26 14:20 280次阅读

    利用 Banana Pi BPI-CM5 Pro(ARMSoM CM5 SoM) 加速保护科学

    )可以部署在难以通过基于视觉的方法(例如视觉调查,例如摄像机、航拍或样线)进行研究的偏远栖息地。 海洋就是这样一个成本高昂且难以大规模采样的地方。在研究海洋哺乳动物的栖息地利用/存在情况时,天气和能见度
    发表于 10-27 09:18

    在Ubuntu20.04系统训练神经网络模型的一些经验

    本帖欲分享在Ubuntu20.04系统训练神经网络模型的一些经验。我们采用jupyter notebook作为开发IDE,以TensorFlow2为训练框架,目标是训练一个手写数字识
    发表于 10-22 07:03

    提高RISC-V在Drystone测试中得分的方法

    速度。 优化内存系统:优化内存控制器设计,提高内存的读写速度、降低延迟,或者增大内存带宽。 优化指令集和编译器:通过优化或定制指令集,以及优化编译器来生成更高效的机器代码。 软件优化:对运行的软件进行优化
    发表于 10-21 13:58

    NVIDIA Isaac Lab多GPU多节点训练指南

    NVIDIA Isaac Lab 是一个适用于机器人学习的开源统一框架,基于 NVIDIA Isaac Sim 开发,其模块化高保真仿真适用于各种训练环境,可提供各种物理 AI 功能和由 GPU 驱动的物理仿真,缩小仿真与现实世界之间的差距。
    的头像 发表于 09-23 17:15 2622次阅读
    NVIDIA Isaac Lab多<b class='flag-5'>GPU</b>多节点<b class='flag-5'>训练</b>指南

    睿海光电以高效交付与广泛兼容助力AI数据中心800G光模块升级

    400G/800G光模块已实现规模化量产,并基于AI工厂与AI云的核心需求进行深度优化: 速率突破:采用PAM4调制技术,单通道速率达100Gbps,整模块实现800Gbps传输能力,为GPU集群的高效协同
    发表于 08-13 19:01

    PCIe协议分析仪能测试哪些设备?

    场景:监测GPU与主机之间的PCIe通信,分析数据传输效率、延迟和带宽利用率。 应用价值:优化大规模AI训练任务的数据加载和模型参数同步,例如在多GPU
    发表于 07-25 14:09

    aicube的n卡gpu索引该如何添加?

    请问有人知道aicube怎样才能读取n卡的gpu索引呢,我已经安装了cuda和cudnn,在全局的py里添加了torch,能够调用gpu,当还是只能看到默认的gpu0,显示不了
    发表于 07-25 08:18

    如何在Ray分布式计算框架下集成NVIDIA Nsight Systems进行GPU性能分析

    在大语言模型的强化学习训练过程中,GPU 性能优化至关重要。随着模型规模不断扩大,如何高效地分析和优化 GPU 性能成为开发者面临的主要挑战之一。
    的头像 发表于 07-23 10:34 2563次阅读
    如何在Ray分布式计算框架下集成NVIDIA Nsight Systems<b class='flag-5'>进行</b><b class='flag-5'>GPU</b>性能分析

    别让 GPU 故障拖后腿,捷智算GPU维修室救场!

    在AI浪潮汹涌的当下,GPU已然成为众多企业与科研机构的核心生产力。从深度学习模型训练,到影视渲染、复杂科学计算,GPU凭借强大并行计算能力,极大提升运算效率。然而,就像高速运转的精密仪器易出状况
    的头像 发表于 07-17 18:56 1304次阅读
    别让 <b class='flag-5'>GPU</b> 故障拖后腿,捷智算<b class='flag-5'>GPU</b>维修室<b class='flag-5'>来</b>救场!

    利用API提升电商用户体验:个性化推荐系统

      在当今竞争激烈的电商环境中,个性化推荐系统已成为提升用户粘性和转化率的核心工具。通过API(Application Programming Interface)集成,电商平台能够高效接入先进
    的头像 发表于 07-14 14:45 742次阅读
    <b class='flag-5'>利用</b>API提升电商用户体验:个性化推荐<b class='flag-5'>系统</b>

    SL3075 dcdc65V耐压 5A电流高效率降压芯片替换TPS54340

    某些应用场景下,可能无法完全满足设计者的需求。本文将介绍一款能够高效替换TPS54340的芯片——SL3075,详细阐述其特性、优势及应用场景。 SL3075概述SL3075是由深圳市森利威尔电子
    发表于 07-10 17:25

    Vicor高效电源模块优化自动驾驶系统

    低压(48V)自动驾驶电动穿梭车配备了先进的自动驾驶系统能够在复杂的城市道路上自动行驶。GPU 和传感器是自动驾驶系统的关键组件,依赖高性能的 ATX 电源。这些电源必须紧凑轻便以适
    的头像 发表于 05-26 11:29 1135次阅读

    提升AI训练性能:GPU资源优化的12个实战技巧

    在人工智能与机器学习技术迅速发展的背景下,GPU计算资源的高效利用已成为关键技术指标。优化的GPU资源分配不仅能显著提升模型训练速度,还能实
    的头像 发表于 05-06 11:17 1676次阅读
    提升AI<b class='flag-5'>训练</b>性能:<b class='flag-5'>GPU</b>资源优化的12个实战技巧