当前位置: 首页 > news >正文

做网课网站杭州百度百家号seo优化排名

做网课网站,杭州百度百家号seo优化排名,石家庄网站制作公司,做注册会计师网站相关系列 【分布式】NCCL部署与测试 - 01 【分布式】入门级NCCL多机并行实践 - 02 【分布式】小白看Ring算法 - 03 【分布式】大模型分布式训练入门与实践 - 04 目录 相关系列概述1.1 Tree1.2 double binary tree初始化和拓扑2.1 Tree的初始化与差异2.2 ncclGetBtreeKernel内部…

相关系列

【分布式】NCCL部署与测试 - 01
【分布式】入门级NCCL多机并行实践 - 02
【分布式】小白看Ring算法 - 03
【分布式】大模型分布式训练入门与实践 - 04

目录

    • 相关系列
    • 概述
      • 1.1 Tree
      • 1.2 double binary tree
    • 初始化和拓扑
      • 2.1 Tree的初始化与差异
      • 2.2 ncclGetBtree
    • Kernel内部实现
      • 初始化
      • 原语差异
      • 流程
        • RunTreeUpDown
        • RunTreeSplit

概述

先掠过Tree算法在拓扑方面以及树的生成方面是如何实现的,本期主要讲kernel内部的情况。
先放上2.11.4部分的tree,后续增添2.18版本中nccl的改动,以及rccl的处理。

如果你看过其他的一些文档,应该知道double binary tree的一些构造。
即我们可以将tree分为三类,朴素的tree、double binary tree和split tree、balanced tree。

1.1 Tree

首先最朴素的tree,存在浪费带宽的情况。

因为叶节点只接收数据,不发送,因此只利用了带宽的一半

1.2 double binary tree

因此引入double binary tree
把allreduce可以拆分为reduce和broadcast两个过程,reduce是自下而上(Tree1),broadcast自上而下(Tree2),这样构造两棵树,第一棵树的叶子节点在第二棵树中是中间节点,这样就能更好的做到流水并行。

1.3 SplitTree
但是这样又有个问题,根节点要向Tree2所有的中间节点发送消息,同时还要从Tree1的中间节点接收消息,Root会不会太忙碌了?因此又提出了SplitTree
再多出一个接收节点,用来平衡。通过切分的方式,把所有向上的父节点放到GPU0,向下的传输放到GPU1上,把上行和下行切分开来。
代价:例如broadcast的时候,多了一个GPU0到GPU1的传输操作。在代码中注释为,Spread NIC traffic between two GPUs。

1.4 balanced tree
所有的父节点放到同一张GPU0上,但子节点放到GPU0和GPU1两张显卡上。因此向上传递的时候具有一些不确定性。英伟达推荐CUDA sm>70所有的Tree更推荐Balanced Tree。不过nccl 2.11.4的版本这次先不提及balanced tree的细节。

初始化和拓扑

2.1 Tree的初始化与差异

初始化的部分,节点内要确定backToNIC是哪张卡。但节点内搜索Tree本质上和Ring没有区别。

Tree的代码出现差异的部分在:ncclTopoPreset

NCCLCHECK(ncclTopoPreset(comm, &treeGraph, &ringGraph, &allGather3Data[rank].topoRanks));

在connect.cc文件中:

 int parentIndex = 0;
int child0Index = treeGraph->pattern == NCCL_TOPO_PATTERN_TREE ? 0 : 1;
int child1Index =treeGraph->pattern == NCCL_TOPO_PATTERN_SPLIT_TREE ? 1 : 0;topoRanks->treeToParent[c] = treeIntra[parentIndex];
topoRanks->treeToChild0[c] = treeIntra[child0Index];
topoRanks->treeToChild1[c] = treeIntra[child1Index];
channel->tree.up = i == 0 ? -1 : treeIntra[i - 1];
channel->tree.down[0] = i == localRanks - 1 ? -1 : treeIntra[i + 1];

这一段是判断Tree的类型,然后判断哪个GPU来连接Child。然后进行赋值。

最后两行是完成在节点内的ring环,并确定出入节点。

2.2 ncclGetBtree

 * Illustration :* 0---------------8*          ______/ \______*         4               12*       /   \            /  \*     2       6       10     \*    / \     / \     /  \     \*   1   3   5   7   9   11    13

二进制化以后,根据从右往左位出现的第一个1的位数来判断是哪一层,例如没有1就是root,
叶子节点在最下层,所以1在第四位
第二层的节点,1在第二位
第三层的节点,1在第三位

http://www.wooajung.com/news/23416.html

相关文章:

  • 厦门首屈一指的网站建设公司营销推广的特点是
  • 创建网站需要哪些工作优秀网站设计案例
  • 城市管理如何宣传市建设网站网站如何优化
  • 做哪些网站好网站注册要多少钱
  • 企业网站建设哪家专业今日头条权重查询
  • 企业建网站费用百度大数据查询
  • 浩森宇特北京做网站哪里可以学网络运营和推广
  • vs开发网站开发教程产品推广思路
  • 安丘网站建设aqfeifan谷歌浏览器官网手机版
  • 惠阳网站制作公司自己在家怎么做电商
  • 做网站菠菜什么意思百度新闻官网首页
  • idc网站模版百度在线客服
  • 长沙微信网站制作百度投诉中心人工电话号码
  • 怎么用织梦系统建一个网站武汉网络营销推广
  • 英文搜索网站深圳网络推广代运营
  • 有网站模板如何预览云和数据培训机构怎么样
  • 相亲网站建设方案南京企业网站排名优化
  • 自己做的网站怎么添加采集模块如何创建网址
  • 网站仿做爱站网长尾关键词挖掘
  • 辽宁建设厅新网站2022世界足球排行榜
  • 什么app做网站直销的八大课程
  • 建设项目环保竣工验收备案网站企业关键词优化价格
  • 一个真正的网站需要怎么做sem推广
  • wordpress谷歌地图深圳seo优化推广
  • 可以做网站引导页的页面武汉百度快照优化排名
  • 算命先生的网站怎么做seo网站关键词排名优化公司
  • 企业网站的类型有哪些网络优化培训骗局
  • 个人备案网站百度收录学网络营销
  • 北京朝阳区居家办公优化大师电脑版官网
  • 网站单页支付宝支付怎么做的关于华大18年专注seo服务网站制作应用开发