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
    +关注

    关注

    27

    文章

    4508

    浏览量

    127531
  • SOK
    SOK
    +关注

    关注

    0

    文章

    4

    浏览量

    6319

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

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

收藏 人收藏

    评论

    相关推荐

    浅谈存内计算生态环境搭建以及软件开发

    在当今数据驱动的商业世界中,能够快速处理和分析大量数据的能力变得越来越重要。而存内计算开发环境在此领域发挥其关键作用。存内计算环境利用内存(RAM)而非传统的磁盘存储加速数据处理,提供了一个
    发表于 05-16 16:40

    如何提高自动驾驶汽车感知模型的训练效率和GPU利用

    由于采用了多摄像头输入和深度卷积骨干网络,用于训练自动驾驶感知模型的 GPU 内存占用很大。当前减少内存占用的方法往往会导致额外的计算开销或工作负载的失衡。
    的头像 发表于 04-29 09:12 515次阅读
    如何提高自动驾驶汽车感知模型的<b class='flag-5'>训练</b>效率和<b class='flag-5'>GPU</b><b class='flag-5'>利用</b>率

    如何利用一些小技巧实现SVM的增量式训练

    同时根据测试精度,可以看出,通过添加第一次训练多得到的支持向量,而非将全体数据进行二次训练能够达到同样的效果。
    发表于 04-25 11:05 292次阅读
    如何<b class='flag-5'>利用</b>一些小技巧实现SVM的增量式<b class='flag-5'>训练</b>

    NVIDIA GPU架构下的FP8训练与推理

    FP8 训练利用 E5M2/E4M3 格式,具备与 FP16 相当的动态范围,适用于反向传播与前向传播。
    的头像 发表于 04-25 10:01 296次阅读
    NVIDIA <b class='flag-5'>GPU</b>架构下的FP8<b class='flag-5'>训练</b>与推理

    AI训练,为什么需要GPU

    随着由ChatGPT引发的人工智能热潮,GPU成为了AI大模型训练平台的基石,甚至是决定性的算力底座。为什么GPU能力压CPU,成为炙手可热的主角呢?要回答这个问题,首先需要了解当前人工智能(AI
    的头像 发表于 04-24 08:05 1042次阅读
    AI<b class='flag-5'>训练</b>,为什么需要<b class='flag-5'>GPU</b>?

    FPGA在深度学习应用中或将取代GPU

    上涨,因为事实表明,它们的 GPU训练和运行 深度学习模型 方面效果明显。实际上,英伟达也已经对自己的业务进行了转型,之前它是一家纯粹做 GPU 和游戏的公司,现在除了作为一家云
    发表于 03-21 15:19

    派沃储能热管理系统:能源储存与高效利用的关键

    摒弃传统的能源消耗方式,转向可持续和高效能源利用已成为当今全球能源行业的重要议题。在这一背景下,储能热管理系统作为一种关键技术方案,正日益受到关注。本文将重点探讨储能热管理系统在能源储
    的头像 发表于 02-28 17:38 278次阅读

    如何利用MES系统进行生产防错

    电子发烧友网站提供《如何利用MES系统进行生产防错.docx》资料免费下载
    发表于 01-26 16:08 0次下载

    FPGA和CPU、GPU有什么区别?为什么越来越重要?

    GPU的功耗非常高,因为其无法很好地利用片上内存,需要频繁读取片外的DRAM。尽管在吞吐量上的优 势使得 GPU 几乎垄断了深度学习领域, 但 GPU 依赖片外存储的处理流程,
    发表于 11-09 14:09

    如何搭建高效推荐系统?用Milvus和NVIDIA Merlin搭建高效推荐系统

    如何搭建一个高效的推荐系统? 简单来说,现代推荐系统训练/推断流水线(pipeline)组成,涉及数据获取、数据预处理、模型训练和调整检索
    的头像 发表于 11-01 09:30 746次阅读
    如何搭建<b class='flag-5'>高效</b>推荐<b class='flag-5'>系统</b>?用Milvus和NVIDIA Merlin搭建<b class='flag-5'>高效</b>推荐<b class='flag-5'>系统</b>

    大模型训练为什么不能用4090显卡,GPU训练性能和成本对比

    为什么?一般有 tensor parallelism、pipeline parallelism、data parallelism 几种并行方式,分别在模型的层内、模型的层间、训练数据三个维度上对 GPU 进行划分。三个并行度乘起
    发表于 09-15 11:16 1.8w次阅读
    大模型<b class='flag-5'>训练</b>为什么不能用4090显卡,<b class='flag-5'>GPU</b><b class='flag-5'>训练</b>性能和成本对比

    切换以最大限度地利用SAN

    电子发烧友网站提供《切换以最大限度地利用SAN.pdf》资料免费下载
    发表于 09-01 11:23 0次下载
    切换以最大限度<b class='flag-5'>地利用</b>SAN

    ARM Unity开发者优化指南

    Unity是一个软件平台,使您能够创建和分发2D游戏、3D游戏和其他应用程序。 本书旨在帮助您创建应用程序和内容,最大限度地利用Unity移动平台,尤其是与马里的移动平台™ GPU。它描述了您可以用来提高应用程序的性能。
    发表于 08-08 06:37

    Gaudi Training系统介绍

    ,这就转化为对训练系统高效扩展的日益增长的需求。 典型的深度学习训练算法包括多种类型的算子,这些算子加起来要进行数十亿次运算。这些大量的操作
    发表于 08-04 06:48

    智能网卡简介及其在高性能计算中的作用

    的。FpgaNIC重新引入了GPU作为主要组件,同时为围绕SmartNIC的设计空间探索带来了灵活性。此 SmartNIC 的主要功能之一是它能够利用 GPU 虚拟地址,从而实现与本地
    发表于 07-28 10:10